diff --git a/server/src/uds/locale/ar/LC_MESSAGES/django.po b/server/src/uds/locale/ar/LC_MESSAGES/django.po index 43d38c7c6..3b98af658 100644 --- a/server/src/uds/locale/ar/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ar/LC_MESSAGES/django.po @@ -22,12 +22,13 @@ # Translators: # Translators: # Translators: +# Translators: # Abdel Baaddi , 2017-2018 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Abdel Baaddi , 2017-2018\n" "Language-Team: Arabic (http://app.transifex.com/openuds/openuds/language/" @@ -57,11 +58,11 @@ msgid "Name" msgstr "الاسم" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -77,45 +78,45 @@ msgstr "علامة الوقت" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "العلامات" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "اسم حمام السباحة" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "اسم المستخدم" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "تشغيل" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "يبدأ" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "وينتهي" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "انقضت" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "انقضاء الوقت" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "استخدامات {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "الاستخدامات الحالية" @@ -187,7 +188,7 @@ msgstr "Id" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -255,9 +256,9 @@ msgstr "" msgid "Display" msgstr "عرض" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -285,32 +286,32 @@ msgstr "حدد استفسارك" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "يجب أن تحتوي التسمية على أحرف أو أرقام أو رموز فقط: -:." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "اسم القاعدة" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "ويكرر" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "كل" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "المدة" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "عنصر موجود بالفعل (خطأ مفتاح مكرر)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "قواعد {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "القواعد الحالية" @@ -371,7 +372,7 @@ msgstr "سياسات" msgid "HA Policy" msgstr "سياسة HA" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "خدمات المستخدم" @@ -480,7 +481,7 @@ msgstr "تاريخ الإنشاء" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -671,7 +672,7 @@ msgstr "مقدمي الخدمات" msgid "Status" msgstr "مركز" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -691,7 +692,7 @@ msgstr "التقارير المتوفرة" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -838,61 +839,61 @@ msgstr "تمكنت" msgid "Unmanaged" msgstr "غير مُدار" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "معيار" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "يبدو أن رمز الخدمة قيد الاستخدام من قبل خدمة أخرى. من فضلك ، اختر واحدة " "جديدة." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "إدخال خطأ: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "خدمات {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "الخدمات الحالية" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "اسم الخدمة" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "تجمعات الخدمة" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "الحد الأقصى لنوع عدد الخدمات" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "محافظ" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "طريقة حساب الخدمة" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "نوع الخدمة التي يتم حسابها لحساب ما إذا تم الوصول إلى الحد الأقصى" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "مع الأخطاء" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "موافق" @@ -1122,7 +1123,7 @@ msgstr "الأنفاق" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1146,6 +1147,10 @@ msgstr "اسم المضيف أو عنوان IP الخاص بالخادم حيث msgid "Port where the tunnel is visible by the users" msgstr "المنفذ الذي يكون فيه النفق مرئيًا للمستخدمين" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "لا يمكن حذف مجموعة خادم النفق مع وسائل النقل المرفقة" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1225,7 +1230,7 @@ msgid "Current users" msgstr "المستخدمون الحاليون" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1351,24 +1356,24 @@ msgstr "" msgid "Networks associated. If No network selected, will mean \"all networks\"" msgstr "الشبكات المرتبطة. إذا لم يتم تحديد أي شبكة، فسيعني \"جميع الشبكات\"" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "طلب غير صالح" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "تعذر العثور على الأسلوب في {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "تعذر العثور على عنصر" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "تم رفض الوصول" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "العملية غير معتمدة" @@ -1412,7 +1417,7 @@ msgstr "" "دوم لذلك)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1471,24 +1476,26 @@ msgstr "" "المستخدم) إذا كان وضع التوافق ليس \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "خوادم النسخ الاحتياطي" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"إذا لم يكن فارغًا ، فسيتم استخدام هذا المضيف في حالة عدم إمكانية الوصول إلى " -"خادم المضيف الرئيسي" +"إذا لم تكن فارغة، فسيتم استخدام هذه القائمة الخاصة بالنطاق=backup1،backup2،" +"... كخوادم احتياطية للنطاقات. إذا لم يتم تحديد النطاق، فسيتم استخدام خوادم " +"النسخ الاحتياطي لجميع النطاقات." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "تحقق من SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1497,24 +1504,24 @@ msgstr "" "إذا تم تحديده ، فسيتم فرض التحقق من SSL. إذا لم يكن كذلك ، فسيتم تعطيل " "التحقق من SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "شهادة" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "شهادة لاستخدامها في التحقق من SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "قائمة الترجمة المضيفة" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1522,11 +1529,11 @@ msgstr "" "إذا لم تكن فارغة ، فسيتم استخدام قائمة أزواج المفتاح = القيمة هذه لترجمة اسم " "المضيف من AD إلى اسم مضيف قابل للحل." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "تجاهل المجالات" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1534,11 +1541,11 @@ msgstr "" "إذا لم تكن فارغة ، فسيتم تجاهل قائمة المجالات هذه عند البحث عن مستخدمين. قيم " "مفصولة بفواصل." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "انتهت صلاحية إعادة التوجيه" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1546,20 +1553,20 @@ msgstr "" "إذا لم يكن فارغًا ، إذا انتهت صلاحية كلمة مرور المستخدم ، فسيتم إعادة توجيهه " "تلقائيًا إلى عنوان URL هذا" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "مصادق Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "المصادقة بالمقابلة مع خدمة Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "يجب تحديد اسم المستخدم في النموذج USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1567,49 +1574,49 @@ msgstr "" "تعذر الاتصال بأي خادم AD. تحقق من التكوين الخاص بك (الخادم ، شهادات " "SSL ، ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "لم يتم العثور على اسم المستخدم" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "لم يتم العثور على المجموعة" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "الكثير من النتائج، كن أكثر تحديداً" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "خطأ في اختبار الاتصال" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "يبدو أن الاتصال غير صحيح، يرجى التحقق من ذلك" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "الملقم لا يبدو Active Directory (ليس لديه كائنات المستخدم)" -#: auths/ActiveDirectory_enterprise/authenticator.py:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "الملقم لا يبدو Active Directory (ليس لديه كائنات المجموعة)" -#: auths/ActiveDirectory_enterprise/authenticator.py:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "يبدو الاتصال params صحيحا، تم تنفيذ الأختبار بنجاح" @@ -1664,7 +1671,7 @@ msgstr "عنوان رد الاتصال (يشغلها المصغرة، وإصلا #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "الوكيل" @@ -1726,23 +1733,23 @@ msgstr "" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "لا يدعم هذا النوع من المصادقة المسافات البيضاء في الحقل NAME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "لم يتم العثور على المستخدم" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "استثناء المصادق:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "خطأ في الاتصال: " -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "يبدو params الاتصال الصحيح، واختبار تم تنفيذها بنجاح" @@ -1766,7 +1773,7 @@ msgstr "اسم المستخدم امتيازات القراءة على eDirector #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1777,13 +1784,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "المهلة بالثواني لاتصال LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "سمة MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "السمة من مكان استخراج رمز MFA" @@ -1796,40 +1803,40 @@ msgstr "eDirectory المصادق" msgid "Authenticate against eDirectory" msgstr "مصادقة ضد eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "خطأ في الإتصال" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "خطأ في الإتصال: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "قاعدة البحث Ldap غير صحيح" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "يبدو أن فئة Ldap المستخدم غير صحيحة (العثور على لا مستخدم من تلك الفئة)" -#: auths/EDirectory_enterprise/authenticator.py:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" msgstr "" "يبدو أن Ldap المستخدم معرف السمة غير صحيحة (أي مستخدم موجود بذلك السمة)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "يبدو أن سمة مجموعة Ldap غير صحيحة (لم يتم العثور على مجموعة بواسطة تلك السمة)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2053,24 +2060,24 @@ msgstr "معرف NAS" msgid "NAS Identifier for Radius Server" msgstr "معرف NAS لخادم Radius" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "بادئة التطبيق لسمات الفئة" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "بادئة تطبيق لتصفية المجموعات من سمة \"Class\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "المجموعة العالمية" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "في حالة التعيين ، ستتم إضافة هذه القيمة كمجموعة لجميع مستخدمي النطاق الجغرافي" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "فشل الاتصال بخادم Radius" @@ -2514,18 +2521,18 @@ msgstr "بسيط" msgid "Simple LDAP authenticator" msgstr "مصدق LDAP بسيط" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "يبدو أن فئة مجموعة Ldap غير صحيحة (لم يتم العثور على مجموعة من تلك الفئة)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" msgstr "يبدو أن سمة معرف مجموعة Ldap غير صحيحة (لا توجد أي مجموعةلهذه السمة)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2533,7 +2540,7 @@ msgstr "" "من المحتمل أن فئة مستخدم Ldap أو معرف المستخدم خاطئة (لا يمكن العثور على أي " "مستخدم لديه الشرطين)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2541,7 +2548,7 @@ msgstr "" "من المحتمل أن تكون فئة مجموعة Ldap أو معرف المجموعة خاطئة (لا يمكن العثور " "على أي مجموعة بكلتا الحالتين)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "لا يمكن تحديد موقع أي مجموعة مع تحديد سمة العضوية" @@ -2553,7 +2560,7 @@ msgstr "مسؤول النظام" msgid "Forbidden" msgstr "ممنوع" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "تم محاولة الوصول من مصدر غير مسموح به" @@ -2665,24 +2672,24 @@ msgstr "تنظيف ذاكرة التخزين المؤقت L2" msgid "Custom message on launchers" msgstr "رسالة مخصصة على قاذفات" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "سبق نشرها. انتظر انتهاء منشور سابق و حاول مرة أخرى" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "الخدمة في وضع الصيانة وغير مسموح بالمنشورات الجديدة" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "لا يمكن إلغاء منشور ليس قيد التشغيل" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "لا يمكن إلغاء نشر منشور غير صالح للاستعمال" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "لا يمكن إلغاء نشر المنشورات مع خدمات في طور الإستعمال" @@ -2706,7 +2713,7 @@ msgstr "الخادم في وضع الصيانة" msgid "Server is restrained" msgstr "الخادم مقيد" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "تم بلوغ الحد الأقصى لعدد خدمات المستخدم لهذا {}" @@ -2722,22 +2729,22 @@ msgstr "لا يمكن إزالة أو إلغاء {} لأن حالته لا تس msgid "The requested service is restrained" msgstr "الخدمة المطلوبة مقيدة" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" msgstr "" "الخدمة غير صالحة. الخدمة غير متوفرة في هذه اللحظة. من فضلك، حاول في وقت لاحق" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "لم يتم العثور على وسيلة نقل مناسبة" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "النقل المطلوب {} غير صالح لـ {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "لا يمكن الوصول إلى الخدمة من هذا الجهاز" @@ -2749,11 +2756,11 @@ msgstr "عدد الثواني لتجاهل الرسائل المتكررة" msgid "Base Notifier" msgstr "المنبه الأساسي" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "السماح بتسجيل دخول المستخدم" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "رفض تسجيل دخول المستخدم" @@ -2769,7 +2776,7 @@ msgstr "رفض المستخدم لتسجيل الدخول إذا كان IP مو msgid "Base MFA" msgstr "قاعدة MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "رمز MFA غير صالح" @@ -2777,7 +2784,7 @@ msgstr "رمز MFA غير صالح" msgid "No check method provided." msgstr "لم يقدم أسلوب الاختيار ." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "لم ينفذ أي اتصال بالتحقق من الأسلوب." @@ -2825,12 +2832,12 @@ msgstr "آلة الأساس" msgid "Base machine for this service" msgstr "آلة قاعدة لهذه الخدمة" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "رمز الخدمة" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2839,23 +2846,30 @@ msgstr "" "رمز الخدمة الذي سيتم استخدامه بواسطة الجهات الفاعلة للتواصل مع الخدمة. اتركه " "فارغًا للتخصيص المستمر." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "آلات" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "آلات لهذه الخدمة" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "تعيين عشوائي للآلة" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "إذا كان نشطًا، فسيقوم UDS بتعيين الأجهزة بطريقة عشوائية، بدلاً من الخطية" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "استخدام لقطات" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2863,32 +2877,24 @@ msgstr "" "إذا كان نشطًا، فسيحاول UDS إنشاء لقطة (إذا لم تكن موجودة بالفعل) قبل الوصول " "إلى الجهاز، واستعادتها بعد الاستخدام." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "نوع اللقطة" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "لا لقطة" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "استعادة لقطة وإيقاف الجهاز" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "استعادة لقطة وبدء تشغيل الجهاز" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "تعيين عشوائي للآلة" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "إذا كان نشطًا، فسيقوم UDS بتعيين الأجهزة بطريقة عشوائية، بدلاً من الخطية" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3129,11 +3135,11 @@ msgstr "آلة" msgid "Config" msgstr "التكوين" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "تنتهي مدة الجلسة بعد ساعات من النشر" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3141,7 +3147,7 @@ msgstr "" "التأخير بين عمليات فحص ذاكرة التخزين المؤقت. سيؤدي تقليل هذا العدد إلى زيادة " "سرعة إنشاء ذاكرة التخزين المؤقت ولكنه سيؤدي أيضًا إلى تحميل موفري الخدمة" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3151,7 +3157,7 @@ msgstr "" "ستكتمل المهمة المنشورة في وقت أقرب، ولكنها ستوفر المزيد من التحميل على " "النظام ككل" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3161,7 +3167,7 @@ msgstr "" "سلاسل الرسائل، ستكتمل المهمة المنشورة في وقت أقرب، ولكنها ستوفر المزيد من " "التحميل على النظام ككل" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3169,30 +3175,30 @@ msgstr "" "وقت الانتظار قبل إزالة المنشورات \"الخاطئة\" و\"المزالة\"، وذاكرة التخزين " "المؤقت، والأجهزة المخصصة للمستخدم. الوقت بالثواني" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "الوقت اللازم لصيانة عناصر \"حالة المعلومات\" قبل إزالتها، بالثواني" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "عدد الخدمات لبدء الإزالة لكل تشغيل لمنظف الخدمة" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "إزالة التحقق من الوقت لذاكرة التخزين المؤقت والمنشورات والخدمات المنشورة، في " "ثوان" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "اسم المستخدم المتميز" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "كلمة مرور المستخدم الخارق" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3201,11 +3207,11 @@ msgstr "" "السماح للمستخدم الجذر بالوصول باستخدام واجهة الويب. بمجرد تكوين أداة مصادقة " "واحدة، يوصى بتعطيل هذا الخيار" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "تمكين وحدات الأمان المحسنة" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3213,7 +3219,7 @@ msgstr "" "فرض وضع الأمان الأقصى (وضع الثقة المعدومة). لن يُسمح بإعادة توجيه كلمة المرور " "إذا تم ضبط هذا الوضع." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3221,40 +3227,40 @@ msgstr "" "ما هي المدة التي يجب أن تظل فيها خدمة المستخدم غير مستخدمة قبل أن يفكر مدير " "نظام التشغيل في إزالتها؟" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "الوقت بين عمليات التحقق من خدمات المستخدم غير المستخدمة من قبل مديري نظام " "التشغيل" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "الحد الأقصى لعدد مرات تسجيل الدخول قبل حظر الحساب لفترة من الوقت" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "حظر الوقت بالثانية للمستخدم الذي لديه عدد كبير جدًا من حالات فشل تسجيل الدخول" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "حظر IP عند فشل تسجيل الدخول" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "قم بالتشغيل التلقائي للخدمة إذا كانت هناك خدمة واحدة فقط" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "إعادة توجيه HTTP إلى HTTPS عند الاتصال بـ UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "يعيد توجيه صفحة تسجيل الدخول إلى العلامة المستخدمة عند تسجيل الدخول إذا كانت " "نشطة." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3262,7 +3268,7 @@ msgstr "" "الحد الأقصى من الوقت اللازم للحصول على الخدمة \"تعمل بكامل طاقتها\" قبل " "اعتبارها \"فاشلة\" وإزالتها" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3270,60 +3276,60 @@ msgstr "" "الحد الأقصى من الوقت اللازم لإزالة الخدمة بالكامل قبل اعتبارها \"فاشلة\" " "وإزالتها" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "الحد الأقصى من السجلات لكل عنصر إدارة قادر على التسجيل" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "الحد الأقصى لإدخالات السجلات لسجلات UDS العامة (0 = غير محدود، استخدم بعناية)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "حان الوقت لتقييد خدمة المستخدم في حالة حدوث بعض الأخطاء في مرحلة ما" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" msgstr "عدد الأخطاء التي يجب أن تحدث في \"restrainTime\" لتقييد خدمة المستخدم" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "مدة الإحصائيات، بالأيام" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "معدل تكرار جمع الإحصائيات بالثواني. الافتراضي 4 ساعات (14400 ثانية)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "أقصى عدد من الوقت للتراكم في تشغيل واحد. الافتراضي هو 7 (أسبوع واحد)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "في حالة عدم السماح بتسجيل الدخول بإظهار المصادقين" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "إعلام المستخدم بوجود إصدار جديد من الخدمة عند النشر الجديد" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "" "الشبكات أو المضيفين الذين يعتبرون \"موثوقين\" لـ UDS (الأنفاق، وما إلى " "ذلك ...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "عناوين IP أو الشبكات المسموح لها بإعادة توجيه الطلبات (مثل الوكلاء)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3331,11 +3337,11 @@ msgstr "" "السماح للعملاء بإخطار عنوان IP الخاص بهم (في حالة تعيينه)، أو استخدام عنوان " "IP المستخرج للطلب دائمًا" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "إذا كان هناك وكيل أمامنا (أي HAProxy أو أي NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3343,79 +3349,79 @@ msgstr "" "إذا استخدمنا آليات تسجيل خروج جديدة لمديري osmanagers، حيث فقط عندما يصل " "المستخدمون الذين قاموا بتسجيل الدخول إلى 0، فسيتم اعتبار ذلك \"مسجل خروج\"" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "تمكين/تعطيل حظر IP الخاص باكتشاف هجوم الممثل" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "الحد الأقصى لطول الجلسة للمشرف" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "الحد الأقصى لطول الجلسة للمستخدم" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "وقت إعادة تحميل الصفحة (القديم)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "رسالة مخصصة للخطأ عند التقييد بالتقويم" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "إذا قمت بتحويل اسم المستخدم إلى أحرف صغيرة عند تسجيل الدخول" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "معرف UDS العالمي (مشترك لجميع الخوادم الموجودة في نفس المجموعة)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "اسم عرض الموقع" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "معلومات حقوق الطبع والنشر للموقع" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "رابط حقوق الطبع والنشر للموقع" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "اسم شعار شريط التنقل العلوي" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "يتم تطبيق أنماط CSS المخصصة على الموقع الذي يمكن للمستخدم الوصول إليه" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "معلومات الموقع" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "إظهار مربع التصفية لخدمات المستخدم في أعلى الصفحة أو أسفلها" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "الحد الأدنى من خدمات المستخدم اللازمة لإظهار الفلتر" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "تمكين الميزات التجريبية. استخدم بحذر!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "عدد العناصر لكل صفحة في جداول الإدارة" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "قائمة بالمضيفين/الشبكات الموثوقة المسموح لهم بالوصول إلى واجهة الإدارة" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "تمكين قائمة VNC لخدمات المستخدم" @@ -3472,7 +3478,7 @@ msgid "Base name for clones from this service" msgstr "الاسم الأساسي للنسخ من هذه الخدمة" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "طول الاسم " @@ -3508,9 +3514,10 @@ msgstr "الحد الأقصى لعدد الخدمات المسموح بها (0 msgid "Remove found duplicates" msgstr "إزالة الملفات المكررة" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" -msgstr "إذا كانت نشطة، فستتم إزالة تطبيقات مكررة لهذه الخدمة" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" +msgstr "إذا تم تنشيطه، فسيتم إزالة التطبيقات المكررة لهذه الخدمة" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3665,122 +3672,122 @@ msgstr "لا يمكن الاتصال بخادم LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} أيام {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "رقمية" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} يجب أن يكون أكبر من أو يساوي {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} يجب أن يكون أقل من أو يساوي {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} يحتوي على أحرف غير صالحة" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "{} ليس اسم مضيف صالحًا: تم تجاوز الحد الأقصى لطول اسم المضيف." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} ليس اسم مضيف صالحًا: (المجالات غير مسموح بها)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} ليس اسم مضيف صالحًا: (أحرف غير صالحة)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} ليس عنوان URL صالحًا: يتجاوز الحد الأقصى للطول." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} ليس عنوان IPv4 صالحًا" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} ليس عنوان IPv6 صالحًا" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} ليس عنوان IPv4 أو IPv6 صالحًا" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} يتجاوز الحد الأقصى لطول المسار." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} ليس مسارًا صالحًا لنظام Windows" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} ليس مسارًا صالحًا لنظام التشغيل Unix" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} ليس مسارًا صالحًا" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} ليس مضيفًا صالحًا: زوج منفذ" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} ليس عنوان MAC صالحًا" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} ليس نطاق MAC صالحًا" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "عنوان البريد الإلكتروني طويل جدًا" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "عنوان البريد الإلكتروني غير صالح" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "اسم القاعدة ليس صالحًا لاسم المضيف" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "يجب أن يكون طول اسم القاعدة زائد الطول أكبر من 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "لا يجب أن يكون طول اسم بالإضافة إلى طول قاعدة أكبر من 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "لا يمكن أن يكون اسم الجهاز أرقام فقط" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "بيانات JSON غير صالحة" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "الشهادة فارغة" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "شهادة غير صالحة" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "المفتاح الخاص فارغ" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "مفتاح خاص غير صالح" @@ -3964,35 +3971,49 @@ msgstr "" "على هذا المستخدم إدخال OTP. إذا تم تحديده ، يجب على جميع المستخدمين إدخال " "OTP ، لذلك يتم تخطي خطوة المصادقة." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "إرسال اسم المستخدم فقط (بدون المجال) إلى خادم radius" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"إذا لم يتم تحديد المربع، فسيتم إرسال اسم المستخدم كما هو إلى خادم radius. " +"إذا تم تحديد المربع، فسيتم إزالة جزء المجال من اسم المستخدم قبل إرساله إلى " +"خادم radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "رمز OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "الرجاء إدخال OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "خطأ في اتصال Radius OTP" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "رمز OTP غير صحيح" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "الرسائل القصيرة عبر HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "إرسال رسائل قصيرة بسيطة MFA باستخدام HTTP / HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "نمط URL لإرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4004,16 +4025,16 @@ msgstr "" "{code} - رمز الإرسال * {phone / + phone} - رقم الهاتف * {username} - اسم " "المستخدم * {justUsername} - اسم المستخدم بدون @ ...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "خادم HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "تجاهل أخطاء الشهادة" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4021,19 +4042,19 @@ msgstr "" "إذا تم تحديده ، فسيتم تجاهل شهادة الخادم. يكون هذا مفيدًا إذا كان الخادم " "يستخدم شهادة موقعة ذاتيًا." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "طريقة إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "طريقة إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "رؤوس طلبات الرسائل القصيرة" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4047,11 +4068,11 @@ msgstr "" "{justUsername} - اسم المستخدم بدون @ .... العناوين موجودة شكل \"Header: " "Value\". (بدون اقتباس)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "معلمات لإرسال POST / PUT SMS" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4064,51 +4085,51 @@ msgstr "" "التالية: * {code} - رمز الإرسال * {phone / + phone} - رقم الهاتف * " "{username} - اسم المستخدم * {justUsername} - اسم المستخدم بدون @ ...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "ترميز الرسائل القصيرة" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "ترميز الرسائل القصيرة" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "طريقة مصادقة الرسائل القصيرة" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "مصادقة HTTP الأساسية" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "مصادقة ملخص HTTP" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "مصادقة HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "مستخدم مصادقة SMS أو رمز مميز" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "مستخدم أو رمز مميز للمصادقة عبر الرسائل القصيرة" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "كلمة مرور مصادقة SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "كلمة مرور لمصادقة الرسائل القصيرة" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "استجابة الرسائل القصيرة موافق regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4116,42 +4137,42 @@ msgstr "" "Regex لاستجابة الرسائل القصيرة موافق. إذا كانت الاستجابة فارغة ، فسيتم " "اعتبارها على ما يرام إذا كان رمز الحالة 200." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "استجابة HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "إجراء خطأ استجابة SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "الإجراء لخطأ استجابة SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "اسمح للمستخدم بتسجيل الدخول إذا كان عنوان IP الخاص به موجودًا في قائمة الشبكات" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "منع المستخدم من تسجيل الدخول إذا كان عنوان IP الخاص به موجودًا في قائمة " "الشبكات" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "فشل إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "خطأ في استجابة الرسائل القصيرة" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "كود وزارة الخارجية" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 msgid "Check your phone. You will receive an SMS with the verification code" msgstr "افحص هاتفك. ستتلقى رسالة نصية قصيرة تحتوي على رمز التحقق" @@ -4199,15 +4220,15 @@ msgstr "عدد الرموز الصالحة قبل وبعد الرمز الحال msgid "Authentication Code" msgstr "رمز الدخول" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "أدخل رمز المصادقة الخاص بك" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "الرمز مستخدم بالفعل. انتظر دقيقة وحاول مرة أخرى." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "الرمز غير صحيح" @@ -4489,21 +4510,21 @@ msgstr "يجب تقديم حساب لإضافة آلات لنطاق!" msgid "Must provide a password for the account!" msgstr "يجب توفير كلمة مرور لحساب!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "مدير نظام لينكس" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager للتحكم في الأجهزة الافتراضية لـ Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "الوقت الأقصى للخمول" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4511,12 +4532,12 @@ msgstr "" "يتم الإغلاق بعد الحد الأقصى لوقت الخمول (بالثواني) قبل الإغلاق التلقائي " "للمستخدم (<= 0 يعني عدم وجود حد أقصى لوقت الخمول)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "التقويم الخروج" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4589,20 +4610,20 @@ msgstr "" "يتم الإغلاق بعد وقت الخمول الأقصى (بالثواني) قبل الإغلاق التلقائي للمستخدم " "(<= 0 يعني عدم وجود حد أقصى لوقت الخمول)." -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "UDS Actor للآلات ويندوز" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "ممثل UDS لآلات النوافذ غير المدارة. تستخدم فقط للآلات الساكنة." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "مدير نظام التشغيل ويندوز الأساسي" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "مدير نظام التشغيل للسيطرة على أجهزة ويندوز دون المجال." @@ -4952,21 +4973,21 @@ msgstr "استخدام تجمعات في يوم" msgid "Pools usage counters for an specific day" msgstr "استخدام عدادات تجمعات ليوم معين" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "الخدمات بمقدار ساعة" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "ساعة" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "تقرير استخدام الخدمات لمدة يوم" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "تقرير استخدام الخدمة" @@ -5121,7 +5142,7 @@ msgstr "" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5137,20 +5158,20 @@ msgstr "المنطقة الافتراضية" msgid "Default region to use for connecting to EC2" msgstr "المنطقة الافتراضية المراد استخدامها للاتصال بـ EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "خدمة AWS AMI الحالية" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "توفر هذه الخدمة الوصول إلى AWS VDI استنادًا إلى AMI المملوكة حاليًا" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "عدد السفن المطلوب للحفاظ على تشغيل الانتظار للمستخدم" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5158,15 +5179,15 @@ msgstr "عدد السفن المطلوب للحفاظ على تشغيل الان msgid "Number of desired VMs to keep stopped waiting for use" msgstr "عدد الأجهزة الافتراضية المرغوبة لتظل متوقفة في انتظار الاستخدام" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "قاعدة AMI لهذه الخدمة" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5175,37 +5196,37 @@ msgstr "قاعدة AMI لهذه الخدمة" msgid "Region" msgstr "منطقة" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "منطقة لهذه الخدمة" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "نوع الطلب" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "اكتب للمثيلات التي تم إنشاؤها من AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "زوج المفتاح" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "زوج المفاتيح الذي سيتم استخدامه لهذا الجهاز" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC للمثيلات من هذه الخدمة" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5213,19 +5234,19 @@ msgstr "VPC للمثيلات من هذه الخدمة" msgid "Network" msgstr "شبكة الاتصال" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "شبكة فرعية" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "شبكة فرعية للمثيلات من هذه الخدمة" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "مجموعات الأمان" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "مجموعات الأمان للطبعات من هذه الخدمة" @@ -5244,7 +5265,7 @@ msgid "Service region" msgstr "منطقة الخدمة" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5252,7 +5273,7 @@ msgid "After logout" msgstr "بعد تسجيل الخروج" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5260,7 +5281,7 @@ msgid "Select the action to be performed after the user logs out." msgstr "حدد الإجراء الذي سيتم تنفيذه بعد تسجيل خروج المستخدم." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5287,7 +5308,7 @@ msgid "Obtained from subscriptions" msgstr "التي تم الحصول عليها من اشتراكات" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "المهلة بالثواني لاتصالات الخادم" @@ -5393,59 +5414,61 @@ msgstr "الأجهزة الثابتة Azure" msgid "Azure Services based on fixed machines." msgstr "خدمات Azure القائمة على الأجهزة الثابتة." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "إيقاف الجهاز (وإلغاء تخصيصه)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "مزود منصة Google Cloud" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "يوفر اتصالاً بمحرك الحوسبة الخاص بمنصة Google Cloud" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "البريد الإلكتروني للعميل" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "بريد إلكتروني للعميل لحساب الخدمة" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "رمز URI" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "عنوان URL للرمز، كما توفره Google (الإعداد الافتراضي هو لـ Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "مفتاح خاص" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "مفتاح خاص لحساب الخدمة" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "معرف المشروع" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "معرف المشروع لـ Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "المنطقة المفضلة" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "المنطقة المفضلة للخدمات الجديدة" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "مزود خدمة Google Cloud" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "يوفر اتصالاً بمحرك الحوسبة السحابية من Google" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "تم الاتصال بنجاح" @@ -5735,7 +5758,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "عدد vcpus (\"-1 يعني\" الاحتفاظ بآلة vcpus الأصلية \")" @@ -5745,7 +5767,6 @@ msgid "Cores per VCPU" msgstr "النوى لكل VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "عدد vcpus (\"-1 يعني\" الاحتفاظ بنواة الآلة الأصلية لكل vcpu \")" @@ -5767,7 +5788,6 @@ msgid "No" msgstr "لا" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "كلا النوى لكل VCPU وعدد VCPUS مطلوبان" @@ -5835,12 +5855,35 @@ msgstr "Nutanix خدمة أكروبوليس" msgid "Nutanix Acropolis based service" msgstr "الخدمة على Nutanix أكروبوليس." +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"عدد وحدات المعالجة المركزية الافتراضية (القيمة صفر تعني \"الاحتفاظ بوحدات " +"المعالجة المركزية الافتراضية للجهاز الأصلي\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"عدد وحدات المعالجة المركزية الافتراضية (القيمة الصفرية تعني \"الاحتفاظ بنواة " +"الجهاز الأصلية لكل وحدة معالجة مركزية افتراضية\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "شبكة للأجهزة (كل آلة تم إنشاؤها سوف يتم إرفاق هذا شبكة الاتصال)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"يجب أن يكون كل من النوى لكل وحدة معالجة مركزية افتراضية وعدد وحدات المعالجة " +"المركزية الافتراضية أكبر من 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "آلات نوتانيكس الثابتة" @@ -6137,23 +6180,23 @@ msgstr "قالب قاعدة." msgid "Service base template" msgstr "قالب قاعدة الخدمة." -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "أسماء الأجهزة" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "الاسم الأساسي للاستنساخ من هذا الجهاز" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "حجم الجزء الرقمي لأسماء هذه الآلات" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "خطأ مصادقة" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6440,14 +6483,19 @@ msgid "Static Single IP" msgstr "IP ثابت واحد" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "توفر هذه الخدمة إمكانية الوصول إلى الجهاز عن طريق IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"توفر هذه الخدمة إمكانية الوصول إلى الجهاز الذي يعمل بالطاقة عبر IP. (يمكنك " +"تكوين WOL لتشغيل الجهاز)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "مضيف IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6455,11 +6503,11 @@ msgstr "" "IP أو FQDN للخادم المراد الاتصال به. يمكن أن يتضمن عنوان MAC مفصولاً بـ \";\" " "بعد عنوان IP/اسم المضيف" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "تم استخدام خادم غير صالح: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "تم استخدام عنوان MAC غير صالح: \"{}\"" @@ -6817,35 +6865,35 @@ msgstr "منصة RDS RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "الخدمة على RDS منصة RemoteAPP" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "مسار التطبيق" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "المسار الكامل للتطبيق ستمثل هذه الخدمة." -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "معلمات التطبيق" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "معلمات التطبيقات، كما سيتم تمريرها في سطر الأوامر" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "بداية المسار" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "المسار حيث سيتم تشغيل التطبيق على. (مثال: f: \\ example \\ folder)" -#: services/RDS_enterprise/service.py:86 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "انتظر العمليات الناتجة" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -6853,7 +6901,7 @@ msgstr "" "إذا تم تحديده، RDS Actor سينتظر إنهاء التطبيق وجميع العمليات قبل النظر في " "تطبيق الخروج" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "مطلوب مسار تطبيق صحيح" @@ -7134,28 +7182,32 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "مركز البيانات الافتراضية" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "إذا كانت نشطة، فستتم إزالة تطبيقات مكررة لهذه الخدمة" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "النشرة المصورة" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "لائحة مصدر vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp القالب" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "قالب vApp للخدمة" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "الشبكة الرئيسية" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7163,7 +7215,7 @@ msgstr "" "إذا تم العثور على أكثر من واجهة في الجهاز، واستخدام وجدت لأول مرة على هذه " "الشبكة والرئيسية" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "مسموح فقط قوالب vApp مع 1 VM" @@ -8698,18 +8750,18 @@ msgstr "تطبيق Binary appimage لعميل ARMHF Linux (Raspberry، ...)" msgid "Generic .tar.gz Linux client" msgstr "عام .tar.gz عميل لينكس" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "الموثق لا يوفر المعلومات" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} أيام" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} ساعات" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "خطأ داخلي" diff --git a/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po index 4db940040..8bbe8bfe2 100644 --- a/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Abdel Baaddi , 2016-2018 # Víctor Alonso , 2020 # Víctor Alonso , 2020 @@ -27,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Arabic (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/ca/LC_MESSAGES/django.po b/server/src/uds/locale/ca/LC_MESSAGES/django.po index fdbda025c..a5876c631 100644 --- a/server/src/uds/locale/ca/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ca/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2018 # albert clar , 2017-2018,2020-2021 # Javier , 2020 @@ -29,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier , 2020\n" "Language-Team: Catalan (http://app.transifex.com/openuds/openuds/language/" @@ -58,11 +59,11 @@ msgid "Name" msgstr "Nom" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -78,45 +79,45 @@ msgstr "Marca de temps" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "etiquetes" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Nom de Pool" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nom d'usuari" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "En execució" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Comença" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Acaba" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Transcorreguts" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Marca de temps transcorreguda" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Usos de {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Usos actuals" @@ -188,7 +189,7 @@ msgstr "ID" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -256,9 +257,9 @@ msgstr "" msgid "Display" msgstr "Pantalla" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -286,32 +287,32 @@ msgstr "Refineu la vostra consulta" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "L'etiqueta només ha de contenir lletres, números o símbols: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Nom de la regla" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Es repeteix" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Cada" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Durada" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "L'element ja existeix (error clau duplicada)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Regles de {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Regles actuals" @@ -372,7 +373,7 @@ msgstr "Política" msgid "HA Policy" msgstr "Política d'HA" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Serveis d'usuari" @@ -484,7 +485,7 @@ msgstr "Data de creació" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -675,7 +676,7 @@ msgstr "Proveïdors de servei" msgid "Status" msgstr "Estat" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -695,7 +696,7 @@ msgstr "Informes disponibles" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -844,61 +845,61 @@ msgstr "Gestionat" msgid "Unmanaged" msgstr "No gestionat" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Estàndard" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Sembla que el token de servei ja és utilitzat per un altre servei. Si us " "plau, seleccioneu-ne un de nou." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Error d'entrada: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Serveis de {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Serveis actuals" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Nom del servei" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pools de serveis" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Tipus de recompte màxim de serveis" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservador" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Mètode de recompte de serveis" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Tipus de recompte de servei per calcular si s'arriba a MAX" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Amb errors" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "D'acord" @@ -1136,7 +1137,7 @@ msgstr "Túnels" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1162,6 +1163,11 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Port on el túnel és visible pels usuaris" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"No es pot suprimir un grup de servidors de túnel amb transports connectats" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1241,7 +1247,7 @@ msgid "Current users" msgstr "Usuaris actuals" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1372,24 +1378,24 @@ msgstr "" "Xarxes associades. Si no s'ha seleccionat cap xarxa, significarà \"totes " "les xarxes\"" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Sol·licitud no vàlida" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Mètode no trobat a {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Element no trobat" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Accés denegat" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Operació no suportada" @@ -1436,7 +1442,7 @@ msgstr "" "format USUARI@DOMINI)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1495,24 +1501,27 @@ msgstr "" "domini de l'usuari) si el mode compat no és \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Servidors de còpia de seguretat" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Si no està buit, aquest amfitrió s'utilitzarà en cas que no es pugui accedir " -"al servidor principal" +"Si no està buida, aquesta llista de domini=còpia de seguretat1,còpia de " +"seguretat2,... s'utilitzarà com a servidors de còpia de seguretat per " +"als dominis. Si no s'especifica el domini, s'utilitzaran els " +"servidors de còpia de seguretat per a tots els dominis." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Verifiqueu SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1521,24 +1530,24 @@ msgstr "" "Si està marcat, s'aplicarà la verificació SSL. Si no, la verificació SSL " "es desactivarà" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificat" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificat per utilitzar per a la verificació SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Llista de traduccions de l'amfitrió" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1546,11 +1555,11 @@ msgstr "" "Si no està buida, aquesta llista de parells clau=valor s'utilitzarà per " "traduir el nom d'amfitrió d'AD a un nom d'amfitrió resoluble." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignora els dominis" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1558,11 +1567,11 @@ msgstr "" "Si no està buida, aquesta llista de dominis s'ignorarà en cercar " "usuaris. Valors separats per comes." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Redirecció en caducat" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1570,20 +1579,20 @@ msgstr "" "Si no està buit, si la contrasenya de l'usuari ha caducat, es redirigirà " "automàticament a aquest URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Autenticador del Directori Actiu" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Autenticar sobre Directori Actiu" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1591,49 +1600,49 @@ msgstr "" "No s'ha pogut connectar a cap servidor AD. Comproveu la vostra " "configuració (servidor, certificats ssl, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Nom d'usuari no trobat" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Grup no trobat" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Massa resultats, cal especificar més" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "S'ha produït un error intentant la connexió" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "Sembla que la connexió no és correcta, comproveu-la" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Els paràmetres de connexió semblen correctes, la prova s'ha executat " @@ -1687,7 +1696,7 @@ msgstr "URL de resposta (omplert per UDs, cavieu-ho només si és necessari!!)" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1751,23 +1760,23 @@ msgstr "" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "Aquest tipus d'autenticador no admet espais en blanc al camp NOM" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Usuari no trobat" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Excepció d'autenticador:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Error de connexió:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "" "Els paràmetres de connexió semblen correctes, la prova s'ha executat " @@ -1796,7 +1805,7 @@ msgstr "Nom d'usuari amb privilegis de lectura sobre l'eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1807,13 +1816,13 @@ 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:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Atribut MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Atribut d'on extreure el codi MFA" @@ -1826,28 +1835,28 @@ msgstr "Autenticador eDirectory" msgid "Authenticate against eDirectory" msgstr "Autenticar sobre eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Error de connexió" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Error de connexió: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "La base de cerca LDAP no és correcta" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1855,14 +1864,14 @@ 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:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "L'atribut del grup Ldap sembla ser incorrecte (no s'ha trobat cap " "grup per aquest atribut)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2095,25 +2104,25 @@ msgstr "Identificador NAS" msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS del servidor Radius" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Prefix de l'App per als atributs de classe" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "Prefix de l'aplicació per filtrar grups de l'atribut \"Class\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Grup global" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Si es defineix, aquest valor s'afegirà com a grup per a tots els usuaris de " "radius" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Ha fallat la connexió amb el servidor Radius" @@ -2570,13 +2579,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Autenticador LDAP simple" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "Sembla que la classe de grup LDAP no és correcta (no s'ha trobat cap grup " "per a aquesta classe)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2584,7 +2593,7 @@ msgstr "" "L'atribut d'ID de grup de LDAP sembla incorrecte (no s'ha trobat cap grup " "amb aquest atribut)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2592,7 +2601,7 @@ msgstr "" "Probablement la classe d’usuari LDAP o l’atribut d'identificador d’usuari no " "són correctes (no es pot trobar cap usuari amb les dues condicions)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2600,7 +2609,7 @@ msgstr "" "Probablement la classe de grup LDAP o l'atribut d’identificador de grup no " "són correctes (no es pot trobar cap grup amb les dues condicions)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "No es pot localitzar cap grup amb l’atribut de membres especificat" @@ -2612,7 +2621,7 @@ msgstr "Administrador del sistema" msgid "Forbidden" msgstr "Prohibit" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Accés intentat des d'un origen no permès" @@ -2725,26 +2734,26 @@ msgstr "Netegeu la memòria cau L2" msgid "Custom message on launchers" msgstr "Missatge personalitzat als llançadors" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Ja s'està publicant. Espereu que la publicació anterior acabi i torneu-ho a " "intentar" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "El servei està en mode manteniment i no es permeten publicacions noves" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "No es pot cancel·lar una publicació que no s'està executant" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "No es pot anul·lar una publicació que no es pot utilitzar" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "No es poden anul·lar publicacions amb serveis en procés" @@ -2768,7 +2777,7 @@ msgstr "El servidor està en mode de manteniment" msgid "Server is restrained" msgstr "El servidor està restringit" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Nombre màxim de serveis d'usuari assolit per a aquest {}" @@ -2784,7 +2793,7 @@ msgstr "No es pot eliminar ni cancel·lar {} perquè el seu estat no ho permet" msgid "The requested service is restrained" msgstr "El servei sol·licitat està restringit" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2792,15 +2801,15 @@ msgstr "" "Servei no vàlid. El servei no està disponible ara mateix. Si us plau, " "intenteu-ho més tard" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "No s'ha trobat cap transport adequat" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "El transport sol·licitat {} no és vàlid per a {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "El servei no és accessible des d'aquest dispositiu" @@ -2812,11 +2821,11 @@ msgstr "Nombre de segons per ignorar els missatges repetits" msgid "Base Notifier" msgstr "Notificador base" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Permet l'inici de sessió de l'usuari" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Denegar l'inici de sessió de l'usuari" @@ -2836,7 +2845,7 @@ msgstr "" msgid "Base MFA" msgstr "Base MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Codi MFA no vàlid" @@ -2844,7 +2853,7 @@ msgstr "Codi MFA no vàlid" msgid "No check method provided." msgstr "No s'ha proporcionat cap mètode de verificació" -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "No s'ha implementat cap mètode per a comprovar la connexió" @@ -2892,12 +2901,12 @@ msgstr "Màquina base" msgid "Base machine for this service" msgstr "Màquina base per a aquest servei" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Token de servei" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2906,23 +2915,31 @@ msgstr "" "Token de servei que faran servir els actors per comunicar-se amb el servei. " "Deixeu-lo buit per a una assignació persistent." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Màquines" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Màquines per a aquest servei" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Assignació aleatòria de la màquina" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Si està actiu, UDS assignarà màquines de manera aleatòria, en lloc de lineal" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Utilitzar instantànies" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2930,33 +2947,24 @@ msgstr "" "Si està actiu, l'UDS intentarà crear una instantània (si ja no n'hi " "ha) abans d'accedir a una màquina i la restaurarà després de l'ús." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Tipus d'instantània" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Cap instantània" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Recupereu la instantània i atureu la màquina" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Recupereu la instantània i engegueu la màquina" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Assignació aleatòria de la màquina" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Si està actiu, UDS assignarà màquines de manera aleatòria, en lloc de lineal" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3204,11 +3212,11 @@ msgstr "Màquina" msgid "Config" msgstr "Config" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Temps de caducitat de la sessió en hores després de la publicació" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3217,7 +3225,7 @@ msgstr "" "augmentarà la velocitat de generació de memòria cau, però també carregarà " "els proveïdors de serveis" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3227,7 +3235,7 @@ msgstr "" "de fils, la tasca desplegada es completarà abans, però donarà més càrrega al " "sistema en general" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3237,7 +3245,7 @@ msgstr "" "nombre més elevat de fils, la tasca desplegada es completarà abans, però " "donarà més càrrega al sistema en general" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3246,34 +3254,34 @@ msgstr "" "\"eliminades\", la memòria cau i les màquines assignades per l'usuari. " "El temps és en segons" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Temps per mantenir els elements \"estat de la informació\" abans d'" "eliminar-lo, en segons" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Nombre de serveis per iniciar l'eliminació per execució del netejador de " "servei" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Eliminació Comproveu el temps per a la memòria cau, les publicacions i els " "serveis desplegats, en segons" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Nom d'usuari de superusuari" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Contrasenya de superusuari" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3282,11 +3290,11 @@ msgstr "" "Permet que l'usuari root accedeixi mitjançant la interfície web. Un cop " "configurat un autenticador, es recomana desactivar aquesta opció" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Activa els mòduls de seguretat millorats" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3294,7 +3302,7 @@ msgstr "" "Mode de seguretat màxima aplicat (mode de confiança zero). No es permetrà " "cap redirecció de contrasenyes si s'estableix aquest mode." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3302,42 +3310,42 @@ msgstr "" "Quant de temps hauria d'estar sense utilitzar el servei d'usuari " "abans que el gestor del sistema operatiu el consideri per eliminar-lo" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Temps entre comprovacions dels serveis d'usuari no utilitzats per part " "dels gestors del sistema operatiu" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "" "Màxim d'inicis de sessió abans de bloquejar un compte durant un temps" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Bloqueja el temps en segons per a un usuari que té massa errors d'inici " "de sessió" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Bloqueja la ip en cas d'error d'inici de sessió" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Feu l'execució automàtica del servei si només hi ha un servei" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Redirigeix HTTP a HTTPS en connexió a UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Redirigeix la pàgina d'inici de sessió a l'etiqueta utilitzada quan " "s'ha iniciat sessió si està activa." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3345,7 +3353,7 @@ msgstr "" "Temps màxim necessari per aconseguir un servei \"totalment funcional\" abans " "que es consideri \"fallit\" i s'elimini" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3353,27 +3361,27 @@ msgstr "" "Temps màxim necessari per \"eliminar completament\" un servei abans que es " "consideri \"fallit\" i purgat" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Nombre màxim de registres per cada element d'administració amb capacitat " "de registre" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Màxim d'entrades de registres per als registres generals d'UDS (0 = " "il·limitat, utilitzar-lo amb cura)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "És hora de restringir un servei d'usuari en cas que en algun moment doni " "alguns errors" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3381,45 +3389,45 @@ msgstr "" "Nombre d'errors que s'han de produir a \"restrainTime\" per " "restringir un servei d'usuari" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Durada de les estadístiques, en dies" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Freqüència de recollida d'estadístiques en segons. El valor " "predeterminat és 4 hores (14400 segons)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Nombre màxim de temps per acumular en una carrera. El valor predeterminat és " "7 (1 setmana)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Si no permet l'inici de sessió mostrant autenticadors" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Notificar a l'usuari l'existència d'una nova versió d'un " "servei en una nova publicació" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Xarxes o hosts considerats \"de confiança\" per a UDS (túnels, etc...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "" "IPs o xarxes permeses per reenviar sol·licituds (com ara servidors " "intermediaris)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3427,11 +3435,11 @@ msgstr "" "Permet als clients notificar la seva pròpia IP (si està establerta), o " "utilitzeu sempre la IP extreta de la sol·licitud" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Si tenim un proxy davant nostre (és a dir, HAProxy o qualsevol NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3439,85 +3447,85 @@ msgstr "" "Si utilitzem noves mecàniques de tancament de sessió per a osmanagers, on " "només quan els usuaris connectats arriben a 0, es considera \"tancat\"" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "" "Activa/desactiva el bloqueig d'IP de detecció d'atacs d'actor" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Durada màxima de la sessió per a l'administrador" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Durada màxima de la sessió per a l'usuari" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Temps de recàrrega de la pàgina (heretat)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Missatge personalitzat per error quan es limita per calendari" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "" "Si converteix el nom d'usuari en minúscules en els inicis de sessió" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "ID global d'UDS (comú per a tots els servidors del mateix clúster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Nom de visualització del lloc" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Informació dels drets d'autor del lloc" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Enllaç de copyright del lloc" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Nom del logotip de la barra de navegació superior" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Estils CSS personalitzats aplicats al lloc accessible per l'usuari" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Informació del lloc" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Mostra el quadre de filtre per als serveis d'usuari a la part superior o " "inferior de la pàgina" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Serveis d'usuari mínims necessaris per mostrar el filtre" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Activa les funcions experimentals. ÚS AMB PRECAUCIÓ!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Nombre d'elements per pàgina a les taules d'administració" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Llista d'amfitrions/xarxes de confiança per accedir a la interfície " "d'administració" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Activa el menú VNC per als serveis d'usuari" @@ -3574,7 +3582,7 @@ msgid "Base name for clones from this service" msgstr "Nom base per als clons d'aquest servei" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Llargada del nom" @@ -3610,10 +3618,12 @@ msgstr "Nombre màxim de serveis permesos (0 significa sense límit)" msgid "Remove found duplicates" msgstr "Elimina els duplicats trobats" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Si està activat, s'eliminarà la cerca de vApps duplicades per a aquest servei" +"Si està activat, s'eliminaran les VApp duplicades trobades per a aquest " +"servei" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3775,124 +3785,124 @@ msgstr "No es pot contactar amb el servidor LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} dies {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numèric" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} ha de ser major o igual a {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} ha de ser menor o igual a {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} conté caràcters no vàlids" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} no és un nom d'amfitrió vàlid: s'ha superat la longitud màxima " "del nom d'amfitrió." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} no és un nom d'amfitrió vàlid: (dominis no permesos)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} no és un nom d'amfitrió vàlid: (caràcters no vàlids)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} no és un URL vàlid: supera la longitud màxima." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} no és una adreça IPv4 vàlida" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} no és una adreça IPv6 vàlida" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} no és una adreça IPv4 o IPv6 vàlida" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} supera la longitud màxima del camí." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} no és una ruta de Windows vàlida" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} no és una ruta Unix vàlida" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} no és un camí vàlid" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} no és un parell host:port vàlid" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} no és una adreça MAC vàlida" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} no és un interval MAC vàlid" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "L'adreça electrònica és massa llarga" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "L'adreça de correu electrònic no és vàlida" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "El nom base no és vàlid per a un nom de host" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "La llargada del nom base més la llargada ha de ser superior a 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "La llargada del nom base més la llargada no pot ser superior a 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "El nom de màquina no pot contenir només valors numèrics" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Dades JSON no vàlides" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "El certificat està buit" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Certificat no vàlid" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "La clau privada està buida" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Clau privada no vàlida" @@ -4085,35 +4095,49 @@ msgstr "" "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:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Envieu només el nom d'usuari (sense domini) al servidor radius" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Si no està marcat, el nom d'usuari s'enviarà tal com està al " +"servidor de radi. Si està marcat, la part del domini s'eliminarà del nom " +"d'usuari abans d'enviar-la al servidor radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "Codi OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Introduïu OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Error de connexió de Radius OTP" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Codi OTP no vàlid" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS via HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "SMS senzill que envia MFA mitjançant HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Patró d'URL per enviar SMS" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4126,16 +4150,16 @@ msgstr "" "{username} - el nom d'usuari * {justUsername} - el nom d'usuari " "sense @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignora els errors del certificat" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4143,19 +4167,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:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Mètode d'enviament de SMS" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Mètode per enviar SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Capçaleres per a sol·licituds d'SMS" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4170,11 +4194,11 @@ msgstr "" "usuari sense @.... Les capçaleres estan a la forma de \"Encapçalament: " "valor\". (sense cometes)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Paràmetres per a l'enviament de SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4188,51 +4212,51 @@ msgstr "" "número de telèfon * {username} - el nom d'usuari * {justUsername} - el " "nom d'usuari sense @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Codificació de SMS" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Codificació per a SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Mètode d'autenticació per SMS" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Autenticació bàsica HTTP" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "Autenticació HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Usuari o testimoni d'autenticació per SMS" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Usuari o testimoni per a l'autenticació per SMS" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Contrasenya d'autenticació per SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Contrasenya per a l'autenticació per SMS" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Resposta d'SMS OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4240,43 +4264,43 @@ msgstr "" "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:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "Resposta HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Acció d'error de resposta SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Acció per error de resposta SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its 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/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "Denegueu que l'usuari iniciï sessió si la seva IP es troba a la llista " "de xarxes" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "S'ha produït un error en l'enviament de SMS" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Error de resposta SMS" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Codi MFA" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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ó" @@ -4324,15 +4348,15 @@ msgstr "Nombre de codis vàlids abans i després de l'actual" msgid "Authentication Code" msgstr "Codi d'autenticació" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Introduïu el vostre codi d'autenticació" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "El codi ja s'utilitza. Espereu un minut i torneu-ho a provar." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Codi invàlid" @@ -4615,21 +4639,21 @@ msgstr "Cal indicar un compte per a agregar màquines a un domini!" msgid "Must provide a password for the account!" msgstr "Cal indicar una contrasenya per al compte!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Gestor de SO Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Gestor de SO per controlar màquines virtuals Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Temps màxim d'inactivitat" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4637,12 +4661,12 @@ msgstr "" "Temps màxim d'inactivitat (en segons) abans que una sessió es tanqui " "automàticament (<=0 vol dir que no hi ha temps màxim d'inactivitat)" -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Tancament de sessió del calendari" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4716,22 +4740,22 @@ msgstr "" "Temps màxim d'inactivitat (en segons) abans que una sessió es tanqui " "automàticament (<=0 vol dir que no hi ha temps màxim d'inactivitat)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "Actor UDS per a màquines Windows" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "Actor UDS per a màquines Windows no gestionades. NOMÉS s'utilitza per a " "màquines estàtiques." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Gestor de SO per a Windows Bàsic" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Gestor de SO per a controlar màquines Windows no agregades a domini" @@ -5088,21 +5112,21 @@ msgstr "Ús de pools en un dia" msgid "Pools usage counters for an specific day" msgstr "Comptadors d'ús de pools un dia específic" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Serveis per hora" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Hora" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Informe d'ús dels serveis durant un dia" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Informe d'ús del servei" @@ -5256,7 +5280,7 @@ msgstr "Obtingut de l'usuari creat a AWS IAM per a UDS Enteprise - Keys" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5272,24 +5296,24 @@ msgstr "Regió predeterminada" msgid "Default region to use for connecting to EC2" msgstr "Regió predeterminada a utilitzar per connectar-se a EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Servei AMI existent d'AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Aquest servei proporciona accés a AWS VDI basat en una AMI de propietat " "existent" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "" "Nombre desitjat de màquines virtuals que es mantenen en execució esperant un " "usuari" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5299,15 +5323,15 @@ msgstr "" "Nombre desitjat de màquines virtuals que es mantenen aturades esperant per a " "utilitzar-se" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "Base AMI per a aquest servei" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5316,37 +5340,37 @@ msgstr "Base AMI per a aquest servei" msgid "Region" msgstr "Regió" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Regió per a aquest servei" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Tipus d'instància" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Tipus per a instàncies creades a partir de l'AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Parell de claus" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Parell de claus que cal utilitzar per a aquesta màquina" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC per a les instàncies d’aquest servei" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5354,19 +5378,19 @@ msgstr "VPC per a les instàncies d’aquest servei" msgid "Network" msgstr "Xarxa" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Subxarxa" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Subxarxa per a les instàncies d’aquest servei" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Grups de seguretat" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Grups de seguretat per a les instàncies d’aquest servei" @@ -5385,7 +5409,7 @@ msgid "Service region" msgstr "Regió de Servei" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5393,7 +5417,7 @@ msgid "After logout" msgstr "Després de tancar la sessió" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5403,7 +5427,7 @@ msgstr "" "la sessió." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5430,7 +5454,7 @@ msgid "Obtained from subscriptions" msgstr "Obtingut de les subscripcions" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Temps d'espera en segons del servidor de connexions" @@ -5539,60 +5563,62 @@ msgstr "Màquines fixes Azure" msgid "Azure Services based on fixed machines." msgstr "Serveis Azure basats en màquines fixes." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Atura la màquina (i la desassigna)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Proveïdor de Google Cloud Platform" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Proporciona connexió a Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Correu electrònic del client" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Correu electrònic del client per al compte de servei" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI del testimoni" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL del testimoni, tal com proporciona Google (el valor predeterminat és per " "a Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Clau privada" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Clau privada per al compte de servei" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "ID del projecte" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Identificador del projecte per a Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Regió preferida" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Regió preferida per a nous serveis" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Proveïdor de Google Cloud" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Proporciona connexió a Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Connexió correcta" @@ -5898,7 +5924,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "" "Nombre de vcpus (\"-1 significa\" conservar el nombre de vcpus original de " @@ -5910,7 +5935,6 @@ msgid "Cores per VCPU" msgstr "Nuclis per VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Nombre de vcpus (\"-1 significa\" mantenir el nombre de nuclis original de " @@ -5934,7 +5958,6 @@ msgid "No" msgstr "No" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Es requereixen tant nuclis per VCPU com nombre de VCPUS" @@ -6002,6 +6025,22 @@ msgstr "Servei Nutanix Acropolis" msgid "Nutanix Acropolis based service" msgstr "Servei basat en Nutanix Acropolis" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Nombre de vcpus (el valor zero significa \"mantenir el vcpus de la màquina " +"original\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Nombre de vcpus (el valor zero significa \"mantenir els nuclis de màquina " +"originals per vcpu\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " @@ -6010,6 +6049,12 @@ msgstr "" "Xarxa per a les màquines (qualsevol màquina creada s'associarà a aquesta " "xarxa)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"Tant els nuclis per VCPU com el nombre de VCPUS han de ser superiors a 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Màquines fixes Nutanix" @@ -6315,23 +6360,23 @@ msgstr "Plantilla base" msgid "Service base template" msgstr "Plantilla base de servei" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Noms de màquina" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Nom base per als clons d'aquesta màquina" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Mida de la part numèrica per als noms d’aquestes màquines" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Error d'autenticació" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6633,14 +6678,19 @@ msgid "Static Single IP" msgstr "IP simple estàtica" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Aquest servei proporciona accés a màquines engegades per IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Aquest servei proporciona accés a la màquina POWERED-ON per IP. (Podeu " +"configurar WOL per encendre la màquina)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "IP de l'amfitrió/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6648,11 +6698,11 @@ msgstr "" "IP o FQDN del servidor al qual es connectar. Pot incloure adreça MAC " "separada per \";\" després de l'IP/nom d'amfitrió" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Utilitzat un servidor no vàlid: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Adreça MAC no vàlida utilitzada: \"{}\"" @@ -7034,35 +7084,35 @@ msgstr "RemoteAPP sobre plataforma RDS" msgid "RDS Platform RemoteAPP based service" msgstr "Servei basat en RemoteAPP sobre plataforma RDS" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Ruta de l'aplicació" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Ruta completa de l'aplicació que representarà aquest servei " -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Paràmetres de l'aplicació" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Paràmetres de les aplicacions, com es passaran per línia de comandes" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Ruta inicial" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Esperar els processos generats" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7070,7 +7120,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:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Es necessita una ruta d'aplicació vàlida" @@ -7355,28 +7405,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Datacenter Virtual" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Si està activat, s'eliminarà la cerca de vApps duplicades per a aquest servei" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catàleg" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "Catàleg font de vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "Plantilla vApp" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Plantilla vApp per a aquest servei" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Xarxa principal" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7384,7 +7439,7 @@ msgstr "" "Si es troba més d'una interfície a la màquina, s'utilitza la trobada primer " "en aquesta xarxa com a principal" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Només es permeten plantilles vApp amb una màquina virtual" @@ -8969,18 +9024,18 @@ msgstr "Imatge d'aplicació binària Client Linux ARMHF (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr " Client Linux genèric .tar.gz" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "L'autenticador no proporciona informació" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} dies" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} hores" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Error intern" diff --git a/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po index b0de7fc7a..33dbdd3c1 100644 --- a/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2017,2020 # albert clar , 2017-2018,2020-2021 #, fuzzy @@ -26,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Adolfo Gómez , 2017,2020\n" "Language-Team: Catalan (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/de/LC_MESSAGES/django.po b/server/src/uds/locale/de/LC_MESSAGES/django.po index 97527f2a0..68a21fdaa 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/django.po +++ b/server/src/uds/locale/de/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2012 # Víctor Alonso , 2022 # Víctor Alonso , 2022 @@ -29,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Víctor Alonso , 2022\n" "Language-Team: German (http://app.transifex.com/openuds/openuds/language/" @@ -58,11 +59,11 @@ msgid "Name" msgstr "Name" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -78,45 +79,45 @@ msgstr "Zeitmarke" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Stichworte" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Poolname" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nutzername" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "Laufen" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Startet" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Endet" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Abgelaufen" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Verstrichene Zeitmarke" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Verwendung von {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Aktuelle Verwendungen" @@ -188,7 +189,7 @@ msgstr "Ich würde" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -256,9 +257,9 @@ msgstr "" msgid "Display" msgstr "Anzeige" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -286,32 +287,32 @@ msgstr "Verfeinern Sie Ihre Suchanfrage" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "Label darf nur Buchstaben, Zahlen oder Symbole enthalten: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Regelname" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Wiederholt" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Jeden" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Dauer" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Element ist bereits vorhanden (Fehler beim Duplikatschlüssel)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Regeln von {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Aktuelle Regeln" @@ -372,7 +373,7 @@ msgstr "Politik" msgid "HA Policy" msgstr "HA-Richtlinie" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "User services" @@ -484,7 +485,7 @@ msgstr "Erstellungsdatum" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -677,7 +678,7 @@ msgstr "Dienstleister" msgid "Status" msgstr "Status" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -697,7 +698,7 @@ msgstr "Verfügbare Berichte" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -846,61 +847,61 @@ msgstr "Gelang es" msgid "Unmanaged" msgstr "Nicht verwaltet" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Standard" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Das Service-Token scheint von einem anderen Service verwendet zu werden. " "Bitte wählen Sie einen neuen aus." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Eingabefehler: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Dienstleistungen von {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Aktuelle Dienstleistungen" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Dienstname" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Service-Pools" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Typ der maximalen Anzahl von Diensten" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Konservativ" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Service-Zählmethode" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Art der Dienstzählung zur Berechnung, ob MAX erreicht ist" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Mit Fehlern" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "OK" @@ -1142,7 +1143,7 @@ msgstr "Tunnel" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1168,6 +1169,12 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Port, an dem der Tunnel für die Benutzer sichtbar ist" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"Eine Tunnelservergruppe mit angehängten Transporten kann nicht gelöscht " +"werden" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1247,7 +1254,7 @@ msgid "Current users" msgstr "Derzeitige Nutzer" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1379,24 +1386,24 @@ msgstr "" "Verbundene Netzwerke. Wenn kein Netzwerk ausgewählt ist, bedeutet dies „alle " "Netzwerke“." -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "ungültige Anfrage" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Methode nicht gefunden in {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Artikel nicht gefunden" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Zugriff verweigert" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Vorgang wird nicht unterstützt" @@ -1443,7 +1450,7 @@ msgstr "" "hierfür das Format USER@DOMAIN.DOM)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1503,24 +1510,26 @@ msgstr "" "ist." #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Backup-Server" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Wenn nicht leer, wird dieser Host verwendet, falls der Haupthostserver nicht " -"erreichbar ist" +"Wenn sie nicht leer ist, wird diese Liste aus Domäne=Backup1,Backup2,... als " +"Sicherungsserver für die Domänen verwendet. Wenn keine Domäne angegeben ist, " +"werden die Sicherungsserver für alle Domänen verwendet." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "SSL verifizieren" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1529,24 +1538,24 @@ msgstr "" "Wenn diese Option aktiviert ist, wird die SSL-Überprüfung erzwungen. " "Andernfalls wird die SSL-Überprüfung deaktiviert" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Zertifikat" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Zertifikat zur Verwendung für die SSL-Überprüfung" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Host-Übersetzungsliste" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1555,11 +1564,11 @@ msgstr "" "verwendet, um den Hostnamen von AD in einen auflösbaren Hostnamen zu " "übersetzen." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Domänen ignorieren" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1567,11 +1576,11 @@ msgstr "" "Wenn diese Liste nicht leer ist, wird sie bei der Suche nach Benutzern " "ignoriert. Komma-getrennte Werte." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Bei Ablauf umleiten" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1579,20 +1588,20 @@ msgstr "" "Wenn es nicht leer ist und das Benutzerkennwort abgelaufen ist, wird es " "automatisch zu dieser URL umgeleitet" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Active Directory Authenticator" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Authentifizieren Sie sich gegen Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1600,51 +1609,51 @@ msgstr "" "Es konnte keine Verbindung zu einem AD-Server hergestellt werden. Überprüfen " "Sie Ihre Konfiguration (Server, SSL-Zertifikate, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Benutzername nicht gefunden" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Gruppe nicht gefunden" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Zu viele Ergebnisse, bitte konkretisieren" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Fehler beim Testen der Verbindung" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "Die Verbindung scheint falsch zu sein. Bitte überprüfen Sie sie" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Verbindungsparameter scheinen korrekt zu sein, der Test wurde erfolgreich " @@ -1700,7 +1709,7 @@ msgstr "" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1762,23 +1771,23 @@ msgstr "" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "Diese Art von Authenticator unterstützt keine Leerzeichen im Feld NAME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Benutzer nicht gefunden" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Authenticator-Ausnahme:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Verbindungsfehler:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "" "Verbindungsparameter scheinen korrekt zu sein, der Test wurde erfolgreich " @@ -1806,7 +1815,7 @@ msgstr "Benutzername mit Leserechten für das eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1817,13 +1826,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Timeout in Sekunden der Verbindung zu LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "MFA-Attribut" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Attribut, aus dem der MFA-Code extrahiert werden soll" @@ -1836,28 +1845,28 @@ msgstr "eDirectory Authenticator" msgid "Authenticate against eDirectory" msgstr "Authentifizierung gegen eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Verbindungsfehler" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Verbindungsfehler: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "Ldap-Suchbasis ist falsch" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1865,14 +1874,14 @@ msgstr "" "LDAP-Benutzer-ID-Attribut scheint falsch zu sein (kein Benutzer wurde von " "diesem Attribut gefunden)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "Das Ldap-Gruppenattribut scheint falsch zu sein (von diesem Attribut wurde " "keine Gruppe gefunden)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2102,25 +2111,25 @@ msgstr "NAS-Kennung" msgid "NAS Identifier for Radius Server" msgstr "NAS-Kennung für Radius-Server" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "App-Präfix für Klassenattribute" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "Anwendungspräfix zum Filtern von Gruppen aus dem Attribut \"Klasse\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Globale Gruppe" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Wenn gesetzt, wird dieser Wert als Gruppe für alle Umkreisbenutzer " "hinzugefügt" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Verbindung zum Radius-Server fehlgeschlagen" @@ -2570,13 +2579,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Einfacher LDAP-Authentifikator" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "LDAP-Gruppenklasse scheint falsch zu sein (von dieser Klasse wurde keine " "Gruppe gefunden)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2584,7 +2593,7 @@ msgstr "" "Ldap-Gruppen-ID-Attribut scheint falsch zu sein (von diesem Attribut wurde " "keine Gruppe gefunden)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2592,7 +2601,7 @@ msgstr "" "LDAP-Benutzerklasse oder Benutzer-ID attr ist wahrscheinlich falsch (kann " "keinen Benutzer mit beiden Bedingungen finden)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2600,7 +2609,7 @@ msgstr "" "LDAP-Gruppenklasse oder Gruppen-ID attr ist wahrscheinlich falsch (kann " "keine Gruppe mit beiden Bedingungen finden)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "Kann keine Gruppe mit dem angegebenen Mitgliedschaftsattribut finden" @@ -2612,7 +2621,7 @@ msgstr "Systemadministrator" msgid "Forbidden" msgstr "verboten" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Zugriff von einer unzulässigen Quelle versucht" @@ -2727,30 +2736,30 @@ msgstr "Bereinigen Sie den L2-Cache" msgid "Custom message on launchers" msgstr "Benutzerdefinierte Nachricht auf Launchern" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Bereits veröffentlicht Warten Sie, bis die vorherige Veröffentlichung " "abgeschlossen ist, und versuchen Sie es erneut" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "Der Service befindet sich im Wartungsmodus und neue Veröffentlichungen sind " "nicht zulässig" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Nicht laufende Veröffentlichung kann nicht abgebrochen werden" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "" "Veröffentlichung nicht verwendbarer Publikationen kann nicht aufgehoben " "werden" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "" "Veröffentlichungen mit laufenden Services können nicht aufgehoben werden" @@ -2775,7 +2784,7 @@ msgstr "Der Server befindet sich im Wartungsmodus" msgid "Server is restrained" msgstr "Server ist zurückhaltend" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Maximale Anzahl von Benutzerdiensten für diese {} erreicht" @@ -2793,7 +2802,7 @@ msgstr "" msgid "The requested service is restrained" msgstr "Der angeforderte Service ist eingeschränkt" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2801,15 +2810,15 @@ msgstr "" "Ungültiger Service. Der Service ist momentan nicht verfügbar. Bitte versuch " "es später erneut" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Kein passendes Transportmittel gefunden" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "Der angeforderte Transport {} ist für {} nicht gültig" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "Der Service ist auf diesem Gerät nicht erreichbar" @@ -2821,11 +2830,11 @@ msgstr "Anzahl der Sekunden, um wiederholte Nachrichten zu ignorieren" msgid "Base Notifier" msgstr "Basismelder" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Benutzeranmeldung zulassen" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Benutzeranmeldung verweigern" @@ -2845,7 +2854,7 @@ msgstr "" msgid "Base MFA" msgstr "Basis-MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Ungültiger MFA-Code" @@ -2853,7 +2862,7 @@ msgstr "Ungültiger MFA-Code" msgid "No check method provided." msgstr "Keine Prüfmethode angegeben." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Es wird keine Verbindungsüberprüfungsmethode implementiert." @@ -2901,12 +2910,12 @@ msgstr "Base Machine" msgid "Base machine for this service" msgstr "Basisgerät für diesen Service" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Service-Token" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2915,23 +2924,32 @@ msgstr "" "Service-Token, das von den Akteuren zur Kommunikation mit dem Service " "verwendet wird. Für dauerhafte Zuordnung leer lassen." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Maschinen" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Maschinen für diesen Service" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Zufällige Maschinenzuweisung" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Wenn aktiviert, wird UDS die Maschinen nach dem Zufallsprinzip zuweisen, " +"statt linear" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Verwenden Sie Schnappschüsse" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2940,34 +2958,24 @@ msgstr "" "zu erstellen (falls noch keiner vorhanden ist) und ihn nach der Verwendung " "wiederherzustellen." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Snapshot-Typ" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Kein Schnappschuss" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Snapshot wiederherstellen und Maschine stoppen" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Snapshot wiederherstellen und Maschine starten" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Zufällige Maschinenzuweisung" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Wenn aktiviert, wird UDS die Maschinen nach dem Zufallsprinzip zuweisen, " -"statt linear" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3212,11 +3220,11 @@ msgstr "Maschine" msgid "Config" msgstr "Konfig" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Ablaufzeit der Sitzung in Stunden nach der Veröffentlichung" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3224,7 +3232,7 @@ msgstr "" "Verzögerung zwischen Cache-Prüfungen. Das Reduzieren dieser Zahl erhöht die " "Geschwindigkeit der Cache-Generierung, belastet aber auch die Dienstanbieter" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3234,7 +3242,7 @@ msgstr "" "von Threads wird die bereitgestellte Aufgabe schneller abgeschlossen, aber " "dadurch wird das Gesamtsystem stärker belastet" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3244,7 +3252,7 @@ msgstr "" "Anzahl von Threads wird die bereitgestellte Aufgabe schneller abgeschlossen, " "aber dadurch wird das Gesamtsystem stärker belastet" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3253,34 +3261,34 @@ msgstr "" "Veröffentlichungen, Cache und vom Benutzer zugewiesenen Maschinen. Die Zeit " "wird in Sekunden angegeben" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Zeit in Sekunden, die benötigt wird, um „Info-Status“-Elemente vor dem " "Entfernen beizubehalten" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Anzahl der Dienste, die die Entfernung pro Ausführung des Service Cleaners " "initiieren sollen" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Entfernungsprüfzeit für Cache, Veröffentlichungen und bereitgestellte " "Dienste in Sekunden" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Superuser-Benutzername" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Superuser-Passwort" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3290,11 +3298,11 @@ msgstr "" "ein Authentifikator konfiguriert ist, wird empfohlen, diese Option zu " "deaktivieren" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Aktivieren Sie erweiterte Sicherheitsmodule" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3302,7 +3310,7 @@ msgstr "" "Erzwungener maximaler Sicherheitsmodus (Zero-Trust-Modus). Wenn dieser Modus " "eingestellt ist, ist keine Passwortumleitung zulässig." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3310,43 +3318,43 @@ msgstr "" "Wie lange sollte der Benutzerdienst ungenutzt bleiben, bevor der OS-Manager " "ihn zur Entfernung in Betracht zieht?" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Zeit zwischen Überprüfungen ungenutzter Benutzerdienste durch " "Betriebssystemmanager" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "" "Maximale Anzahl an Anmeldungen, bevor ein Konto für eine Weile gesperrt wird" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Blockzeit in Sekunden für einen Benutzer, der zu viele Anmeldefehler hat" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "IP bei fehlgeschlagener Anmeldung blockieren" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "" "Führen Sie die automatische Ausführung des Dienstes durch, wenn es sich nur " "um einen Dienst handelt" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Leiten Sie HTTP bei der Verbindung mit UDS zu HTTPS um" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Leitet die Anmeldeseite auf das Tag um, das bei der Anmeldung verwendet " "wurde, sofern aktiv." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3354,7 +3362,7 @@ msgstr "" "Maximale Zeit, die benötigt wird, um einen Dienst „voll funktionsfähig“ zu " "machen, bevor er als „fehlgeschlagen“ gilt und entfernt wird" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3362,25 +3370,25 @@ msgstr "" "Maximale Zeit, die benötigt wird, um einen Dienst „vollständig zu " "entfernen“, bevor er als „fehlgeschlagen“ gilt und gelöscht wird" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "Maximale Protokolle pro protokollfähigem Verwaltungselement" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Maximale Protokolleinträge für allgemeine UDS-Protokolle (0 = unbegrenzt, " "mit Vorsicht verwenden)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Es ist an der Zeit, einen Benutzerdienst einzuschränken, falls er irgendwann " "Fehler verursacht" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3388,46 +3396,46 @@ msgstr "" "Anzahl der Fehler, die in „restrainTime“ auftreten müssen, um einen " "Benutzerdienst einzuschränken" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Statistikdauer in Tagen" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Häufigkeit der Statistikerfassung in Sekunden. Standard ist 4 Stunden (14400 " "Sekunden)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Maximale Zeit, die bei einem Lauf angesammelt werden kann. Standard ist 7 (1 " "Woche)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "" "Wenn die Anmeldung nicht zulässig ist, werden Authentifizierungspersonen " "angezeigt" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Benachrichtigen Sie den Benutzer bei einer neuen Veröffentlichung über die " "Existenz einer neuen Version eines Dienstes" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "" "Netzwerke oder Hosts, die für UDS als „vertrauenswürdig“ gelten (Tunnel usw.)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "IPs oder Netzwerke, die Anfragen weiterleiten dürfen (wie Proxys)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3435,11 +3443,11 @@ msgstr "" "Ermöglichen Sie Clients, ihre eigene IP-Adresse zu benachrichtigen (falls " "festgelegt), oder verwenden Sie immer die angeforderte extrahierte IP-Adresse" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Wenn sich ein Proxy vor uns befindet (z. B. HAProxy oder ein NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3448,87 +3456,87 @@ msgstr "" "denen nur dann, wenn die Anzahl der angemeldeten Benutzer 0 erreicht, dies " "als „abgemeldet“ gilt." -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "" "Aktivieren/deaktivieren Sie die IP-Blockierung zur Erkennung von " "Akteurangriffen" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Maximale Sitzungsdauer für den Administrator" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Maximale Sitzungslänge für Benutzer" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Seitenneuladezeit (alt)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Benutzerdefinierte Meldung für Fehler beim Einschränken nach Kalender" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "" "Wenn der Benutzername bei Anmeldungen in Kleinbuchstaben umgewandelt wird" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "Globale UDS-ID (gemeinsam für alle Server im selben Cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Anzeigename der Site" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Informationen zum Urheberrecht der Website" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Copyright-Link der Website" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Name des Logos der oberen Navigationsleiste" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "" "Benutzerdefinierte CSS-Stile, die auf die für den Benutzer zugängliche " "Website angewendet werden" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Seiteninformation" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "Filterfeld für Benutzerdienste oben oder unten auf der Seite anzeigen" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "" "Zum Anzeigen des Filters sind nur minimale Benutzerdienste erforderlich" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Aktivieren Sie experimentelle Funktionen. MIT VORSICHT VERWENDEN!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Anzahl der Elemente pro Seite in Admin-Tabellen" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Liste der vertrauenswürdigen Hosts/Netzwerke, denen der Zugriff auf die " "Admin-Oberfläche gestattet ist" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Aktivieren Sie das VNC-Menü für Benutzerdienste" @@ -3585,7 +3593,7 @@ msgid "Base name for clones from this service" msgstr "Basisname für Klone dieses Dienstes" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Name Länge" @@ -3622,11 +3630,11 @@ msgstr "Maximale Anzahl erlaubter Dienste (0 bedeutet keine Begrenzung)" msgid "Remove found duplicates" msgstr "Gefundene Duplikate entfernen" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Wenn diese Option aktiviert ist, werden doppelte vApps für diesen Service " -"entfernt" +"Wenn aktiv, werden gefundene Duplikate von VApps für diesen Dienst entfernt" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3790,124 +3798,124 @@ msgstr "LDAP-Server kann nicht kontaktiert werden" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} Tage {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numerisch" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} muss größer oder gleich {1} sein" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} muss kleiner oder gleich {1} sein" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} enthält ungültige Zeichen" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} ist kein gültiger Hostname: Die maximale Länge des Hostnamens wurde " "überschritten." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} ist kein gültiger Hostname: (Domänen nicht zulässig)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} ist kein gültiger Hostname: (ungültige Zeichen)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} ist keine gültige URL: überschreitet die maximale Länge." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} ist keine gültige IPv4-Adresse" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} ist keine gültige IPv6-Adresse" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} ist keine gültige IPv4- oder IPv6-Adresse" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} überschreitet die maximale Pfadlänge." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} ist kein gültiger Windows-Pfad" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} ist kein gültiger Unix-Pfad" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} ist kein gültiger Pfad" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} ist kein gültiges Host:Port-Paar" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} ist keine gültige MAC-Adresse" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} ist kein gültiger MAC-Bereich" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "E-Mail-Adresse ist zu lang" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "Email Adresse ist nicht gültig" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "Der Basisname ist kein gültiger Hostname" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "Die Länge von basename plus length muss größer als 0 sein" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "Die Länge des Basisnamens plus Länge darf nicht größer als 15 sein" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "Der Maschinenname kann nicht nur aus Zahlen bestehen" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Ungültige JSON-Daten" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Das Zertifikat ist leer" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Ungültiges Zertifikat" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "Der private Schlüssel ist leer" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Ungültiger privater Schlüssel" @@ -4095,35 +4103,50 @@ msgstr "" "ist, müssen alle Benutzer OTP eingeben, sodass der Authentifizierungsschritt " "übersprungen wird." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Senden Sie nur den Benutzernamen (ohne Domäne) an den Radius-Server" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Wenn diese Option nicht aktiviert ist, wird der Benutzername unverändert an " +"den Radius-Server gesendet. Wenn diese Option aktiviert ist, wird der " +"Domänenteil aus dem Benutzernamen entfernt, bevor er an den Radius-Server " +"gesendet wird." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "OTP-Code" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Bitte OTP eingeben" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Radius-OTP-Verbindungsfehler" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Ungültiger OTP-Code" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS über HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Einfacher SMS-Versand mit MFA über HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "URL-Muster für den SMS-Versand" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4135,16 +4158,16 @@ msgstr "" "{code} - der zu sendende Code * {phone/+phone} - die Telefonnummer * " "{username} - der Benutzername * {justUsername} - der Benutzername ohne @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "HTTP-Server" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Zertifikatsfehler ignorieren" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4152,19 +4175,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:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "SMS-Sendemethode" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Methode zum Senden von SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Header für SMS-Anfragen" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4178,11 +4201,11 @@ msgstr "" "der Benutzername * {justUsername} - der Benutzername ohne @... Header sind " "in die Form \"Kopfzeile: Wert\". (ohne die Anführungszeichen)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Parameter für das Senden von SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4196,51 +4219,51 @@ msgstr "" "Telefonnummer * {username} - der Benutzername * {justUsername} - der " "Benutzername ohne @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "SMS-Verschlüsselung" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Verschlüsselung für SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "SMS-Authentifizierungsmethode" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "HTTP-Basis-Auth" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP-Digest-Auth" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "HTTP-Authentifizierung" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Benutzer oder Token für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Benutzer oder Token für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "SMS-Authentifizierungspasswort" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Passwort für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "SMS-Antwort OK Regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4248,43 +4271,43 @@ msgstr "" "Regex für SMS-Antwort OK. Wenn leer, wird die Antwort als OK betrachtet, " "wenn der Statuscode 200 ist." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "HTTP-Antwort" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "SMS-Antwort-Fehleraktion" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Aktion für SMS-Antwortfehler" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "Erlauben Sie dem Benutzer, sich anzumelden, wenn seine IP in der " "Netzwerkliste enthalten ist" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "Benutzern die Anmeldung verweigern, wenn sich ihre IP in der Netzwerkliste " "befindet" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "SMS-Versand fehlgeschlagen" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "SMS-Antwortfehler" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "MFA-Code" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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" @@ -4333,17 +4356,17 @@ msgstr "Anzahl gültiger Codes vor und nach dem aktuellen" msgid "Authentication Code" msgstr "Authentication Code" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Geben Sie Ihren Authentifizierungscode ein" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "" "Code wird bereits verwendet. Warten Sie eine Minute und versuchen Sie es " "erneut." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Ungültiger Code" @@ -4632,21 +4655,21 @@ msgstr "Sie müssen ein Konto angeben, um Computer zur Domain hinzuzufügen!" msgid "Must provide a password for the account!" msgstr "Muss ein Passwort für das Konto angeben!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux OS-Manager" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "OS-Manager zur Steuerung von virtuellen Linux-Maschinen" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Maximale Leerlaufzeit" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4654,12 +4677,12 @@ msgstr "" "Maximale Leerlaufzeit (in Sekunden), bevor die Sitzung für den Benutzer " "automatisch geschlossen wird (<= 0 bedeutet keine maximale Leerlaufzeit)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Kalenderabmeldung" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4733,22 +4756,22 @@ msgstr "" "Maximale Leerlaufzeit (in Sekunden), bevor die Sitzung für den Benutzer " "automatisch geschlossen wird (<= 0 bedeutet keine maximale Leerlaufzeit)." -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "UDS Akteur für Windows-Maschinen" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "UDS Akteur für nicht verwaltete Windows-Computer. Wird NUR für statische " "Maschinen verwendet." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic OS-Manager" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "OS-Manager zur Steuerung von Windows-Computern ohne Domäne." @@ -5107,21 +5130,21 @@ msgstr "Poolnutzung an einem Tag" msgid "Pools usage counters for an specific day" msgstr "Poolt Nutzungszähler für einen bestimmten Tag" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Dienstleistungen pro Stunde" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Stunde" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Dienstnutzungsbericht für einen Tag" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Dienstnutzungsbericht" @@ -5278,7 +5301,7 @@ msgstr "" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5294,21 +5317,21 @@ msgstr "Standardregion" msgid "Default region to use for connecting to EC2" msgstr "Standardregion für die Verbindung mit EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Vorhandener AWS-AMI-Service" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Dieser Service bietet Zugriff auf AWS VDI basierend auf einem vorhandenen AMI" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "Anzahl der gewünschten VMs, die auf einen Benutzer warten müssen" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5317,15 +5340,15 @@ msgid "Number of desired VMs to keep stopped waiting for use" msgstr "" "Anzahl der gewünschten VMs, die nicht mehr auf die Verwendung warten sollen" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "Basis-AMI für diesen Dienst" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5334,37 +5357,37 @@ msgstr "Basis-AMI für diesen Dienst" msgid "Region" msgstr "Region" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Region für diesen Dienst" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Instanztyp" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Geben Sie für Instances ein, die aus dem AMI erstellt wurden." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Schlüsselpaar" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Für dieses Gerät zu verwendendes Schlüsselpaar" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC für die Instanzen dieses Dienstes" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5372,19 +5395,19 @@ msgstr "VPC für die Instanzen dieses Dienstes" msgid "Network" msgstr "Netzwerk" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Subnetzwerk" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Subnetzwerk für die Instanzen dieses Dienstes" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Sicherheitsgruppen" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Sicherheitsgruppen für die Instanzen dieses Dienstes" @@ -5403,7 +5426,7 @@ msgid "Service region" msgstr "Service-Region" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5411,7 +5434,7 @@ msgid "After logout" msgstr "Nach dem Abmelden" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5421,7 +5444,7 @@ msgstr "" "werden soll." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5448,7 +5471,7 @@ msgid "Obtained from subscriptions" msgstr "Wird aus Abonnements bezogen" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Zeitüberschreitung des Verbindungsservers in Sekunden" @@ -5556,59 +5579,61 @@ msgstr "Azure Fest installierte Maschinen" msgid "Azure Services based on fixed machines." msgstr "Azure-Dienste basierend auf festen Maschinen." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Maschine stoppen (und freigeben)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Google Cloud Platform-Anbieter" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Bietet eine Verbindung zur Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Kunden-E-Mail" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Client-E-Mail für Servicekonto" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "Token-URI" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "Token-URL, wie von Google bereitgestellt (Standard ist für Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Privater Schlüssel" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Privater Schlüssel für Dienstkonto" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "Projekt-ID" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Projekt-ID für Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Bevorzugte Region" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Bevorzugte Region für neue Dienste" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Google Cloud-Anbieter" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Bietet eine Verbindung zur Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Verbindung erfolgreich" @@ -5915,7 +5940,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "Anzahl der vcpus (\"-1 bedeutet Originalcomputer vcpus behalten\")" @@ -5925,7 +5949,6 @@ msgid "Cores per VCPU" msgstr "Kerne pro VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Anzahl der VCPUS (\"-1 bedeutet Original-Maschinenkerne pro VCPU behalten\")" @@ -5948,7 +5971,6 @@ msgid "No" msgstr "NEIN" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Es sind sowohl Kerne pro VCPU als auch Anzahl der VCPUS erforderlich" @@ -6016,6 +6038,21 @@ msgstr "Nutanix Acropolis Service" msgid "Nutanix Acropolis based service" msgstr "Nutanix Acropolis-basierter Service" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Anzahl der VCPUs (Nullwert bedeutet „VCPUs der Originalmaschine behalten“)" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Anzahl der VCPUs (Nullwert bedeutet „ursprüngliche Maschinenkerne pro VCPU " +"behalten“)" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " @@ -6024,6 +6061,13 @@ msgstr "" "Netzwerk für die Maschinen (jede erstellte Maschine wird an dieses Netzwerk " "angeschlossen)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"Sowohl die Anzahl der Kerne pro VCPU als auch die Anzahl der VCPUS müssen " +"größer als 0 sein." + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Feste Nutanix-Maschinen" @@ -6327,23 +6371,23 @@ msgstr "Basisvorlage" msgid "Service base template" msgstr "Service-Basisvorlage" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Maschinennamen" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Basisname für Klone von diesem System" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Größe des numerischen Teils für die Namen dieser Maschinen" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Authentifizierungsfehler" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6643,15 +6687,19 @@ msgid "Static Single IP" msgstr "Statische Einzel-IP" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" msgstr "" -"Dieser Dienst ermöglicht den Zugriff auf die POWERED-ON-Maschine über IP" +"Dieser Dienst bietet Zugriff auf eingeschaltete Maschinen über IP. (Sie " +"können WOL so konfigurieren, dass die Maschine eingeschaltet wird.)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "Host-IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6660,11 +6708,11 @@ msgstr "" "Kann eine durch \";\" getrennte MAC-Adresse nach der IP/dem Hostnamen " "enthalten." -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Ungültiger Server verwendet: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Ungültige MAC-Adresse verwendet: \"{}\"" @@ -7046,35 +7094,35 @@ msgstr "RDS-Plattform RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "RDS-Platform RemoteAPP-basierter Service" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Bewerbungspfad" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Vollständiger Pfad der Anwendung, die dieser Service darstellt" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Anwendungsparameter" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Anwendungsparameter, wie in der Befehlszeile übergeben" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Pfad starten" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Warten Sie die erzeugten Prozesse" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7082,7 +7130,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:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Ein gültiger Anwendungspfad ist erforderlich" @@ -7367,28 +7415,34 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Virtuelles Datencenter" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Wenn diese Option aktiviert ist, werden doppelte vApps für diesen Service " +"entfernt" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Katalog" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "vApps-Quellkatalog" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp-Vorlage" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "vApp-Vorlage für den Service" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Hauptnetzwerk" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7397,7 +7451,7 @@ msgstr "" "Sie die erste in diesem Netzwerk gefundene Schnittstelle als " "Hauptschnittstelle" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Es sind nur vApp-Vorlagen mit einer VM zulässig" @@ -8999,18 +9053,18 @@ msgstr "Binäres Appimage ARMHF Linux-Client (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Generischer .tar.gz Linux-Client" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Der Authentifikator liefert keine Informationen" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} Tage" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} Std" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Interner Fehler" diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po index de7a3aac8..15882bbff 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2012 # Javier , 2024 # Thorsten Latka , 2020 @@ -29,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020,2022\n" "Language-Team: German (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/en/LC_MESSAGES/django.po b/server/src/uds/locale/en/LC_MESSAGES/django.po index 27a080f2e..66f85eba8 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/django.po +++ b/server/src/uds/locale/en/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2012 # Adolfo Gómez , 2012 # blafuente , 2014 @@ -31,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier , 2014\n" "Language-Team: English (http://app.transifex.com/openuds/openuds/language/" @@ -60,11 +61,11 @@ msgid "Name" msgstr "Name" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -80,45 +81,45 @@ msgstr "Time mark" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "tags" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Pool name" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "User name" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "Running" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Starts" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Ends" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Elapsed" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Elapsed timemark" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Usages of {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Current usages" @@ -190,7 +191,7 @@ msgstr "Id" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -258,9 +259,9 @@ msgstr "" msgid "Display" msgstr "Display" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -288,32 +289,32 @@ msgstr "Refine your query" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "Label must contain only letters, numbers, or symbols: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Rule name" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Repeats" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Every" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Duration" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Element already exists (duplicate key error)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Rules of {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Current rules" @@ -374,7 +375,7 @@ msgstr "Policy" msgid "HA Policy" msgstr "HA Policy" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "User services" @@ -484,7 +485,7 @@ msgstr "Creation date" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -674,7 +675,7 @@ msgstr "Service providers" msgid "Status" msgstr "Status" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -694,7 +695,7 @@ msgstr "Available reports" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -841,60 +842,60 @@ msgstr "Managed" msgid "Unmanaged" msgstr "Unmanaged" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Standard" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Service token seems to be in use by other service. Please, select a new one." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Input error: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Services of {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Current services" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Service name" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Services Pools" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Max services count type" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservative" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Service counting method" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Kind of service counting for calculating if MAX is reached" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "With errors" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Ok" @@ -1125,7 +1126,7 @@ msgstr "Tunnels" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1150,6 +1151,10 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Port where the tunnel is visible by the users" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "Cannot delete a tunnel server group with transports attached" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1229,7 +1234,7 @@ msgid "Current users" msgstr "Current users" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1358,24 +1363,24 @@ msgid "Networks associated. If No network selected, will mean \"all networks\"" msgstr "" "Networks associated. If No network selected, will mean \"all networks\"" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Invalid Request" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Method not found in {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Item not found" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Access denied" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Operation not supported" @@ -1419,7 +1424,7 @@ msgstr "" "for this)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1478,24 +1483,26 @@ msgstr "" "user) if compat mode is not \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Backup servers" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Verify SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1504,24 +1511,24 @@ msgstr "" "If checked, SSL verification will be enforced. If not, SSL verification will " "be disabled" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificate" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificate to use for SSL verification" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Host translation list" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1529,11 +1536,11 @@ msgstr "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignore domains" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1541,11 +1548,11 @@ msgstr "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Redirect On Expired" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1553,20 +1560,20 @@ msgstr "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Active Directory Authenticator" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Authenticate against Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Must specify the username in the form USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1574,51 +1581,51 @@ msgstr "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Username not found" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Group not found" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Too many results, be more specific" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Error testing connection" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "Connection seems to be incorrect, please check it" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Server does not seem an Active Directory (it does not have user objects)" -#: auths/ActiveDirectory_enterprise/authenticator.py:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Server does not seem an Active Directory (it does not have group objects)" -#: auths/ActiveDirectory_enterprise/authenticator.py:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "Connection params seem correct, test was succesfully executed" @@ -1670,7 +1677,7 @@ msgstr "Callback url (Filled by UDS, fix this only if necesary!!)" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1730,23 +1737,23 @@ msgstr "Domain used for external users (empty means no external users)" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "This kind of Authenticator does not support white spaces on field NAME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "User not found" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Authenticator exception:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Connection error: " -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "Connection params seems correct, test was succesfully executed" @@ -1770,7 +1777,7 @@ msgstr "Username with read privileges on the eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1781,13 +1788,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Timeout in seconds of connection to LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "MFA attribute" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Attribute from where to extract the MFA code" @@ -1800,26 +1807,26 @@ msgstr "eDirectory Authenticator" msgid "Authenticate against eDirectory" msgstr "Authenticate against eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Connection error" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Connection error: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "Ldap search base is incorrect" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "Ldap user class seems to be incorrect (no user found by that class)" -#: auths/EDirectory_enterprise/authenticator.py:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1827,13 +1834,13 @@ msgstr "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2057,23 +2064,23 @@ msgstr "NAS Identifier" msgid "NAS Identifier for Radius Server" msgstr "NAS Identifier for Radius Server" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "App Prefix for Class Attributes" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "Application prefix for filtering groups from \"Class\" attribute" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Global group" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "If set, this value will be added as group for all radius users" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Connection to Radius server failed" @@ -2512,11 +2519,11 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Simple LDAP authenticator" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "Ldap group class seems to be incorrect (no group found by that class)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2524,7 +2531,7 @@ msgstr "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2532,7 +2539,7 @@ msgstr "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2540,7 +2547,7 @@ msgstr "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "Can't locate any group with the membership attribute specified" @@ -2552,7 +2559,7 @@ msgstr "System Administrator" msgid "Forbidden" msgstr "Forbidden" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Access tried from an unallowed source" @@ -2664,25 +2671,25 @@ msgstr "Clean L2 cache" msgid "Custom message on launchers" msgstr "Custom message on launchers" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Already publishing. Wait for previous publication to finish and try again" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "Service is in maintenance mode and new publications are not allowed" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Can't cancel non running publication" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Can't unpublish non usable publication" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "Can't unpublish publications with services in process" @@ -2706,7 +2713,7 @@ msgstr "Server is in maintenance mode" msgid "Server is restrained" msgstr "Server is restrained" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Maximum number of user services reached for this {}" @@ -2722,7 +2729,7 @@ msgstr "Can't remove nor cancel {} cause its state don't allow it" msgid "The requested service is restrained" msgstr "The requested service is restrained" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2730,15 +2737,15 @@ msgstr "" "Invalid service. The service is not available at this moment. Please, try " "later" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "No suitable transport found" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "The requested transport {} is not valid for {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "The service is not accessible from this device" @@ -2750,11 +2757,11 @@ msgstr "Number of seconds to ignore repeated messages" msgid "Base Notifier" msgstr "Base Notifier" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Allow user login" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Deny user login" @@ -2770,7 +2777,7 @@ msgstr "Deny user to login if it IP is in the networks list" msgid "Base MFA" msgstr "Base MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Invalid MFA code" @@ -2778,7 +2785,7 @@ msgstr "Invalid MFA code" msgid "No check method provided." msgstr "No check method provided." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "No connection checking method is implemented." @@ -2826,12 +2833,12 @@ msgstr "Base Machine" msgid "Base machine for this service" msgstr "Base machine for this service" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Service Token" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2840,23 +2847,30 @@ msgstr "" "Service token that will be used by actors to communicate with service. Leave " "empty for persistent assignation." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Machines" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Machines for this service" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Randomize machine assignation" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "If active, UDS will assign machines in a random way, instead of linear" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Use snapshots" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2864,32 +2878,24 @@ msgstr "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Snapshot type" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "No snapshot" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Recover snapshot and stop machine" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Recover snapshot and start machine" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Randomize machine assignation" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "If active, UDS will assign machines in a random way, instead of linear" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3132,11 +3138,11 @@ msgstr "Machine" msgid "Config" msgstr "Config" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Session expire time in hours after publishing" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3144,7 +3150,7 @@ msgstr "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3154,7 +3160,7 @@ msgstr "" "deployed task will complete sooner, but it will give more load to overall " "system" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3164,7 +3170,7 @@ msgstr "" "threads, deployed task will complete sooner, but it will give more load to " "overall system" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3172,29 +3178,29 @@ msgstr "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "Time to maintaing \"info state\" items before removing it, in seconds" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "Number of services to initiate removal per run of service cleaner" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Removal Check time for cache, publications and deployed services, in seconds" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Superuser username" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Superuser password" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3204,11 +3210,11 @@ msgstr "" " Once configured one authenticator,\n" "it's recommended to disable this option" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Enable enhanced security modules" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3216,7 +3222,7 @@ msgstr "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3224,35 +3230,35 @@ msgstr "" "How long should the user service be unused before os manager considers it " "for removal" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "Time betwen checks of unused user services by os managers" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "Max logins before blocking an account for a while" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "Block time in second for an user that has too many login failures" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Block ip on login failure" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Do autorun of service if just one service" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Redirect HTTP to HTTPS on connection to UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "Redirects login page to the tag used when logged in if active." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3260,7 +3266,7 @@ msgstr "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3268,23 +3274,23 @@ msgstr "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "Maximum logs per every log-capable administration element" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Time to restrain a user service in case it gives some errors at some point" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3292,39 +3298,39 @@ msgstr "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Statistics duration, in days" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "Maximum number of time to accumulate on one run. Default is 7 (1 week)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "If disallow login showing authenticatiors" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Notify user of existence of a new version of a service on new publication" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "IPs or networks allowed to forward requests (like proxies)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3332,11 +3338,11 @@ msgstr "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3344,79 +3350,79 @@ msgstr "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "Enable/Disable Actor attack detection ip blocking" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Max session length for Admin" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Max session length for User" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Page reload Time (legacy)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Custom message for error when limiting by calendar" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "If convert username to lowercase on logins" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "Global UDS ID (common for all servers on the same cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Site display name" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Site copyright info" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Site copyright link" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Top navbar logo name" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Custom CSS styles applied to the user accesible site" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Site information" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "Show Filter box for user services on Top or bottom of the page" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Minimal User Services needed to show filter" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Enable experimental features. USE WITH CAUTION!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Number of items per page in admin tables" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "List of trusted hosts/networks allowed to access the admin interface" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Enable VNC menu for user services" @@ -3473,7 +3479,7 @@ msgid "Base name for clones from this service" msgstr "Base name for clones from this service" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Name Length" @@ -3509,9 +3515,10 @@ msgstr "Maximum number of allowed services (0 means no limit)" msgid "Remove found duplicates" msgstr "Remove found duplicates" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" -msgstr "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" +msgstr "If active, found duplicates VApps for this service will be removed" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3670,122 +3677,122 @@ msgstr "Can't contact LDAP server" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} days {:d}:{:02d}:{:02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numeric" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} must be greater than or equal to {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} must be lower than or equal to {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} contains invalid characters" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "{} is not a valid hostname: maximum host name length exceeded." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} is not a valid hostname: (domains not allowed)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} is not a valid hostname: (invalid characters)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} is not a valid URL: exceeds maximum length." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} is not a valid IPv4 address" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} is not a valid IPv6 address" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} is not a valid IPv4 or IPv6 address" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} exceeds maximum path length." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} is not a valid windows path" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} is not a valid unix path" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} is not a valid path" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} is not a valid host:port pair" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} is not a valid MAC address" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} is not a valid MAC range" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "Email address is too long" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "Email address is not valid" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "The basename is not a valid for a hostname" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "The length of basename plus length must be greater than 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "The length of basename plus length must not be greater than 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "The machine name can't be only numbers" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Invalid JSON data" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Certificate is empty" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Invalid certificate" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "Private key is empty" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Invalid private key" @@ -3969,35 +3976,49 @@ msgstr "" "must enter OTP. If checked, all users must enter OTP, so authentication step " "is skipped." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Send only username (without domain) to radius server" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "OTP Code" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Please enter OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Radius OTP connection error" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Invalid OTP code" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS via HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Simple SMS sending MFA using HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "URL pattern for SMS sending" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4011,16 +4032,16 @@ msgstr "" "* {username} - the username\n" "* {justUsername} - the username without @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "HTTP Server" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignore certificate errors" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4028,19 +4049,19 @@ msgstr "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "SMS sending method" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Method for sending SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Headers for SMS requests" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4056,11 +4077,11 @@ msgstr "" "* {justUsername} - the username without @....\n" "Headers are in the form of \"Header: Value\". (without the quotes)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Parameters for SMS POST/PUT sending" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4076,51 +4097,51 @@ msgstr "" "* {username} - the username\n" "* {justUsername} - the username without @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "SMS encoding" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Encoding for SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "SMS authentication method" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "HTTP Basic Auth" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "HTTP Authentication" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "SMS authentication user or token" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "User or token for SMS authentication" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "SMS authentication password" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Password for SMS authentication" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "SMS response OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4128,39 +4149,39 @@ msgstr "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "HTTP Response" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "SMS response error action" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Action for SMS response error" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "Allow user to login if its IP is in the networks list" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "Deny user to login if its IP is in the networks list" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "SMS sending failed" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "SMS response error" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "MFA Code" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 msgid "Check your phone. You will receive an SMS with the verification code" msgstr "Check your phone. You will receive an SMS with the verification code" @@ -4208,15 +4229,15 @@ msgstr "Number of valid codes before and after the current one" msgid "Authentication Code" msgstr "Authentication Code" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Enter your authentication code" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "Code is already used. Wait a minute and try again." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Invalid code" @@ -4499,21 +4520,21 @@ msgstr "Must provide an account to add machines to domain!" msgid "Must provide a password for the account!" msgstr "Must provide a password for the account!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux OS Manager" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager to control Linux virtual machines" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Max.Idle time" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4521,12 +4542,12 @@ msgstr "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Calendar logout" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4598,21 +4619,21 @@ msgstr "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max. idle time)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "UDS Actor for windows machines" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic OS Manager" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Os Manager to control windows machines without domain." @@ -4961,21 +4982,21 @@ msgstr "Pools usage on a day" msgid "Pools usage counters for an specific day" msgstr "Pools usage counters for an specific day" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Services by hour" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Hour" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Services usage report for a day" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Service usage report" @@ -5128,7 +5149,7 @@ msgstr "Obtained from user created on AWS IAM for UDS Enteprise - Keys" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5144,20 +5165,20 @@ msgstr "Default region" msgid "Default region to use for connecting to EC2" msgstr "Default region to use for connecting to EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "AWS Existing AMI Service" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "This service provides access to AWS VDI based on an existing owned AMI" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "Number of desired VMs to keep running waiting for an user" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5165,15 +5186,15 @@ msgstr "Number of desired VMs to keep running waiting for an user" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "Number of desired VMs to keep stopped waiting for use" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "Base AMI for this service" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5182,37 +5203,37 @@ msgstr "Base AMI for this service" msgid "Region" msgstr "Region" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Region for this service" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Instance type" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Type for instances created from the AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Key pair" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Key pair to use for this machine" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC for the instances from this service" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5220,19 +5241,19 @@ msgstr "VPC for the instances from this service" msgid "Network" msgstr "Network" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Subnetwork" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Subnetwork for the instances from this service" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Security groups" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Security groups for the instances from this service" @@ -5251,7 +5272,7 @@ msgid "Service region" msgstr "Service region" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5259,7 +5280,7 @@ msgid "After logout" msgstr "After logout" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5267,7 +5288,7 @@ msgid "Select the action to be performed after the user logs out." msgstr "Select the action to be performed after the user logs out." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5294,7 +5315,7 @@ msgid "Obtained from subscriptions" msgstr "Obtained from subscriptions" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Timeout in seconds of connections server" @@ -5400,58 +5421,60 @@ msgstr "Azure Fixed Machines" msgid "Azure Services based on fixed machines." msgstr "Azure Services based on fixed machines." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Stop Machine (and deallocates it)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Google Cloud Platform Provider" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Provides connection to Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Client Email" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Client email for service account" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "Token URI" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "Token URL, as provided by Google (default is for Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Private Key" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Private key for service account" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "Project ID" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Project ID for Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Preferred Region" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Preferred region for new services" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Google Cloud Provider" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Provides connection to Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Connection successful" @@ -5744,7 +5767,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "Number of vcpus (\"-1 means \"keep original machine vcpus\")" @@ -5754,7 +5776,6 @@ msgid "Cores per VCPU" msgstr "Cores per VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" @@ -5776,7 +5797,6 @@ msgid "No" msgstr "No" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Both Cores per VCPU and Number of VCPUS are required" @@ -5844,6 +5864,19 @@ msgstr "Nutanix Acropolis Service" msgid "Nutanix Acropolis based service" msgstr "Nutanix Acropolis based service" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "Number of vcpus (Zero value means \"keep original machine vcpus\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " @@ -5852,6 +5885,11 @@ msgstr "" "Network for the machines (every machine created will be attached to this " "network)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "Both Cores per VCPU and Number of VCPUS must be greater than 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Nutanix Fixed Machines" @@ -6148,23 +6186,23 @@ msgstr "Base Template" msgid "Service base template" msgstr "Service base template" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Machine Names" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Base name for clones from this machine" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Size of numeric part for the names of these machines" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Authentication error" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6454,14 +6492,19 @@ msgid "Static Single IP" msgstr "Static Single IP" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "This service provides access to POWERED-ON Machine by IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "Host IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6469,11 +6512,11 @@ msgstr "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Invalid server used: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Invalid MAC address used: \"{}\"" @@ -6830,35 +6873,35 @@ msgstr "RDS Platform RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "RDS Platform RemoteAPP based service" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Application path" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Full path of the application this service will represent" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Application parameters" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Applications parameters, as will be passed in command line" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Start path" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Path where the app will be started on. (i.e. f:\\example\\folder)" -#: services/RDS_enterprise/service.py:86 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Wait spawned processes" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -6866,7 +6909,7 @@ msgstr "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "A valid application path is required" @@ -7146,28 +7189,32 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Virtual Datacenter" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "If active, found duplicates vApps for this service will be removed" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catalog" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "vApps source catalog" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp Template" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "vApp template for the service" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Main Network" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7175,7 +7222,7 @@ msgstr "" "If more than one interface is found in machine, use the first found on this " "network as main" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Only vApp Templates with 1 VM are allowed" @@ -8717,18 +8764,18 @@ msgstr "Binary appimage ARMHF Linux client (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Generic .tar.gz Linux client" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Authenticator does not provide information" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} days" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} hours" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Internal error" diff --git a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po index a38d6bb7f..1f298f2a8 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # , 2014 # blafuente , 2014 # Javier , 2014 @@ -28,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Javier , 2014\n" "Language-Team: English (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.po b/server/src/uds/locale/es/LC_MESSAGES/django.po index a411b0541..cd8ae1890 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/django.po +++ b/server/src/uds/locale/es/LC_MESSAGES/django.po @@ -22,11 +22,12 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2012-2014 # Adolfo Gómez , 2014-2015,2017-2020,2022 # Adolfo Gómez , 2019 # albert clar , 2017,2020 -# Andrés Schumann , 2021,2023 +# Andrés Schumann , 2021,2023-2024 # blafuente , 2014 # blafuente , 2014-2016 # Javier Gomez , 2021 @@ -41,9 +42,10 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" -"Last-Translator: Víctor Alonso , 2020,2022\n" +"Last-Translator: Andrés Schumann , " +"2021,2023-2024\n" "Language-Team: Spanish (http://app.transifex.com/openuds/openuds/language/" "es/)\n" "Language: es\n" @@ -71,11 +73,11 @@ msgid "Name" msgstr "Nombre" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -91,45 +93,45 @@ msgstr "Marca de tiempo" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Etiquetas" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Nombre del Pool" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nombre de usuario" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "En ejecución" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Comienza" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Termina" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Transcurrido" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Tiempo transcurrido desde la marca" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Usados de {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Uso actual" @@ -201,7 +203,7 @@ msgstr "Id" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -269,9 +271,9 @@ msgstr "" msgid "Display" msgstr "Visualización" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -299,32 +301,32 @@ msgstr "Depura tu consulta" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "La etiqueta debe contener solo letras, números o símbolos: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Nombre de la regla" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Repetir" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Cada" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Duración" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Elemento ya existe (error de clave duplicada)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Reglas de {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Reglas actuales" @@ -385,7 +387,7 @@ msgstr "Política" msgid "HA Policy" msgstr "Política de Alta Disponibilidad" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Servicios de usuario" @@ -497,7 +499,7 @@ msgstr "Fecha de creación" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -688,7 +690,7 @@ msgstr "Proveedores de servicios" msgid "Status" msgstr "Estado" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -708,7 +710,7 @@ msgstr "Informes disponibles" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -855,61 +857,61 @@ msgstr "Administrado" msgid "Unmanaged" msgstr "No administrado" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Estándar" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "El token del servicio parece estar en uso por otro servicio. Por favor, " "seleccione uno nuevo." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Error de entrada: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Servicios de {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Servicios actuales" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Nombre del servicio" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pools de Servicios" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Tipo de recuento máximo de servicios" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservador" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Método de conteo de servicios" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Tipo de conteo de servicio para calcular si se alcanza el MAX" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Con errores" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Ok" @@ -1149,7 +1151,7 @@ msgstr "Túneles" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1175,6 +1177,11 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Puerto donde el túnel es visible para los usuarios" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"No se puede eliminar un grupo de servidores de túnel con transportes adjuntos" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1254,7 +1261,7 @@ msgid "Current users" msgstr "Usuarios actuales" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1384,24 +1391,24 @@ msgstr "" "Redes asociadas. Si no se selecciona ninguna red, significará \"todas las " "redes\"." -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Solicitud no válida" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Método no encontrado en {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Elemento no encontrado" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Acceso denegado" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Operación no soportada" @@ -1447,7 +1454,7 @@ msgstr "" "formato USUARIO@DOMINIO.DOM)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1506,24 +1513,26 @@ msgstr "" "dominio del usuario) si el modo de compatibilidad no es \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "servidores de respaldo" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Si no está vacío, este host se utilizará en caso de que el servidor host " -"principal no sea accesible" +"Si no está vacía, esta lista de dominio=backup1,backup2,... se utilizará " +"como servidores de respaldo para los dominios. Si no se especifica el " +"dominio, se utilizarán los servidores de respaldo para todos los dominios." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Verificar SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1532,24 +1541,24 @@ msgstr "" "Si está marcada, se aplicará la verificación SSL. De lo contrario, la " "verificación SSL se desactivará" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificado" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificado a utilizar para la verificación SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Lista de resolución del host" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1557,11 +1566,11 @@ msgstr "" "Si no está vacío, esta lista de host key=value se usará para traducir el " "nombre de host de AD a un nombre de host con resolución." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignorar dominios" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1569,11 +1578,11 @@ msgstr "" "Si no está vacío, esta lista de dominios se ignorará al buscar usuarios. " "Valores Separados por Comas." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Redirigir al caducar" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1581,22 +1590,22 @@ msgstr "" "Si no está vacía y la contraseña del usuario ha caducado, será redirigido " "automáticamente a esta URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Autenticador Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Autenticar contra Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1604,49 +1613,49 @@ msgstr "" "No se pudo conectar a ningún servidor AD. Comprueba tu configuración " "(servidor, certificados ssl,...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Nombre de usuario no encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Grupo no encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Demasiados resultados, sea más específico" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Error al probar la conexión" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "La conexión parece ser incorrecta, verifíquela" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Los parámetros de conexión parecen correctos, la prueba fue ejecutada con " @@ -1682,7 +1691,7 @@ msgstr "Obtenido de la aplicación creada en Azure para UDS Enterprise" #: auths/AzureAD_enterprise/authenticator.py:118 #: auths/OAuth2/authenticator.py:83 services/Azure_enterprise/provider.py:63 msgid "Client Secret" -msgstr "Clave de Cliente" +msgstr "Clave de cliente" #: auths/AzureAD_enterprise/authenticator.py:120 #: services/Azure_enterprise/provider.py:65 @@ -1700,7 +1709,7 @@ msgstr "Url de respuesta (rellenado por UDS, modificar sólo si es necesario!!)" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1764,23 +1773,23 @@ msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "" "Este tipo de autenticador no admite espacios en blanco en el campo NOMBRE" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Usuario no encontrado" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Excepción de autenticador:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Error de conexión: " -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "" "Los parámetros de conexión parecen validos, el test fue ejecutado " @@ -1808,7 +1817,7 @@ msgstr "Nombre de usuario con privilegios de lectura en eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1819,13 +1828,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Tiempo de espera en segundos de conexión a LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Atributo MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Atributo desde donde extraer el código MFA" @@ -1838,28 +1847,28 @@ msgstr "Autenticador eDirectory " msgid "Authenticate against eDirectory" msgstr "Autenticar contra eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Error de conexión" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Error de conexión: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "La base de búsqueda LDAP es incorrecta" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1867,14 +1876,14 @@ msgstr "" "El atributo de id de usuario Ldap parece ser incorrecto (ningún usuario " "encontrado por ese atributo)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "El atributo del grupo Ldap parece ser incorrecto (no se encontró ningún " "grupo con ese atributo)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2107,25 +2116,25 @@ msgstr "Identificador NAS" msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS para Radius Server" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Prefijo de aplicación para atributos de clase" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "Prefijo de aplicación para filtrar grupos del atributo \"Clase\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Grupo global" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Si se establece, este valor se agregará como grupo para todos los usuarios " "de radius" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "La conexión al servidor Radius falló" @@ -2580,13 +2589,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Autenticador LDAP simple" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "La clase de grupo LDAP parece ser incorrecta (no se ha encontrado ningún " "grupo en esa clase)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2594,7 +2603,7 @@ msgstr "" "El atributo de id de grupo LDAP parece ser incorrecto (ningún grupo " "encontrado por ese atributo)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2602,7 +2611,7 @@ msgstr "" "La clase de usuario LDAP o el ID de usuario probablemente estén equivocados " "(no se puede encontrar ningún usuario con ambas condiciones)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2610,7 +2619,7 @@ msgstr "" "La clase de grupo de Ldap o el ID de grupo es probablemente incorrecto (no " "se puede encontrar ningún grupo con ambas condiciones)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "" "No se puede localizar ningún grupo al que pertenezca el atributo especificado" @@ -2623,7 +2632,7 @@ msgstr "Administrador del sistema" msgid "Forbidden" msgstr "Prohibido" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Acceso intentado desde una fuente no permitida" @@ -2737,27 +2746,27 @@ msgstr "Limpiar caché L2" msgid "Custom message on launchers" msgstr "Mensaje personalizado en lanzadores" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Ya hay una publicación en curso. Espere a que termine e inténtelo de nuevo." -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "El servicio está en modo de mantenimiento y no se permiten nuevas " "publicaciones" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "No se puede cancelar una publicación que no se está ejecutando" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "No se puede anular una publicación que no se está utilizando" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "No se pueden anular publicaciones con servicios en proceso" @@ -2781,7 +2790,7 @@ msgstr "El servidor está en modo de mantenimiento." msgid "Server is restrained" msgstr "El servidor está restringido" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Número máximo de servicios de usuario alcanzados para este {}" @@ -2797,7 +2806,7 @@ msgstr "No se puede eliminar ni cancelar {} porque su estado no lo permite" msgid "The requested service is restrained" msgstr "El servicio solicitado está restringido." -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2805,15 +2814,15 @@ msgstr "" "Servicio inválido. El servicio no está disponible en estos momentos. Por " "favor, inténtelo de nuevo pasados unos instantes." -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "No se encontró transporte adecuado" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "El transporte solicitado {} no es válido para {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "El servicio no es accesible desde este dispositivo." @@ -2825,11 +2834,11 @@ msgstr "Número de segundos para ignorar mensajes repetidos" msgid "Base Notifier" msgstr "Notificador base" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Permitir inicio de sesión de usuario" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Denegar inicio de sesión de usuario" @@ -2847,7 +2856,7 @@ msgstr "" msgid "Base MFA" msgstr "MFA base" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Código MFA no válido" @@ -2855,7 +2864,7 @@ msgstr "Código MFA no válido" msgid "No check method provided." msgstr "No se ha proporcionado ningún método de verificación." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "No se ha implementado ningún metodo de verificación de conexión" @@ -2903,12 +2912,12 @@ msgstr "Máquina Base" msgid "Base machine for this service" msgstr "Máquina base para este servicio" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Token del servicio" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2918,23 +2927,32 @@ msgstr "" "Deje en blanco para no gestionar el servicio y disponer de asignación " "persistente." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Máquinas" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Máquinas para este servicio" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Asignación aleatoria de máquinas" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Si está activo, UDS asignará las máquinas de forma aleatoria, en lugar de " +"lineal" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Usar Snapshots" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2942,34 +2960,24 @@ msgstr "" "Si está activo, UDS intentará crear una instantánea (si ya no existe) antes " "de acceder a una máquina y la restaurará después de su uso." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Tipo de instantánea" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Sin instantánea" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Recuperar instantánea y detener la máquina" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Recuperar instantánea e iniciar la máquina" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Asignación aleatoria de máquinas" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Si está activo, UDS asignará las máquinas de forma aleatoria, en lugar de " -"lineal" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3215,11 +3223,11 @@ msgstr "Máquina" msgid "Config" msgstr "Configuración" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Tiempo de caducidad de la sesión en horas después de la publicación" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3228,7 +3236,7 @@ msgstr "" "velocidad de generación de caché pero también cargará a los proveedores de " "servicios." -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3238,7 +3246,7 @@ msgstr "" "de subprocesos, la tarea implementada se completará antes, pero dará más " "carga al sistema en general." -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3248,7 +3256,7 @@ msgstr "" "mayor número de subprocesos, la tarea implementada se completará antes, pero " "dará más carga al sistema en general." -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3257,34 +3265,34 @@ msgstr "" "\"eliminadas\", caché y máquinas asignadas por el usuario. El tiempo es en " "segundos." -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Tiempo para mantener los elementos del \"estado de información\" antes de " "eliminarlos, en segundos" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Número de servicios para iniciar la eliminación por ejecución de limpiador " "de servicios" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Tiempo de verificación de eliminación de caché, publicaciones y servicios " "implementados, en segundos" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Nombre de usuario del superusuario" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Contraseña de superusuario" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3293,11 +3301,11 @@ msgstr "" "Permita que el usuario root acceda mediante la interfaz web. Una vez " "configurado un autenticador, se recomienda desactivar esta opción" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Habilitar módulos de seguridad mejorados" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3305,7 +3313,7 @@ msgstr "" "Modo de máxima seguridad aplicado (modo Zero-Trust). No se permitirá la " "redirección de contraseña si se configura este modo." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3313,41 +3321,41 @@ msgstr "" "¿Cuánto tiempo debe permanecer sin uso el servicio de usuario antes de que " "el administrador del sistema operativo considere eliminarlo?" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Tiempo entre comprobaciones de servicios de usuario no utilizados por parte " "de los administradores del sistema operativo" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "Max inicios de sesión antes de bloquear una cuenta por un tiempo" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Tiempo de bloqueo en segundos para un usuario que tiene demasiados errores " "de inicio de sesión" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Bloquear IP en caso de error de inicio de sesión" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Realice la ejecución automática del servicio si solo hay un servicio." -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Redirigir HTTP a HTTPS al conectarse a UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Redirige la página de inicio de sesión a la etiqueta utilizada al iniciar " "sesión si está activa." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3355,7 +3363,7 @@ msgstr "" "Tiempo máximo necesario para que un servicio sea \"completamente funcional\" " "antes de que se considere \"fallido\" y se elimine" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3363,27 +3371,27 @@ msgstr "" "Tiempo máximo necesario para que un servicio se \"elimine por completo\" " "antes de que se considere \"fallido\" y se elimine" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Registros máximos por cada elemento de administración con capacidad de " "registro" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Entradas máximas de registros para registros UDS generales (0 = ilimitado, " "úselo con cuidado)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Es hora de restringir un servicio de usuario en caso de que dé algunos " "errores en algún momento." -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3391,44 +3399,44 @@ msgstr "" "Número de errores que deben ocurrir en \"restrainTime\" para restringir un " "servicio de usuario" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Duración de las estadísticas, en días." -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Frecuencia de recopilación de estadísticas en segundos. El valor " "predeterminado es 4 horas (14400 segundos)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Número máximo de tiempo para acumular en una ejecución. El valor " "predeterminado es 7 (1 semana)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Si no permite el inicio de sesión mostrando autenticadores" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Notificar al usuario de la existencia de una nueva versión de un servicio en " "una nueva publicación." -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Redes o hosts considerados “confiables” para UDS (Túneles, etc.)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "" "IP o redes permitidas para reenviar solicitudes (como servidores proxy)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3436,11 +3444,11 @@ msgstr "" "Permitir que los clientes notifiquen su propia IP (si está configurada) o " "usar siempre la IP extraída de la solicitud" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Si hay un proxy frente a nosotros (es decir, HAProxy o cualquier NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3449,83 +3457,83 @@ msgstr "" "solo cuando los usuarios que han iniciado sesión llegan a 0, se considera " "\"desconectado\"" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "Activar/desactivar el bloqueo de IP de detección de ataques de actores" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Duración máxima de la sesión para administrador" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Duración máxima de la sesión para el usuario" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Tiempo de recarga de página (legacy)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Mensaje personalizado de error al limitar por calendario" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "Si convierte el nombre de usuario a minúsculas al iniciar sesión" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "ID UDS global (común para todos los servidores del mismo cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Site display name" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Site copyright info" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Site copyright link" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Top navbar logo name" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Estilos CSS personalizados aplicados al sitio accesible al usuario." -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Site information" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Mostrar cuadro de filtro para servicios de usuario en la parte superior o " "inferior de la página" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "servicios de usuario mínimos para mostrar el filtro" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Habilite funciones experimentales. ¡¡UTILIZAR CON PRECAUCIÓN!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Número de elementos por página en tablas de administración" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Lista de hosts/redes confiables a los que se les permite acceder a la " "interfaz de administración" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Habilitar el menú VNC para servicios de usuario" @@ -3539,7 +3547,7 @@ msgstr "Servidor de túnel a utilizar" #: core/util/fields.py:117 msgid "Server group" -msgstr "grupo de servidores" +msgstr "Grupo de servidores" #: core/util/fields.py:119 msgid "Server group to use" @@ -3583,7 +3591,7 @@ msgid "Base name for clones from this service" msgstr "Nombre base para clones de este servicio" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Longitud del nombre" @@ -3619,10 +3627,12 @@ msgstr "Número máximo de servicios permitidos (0 significa sin límite)" msgid "Remove found duplicates" msgstr "Eliminar duplicados encontrados" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Si está activo, se eliminarán vApps duplicados encontrados para este servicio" +"Si está activo, se eliminarán los VApps duplicados encontrados para este " +"servicio." #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3782,125 +3792,125 @@ msgstr "No existe conexión con el servidor LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} días {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numérico" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} debe ser mayor o igual a {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} debe ser inferior o igual a {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} contiene caracteres no válidos" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} no es un nombre de host válido: se excedió la longitud máxima del nombre " "de host." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} no es un nombre de host válido: (dominios no permitidos)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} no es un nombre de host válido: (caracteres no válidos)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} no es una URL válida: excede la longitud máxima." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} no es una dirección IPv4 válida" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} no es una dirección IPv6 válida" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} no es una dirección IPv4 o IPv6 válida" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} excede la longitud máxima de la ruta." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} no es una ruta válida de Windows" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} no es una ruta Unix válida" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} no es una ruta válida" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} no es un par host:puerto válido" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} no es una dirección MAC válida" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} no es un rango MAC válido" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "La dirección de correo electrónico es demasiado larga" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "La dirección de correo electrónico no es válida" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "El nombre no es válido para un nombre de host" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "El nombre base más el contador debe ser mayor que 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "El nombre base más el contador no debe ser superior a 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "" "El nombre de la máquina no puede estar compuesto únicamente por números" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Datos JSON no válidos" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "El certificado está vacío" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Certificado no válido" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "La clave privada está vacía" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Clave privada no válida" @@ -4093,35 +4103,49 @@ msgstr "" "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:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Enviar solo el nombre de usuario (sin dominio) al servidor RADIUS" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Si no se marca, el nombre de usuario se enviará tal como está al servidor " +"Radius. Si se marca, se eliminará la parte del dominio del nombre de usuario " +"antes de enviarlo al servidor Radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "Código OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Por favor ingrese OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Error de conexión OTP de Radius" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Código OTP no válido" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS a través de HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Envío de SMS simple MFA usando HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Patrón de URL para envío de SMS" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4134,16 +4158,16 @@ msgstr "" "{username} - el nombre de usuario * {justUsername} - el nombre de usuario " "sin @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignorar errores de certificado" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4151,19 +4175,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:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Método de envío de SMS" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Método para enviar SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Encabezados para solicitudes de SMS" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4178,11 +4202,11 @@ msgstr "" "usuario sin @.... Los encabezados están en la forma de \"Encabezado: " "Valor\". (sin las comillas)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Parámetros para el envío de SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4196,51 +4220,51 @@ msgstr "" "teléfono * {username} - el nombre de usuario * {justUsername} - el nombre de " "usuario sin @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Codificación de SMS" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Codificación para SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Método de autenticación por SMS" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Autenticación básica HTTP" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "Autenticación HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Usuario o token de autenticación por SMS" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Usuario o token para autenticación por SMS" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Contraseña de autenticación de SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Contraseña para la autenticación por SMS" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Respuesta de SMS OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4248,41 +4272,41 @@ 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:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "Respuesta HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Acción de error de respuesta de SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Acción para el error de respuesta de SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "Permitir que el usuario inicie sesión si su IP está en la lista de redes" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its 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/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "Envío de SMS fallido" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Error de respuesta de SMS" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Código MFA" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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" @@ -4330,15 +4354,15 @@ msgstr "Número de códigos válidos antes y después del actual" msgid "Authentication Code" msgstr "Código de autenticación" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Ingrese su código de autenticación" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "El código ya está en uso. Espera un minuto e inténtalo de nuevo." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Codigo invalido" @@ -4622,21 +4646,21 @@ msgstr "¡Debe indicar una cuenta para añadir máquinas al dominio!" msgid "Must provide a password for the account!" msgstr "¡Debe indicar una contraseña para la cuenta!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux OS Manager" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager para controlar máquinas Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Tiempo máximo de inactividad" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4644,12 +4668,12 @@ msgstr "" "Tiempo máximo de inactividad (en segundos) antes de cerrar la sesión de un " "usuario automáticamente (< = 0 significa ningún tiempo de inactividad)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Cierre de sesión al finalizar el calendario" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4721,22 +4745,22 @@ msgstr "" "Tiempo máximo de inactividad (en segundos) antes de cerrar la sesión de un " "usuario automáticamente (< = 0 significa ningún tiempo de inactividad)." -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "Actor UDS para máquinas Windows" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "Actor UDS para máquinas Windows no administradas. Utilizado SOLO para " "máquinas estáticas." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic OS Manager" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Os Manager para controlar máquinas Windows sin dominio AD." @@ -5092,21 +5116,21 @@ msgstr "Uso de pools en un día" msgid "Pools usage counters for an specific day" msgstr "Contadores de uso de pools para un día específico" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Servicios por hora" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Hora" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Informe del uso de servicios por día." -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Informe del uso de servicios" @@ -5258,7 +5282,7 @@ msgstr "Obtenido del usuario creado en AWS IAM para UDS Enteprise - Claves" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5274,22 +5298,22 @@ msgstr "Región predeterminada" msgid "Default region to use for connecting to EC2" msgstr "Región predeterminada para conectarse a EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Servicio AMI existente de AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Este servicio proporciona acceso a AWS VDI basado en una AMI de propiedad " "existente." -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "Número de VMs deseadas en ejecución a la espera de un usuario" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5297,15 +5321,15 @@ msgstr "Número de VMs deseadas en ejecución a la espera de un usuario" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "Número de máquinas virtuales deseadas para dejar esperando para su uso" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "AMI base para este servicio" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5314,37 +5338,37 @@ msgstr "AMI base para este servicio" msgid "Region" msgstr "Región" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Región para este servicio" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Tipo de instancia" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Escriba para instancias creadas a partir de la AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Par de claves" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Par de claves a utilizar para esta máquina" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC para las instancias de este servicio" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5352,19 +5376,19 @@ msgstr "VPC para las instancias de este servicio" msgid "Network" msgstr "Red" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Subred" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Subred para las instancias de este servicio" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Grupos de seguridad" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Grupos de seguridad para las instancias de este servicio" @@ -5383,7 +5407,7 @@ msgid "Service region" msgstr "Región de servicio" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5391,7 +5415,7 @@ msgid "After logout" msgstr "Después de cerrar sesión" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5401,7 +5425,7 @@ msgstr "" "sesión." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5428,7 +5452,7 @@ msgid "Obtained from subscriptions" msgstr "Obtenidos de las suscripciones" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Tiempo de espera en segundos del servidor de conexiones." @@ -5536,60 +5560,62 @@ msgstr "Máquinas fijas de Azure" msgid "Azure Services based on fixed machines." msgstr "Servicios de Azure basados en máquinas fijas." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Detener la máquina (y desasignarla)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Proveedor de la plataforma Google Cloud" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Proporciona conexión a Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Correo electrónico del cliente" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Correo electrónico del cliente para la cuenta de servicio" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI del token" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL del token, según lo proporcionado por Google (el valor predeterminado es " "para Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Clave privada" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Clave privada para la cuenta de servicio" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "Identificación del proyecto" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Identificación del proyecto para Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Región preferida" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Región preferida para nuevos servicios" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Proveedor de plataforma Google Cloud" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Proporciona conexión a Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Conexión exitosa" @@ -5893,7 +5919,6 @@ msgid "VCPUS" msgstr "vCPUs" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "" "Número de vCPUs (\"-1 significa\" mantener las mismas vCPUs que de la " @@ -5905,7 +5930,6 @@ msgid "Cores per VCPU" msgstr "Cores por vCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Número de vCPUs (\"-1 significa\" mantener las mismas vCPUs que la máquina " @@ -5929,7 +5953,6 @@ msgid "No" msgstr "No" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Se requieren cores por vCPU y Número de vCPUs" @@ -5997,12 +6020,34 @@ msgstr "Servicio Nutanix Acrópolis" msgid "Nutanix Acropolis based service" msgstr "Servicio basado en Nutanix Acrópolis" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Número de vcpu (el valor cero significa \"mantener las vcpu de la máquina " +"original\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Número de vcpu (el valor cero significa \"mantener los núcleos de la máquina " +"original por vcpu\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "Red para las máquinas (cada máquina creada se adjuntará a esta red)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"Tanto los núcleos por VCPU como la cantidad de VCPUS deben ser mayores que 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Máquinas fijas Nutanix" @@ -6309,23 +6354,23 @@ msgstr "Plantilla base" msgid "Service base template" msgstr "Plantilla de servicio base" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Nombres de las máquinas" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Nombre base para clones de esta máquina" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Tamaño del contador para los nombres de las máquinas." -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Error de autenticación" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6624,14 +6669,19 @@ msgid "Static Single IP" msgstr "Estatica, IP Simple" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Este servicio proporciona acceso a máquinas ENCENDIDAS por IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Este servicio proporciona acceso a la máquina ENCENDIDA por IP. (Puede " +"configurar WOL para encender la máquina)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "IP del host/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6639,11 +6689,11 @@ msgstr "" "IP o FQDN del servidor al que conectarse. Puede incluir una dirección MAC " "separada por \";\" después de la IP/nombre de host" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Se utilizó un servidor no válido: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Dirección MAC no válida utilizada: \"{}\"" @@ -6814,8 +6864,8 @@ msgstr "" #: services/RDS_enterprise/provider.py:108 msgid "User list for mapping. (Not used if User mapping is disabled)" msgstr "" -"Lista de usuarios para el mapeo. (No se usa si la asignación de usuario está " -"deshabilitada)" +"Lista de usuarios para el mapeo. (No se usa si el mapeo de usuarios está " +"deshabilitado)" #: services/RDS_enterprise/provider.py:115 msgid "User's password" @@ -7017,36 +7067,36 @@ msgstr "RemoteAPP en Plataforma RDS" msgid "RDS Platform RemoteAPP based service" msgstr "Servicio basado en Plataforma RDS RemoteAPP" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Ruta de la aplicación" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "" "Ruta de acceso completa de la aplicación que representará este servicio" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Parámetros de aplicación" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Parámetros de aplicaciones, como se pasará en línea de comandos" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Ruta de inicio" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Esperar procesos generados" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7054,7 +7104,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:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Se requiere una ruta de aplicación válida" @@ -7336,28 +7386,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Virtual Datacenter" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Si está activo, se eliminarán vApps duplicados encontrados para este servicio" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catálogo" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "Catálogo origen de vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp Template" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Plantilla vApp para el servicio" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Red principal" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7365,7 +7420,7 @@ msgstr "" "Si la máquina tiene más de una interfaz, utilice la primera de esta red como " "la principal" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Se permiten sólo plantillas vApp con 1 máquina virtual" @@ -8944,18 +8999,18 @@ msgstr "Imagen binaria de la aplicación ARMHF Cliente Linux (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Cliente Linux genérico .tar.gz" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "El Autenticador no proporciona información" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} días" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} horas" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Error interno" diff --git a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po index 2081f57f1..d39de0201 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # , 2014 # Adolfo Gómez , 2014-2015,2017-2020 # Adolfo Gómez , 2019 @@ -37,7 +38,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Spanish (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/eu/LC_MESSAGES/django.po b/server/src/uds/locale/eu/LC_MESSAGES/django.po index ee9dfcc5d..94b6db91a 100644 --- a/server/src/uds/locale/eu/LC_MESSAGES/django.po +++ b/server/src/uds/locale/eu/LC_MESSAGES/django.po @@ -22,13 +22,14 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2015 # Lanmedia Comunicaciones , 2016-2017,2020 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Adolfo Gómez , 2015\n" "Language-Team: Basque (http://app.transifex.com/openuds/openuds/language/" @@ -57,11 +58,11 @@ msgid "Name" msgstr "Izena" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -77,45 +78,45 @@ msgstr "Denbora-marka" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Etiketak" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Pool izena" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Erabiltzaile-izena" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "Exekutatzen" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Hasiera" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Amaiera" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "igarotako" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Denboraldi iraunkorra" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "{0} erabilerak" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Uneko erabilerak" @@ -187,7 +188,7 @@ msgstr "Id" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -255,9 +256,9 @@ msgstr "" msgid "Display" msgstr "Pantaila" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -285,32 +286,32 @@ msgstr "Zure kontsulta hobetu" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "Etiketak letrak, zenbakiak edo ikurrak soilik izan behar ditu: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Arau Izena" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Errepikapenak" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Bakoitza" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Iraupena" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Elementua existitzen da (Hutsa, gako bikoiztua)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "{0} Arau" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Momentuko arauak" @@ -372,7 +373,7 @@ msgstr "Politika" msgid "HA Policy" msgstr "HA politika" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Erabiltzaile Zerbitzuak" @@ -484,7 +485,7 @@ msgstr "Sortze data" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -677,7 +678,7 @@ msgstr "Zerbitzu Hornitzaileak" msgid "Status" msgstr "Egoera" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -697,7 +698,7 @@ msgstr "Txosten erabilgarriak" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -845,61 +846,61 @@ msgstr "Kudeatua" msgid "Unmanaged" msgstr "Kudeatu gabekoa" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Estandarra" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Badirudi beste zerbitzu batzuek erabiltzen dutela zerbitzua. Mesedez, " "hautatu berri bat." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Sarrera-erroreak:{0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "{} Zerbitzuko zerbitzuak" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Momentuko zerbitzuak" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Zerbitzu izena" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pool-Zerbitzua" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Gehienezko zerbitzuen zenbaketa mota" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Kontserbadorea" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Zerbitzuak zenbatzeko metodoa" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "MAX iristen bada kalkulatzeko zerbitzu mota" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Erroreekin" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Ondo" @@ -1136,7 +1137,7 @@ msgstr "Tunelak" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1162,6 +1163,10 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Erabiltzaileek tunela ikusten duten portua" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "Ezin da ezabatu garraioak erantsita dituen tunel zerbitzari talde bat" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1241,7 +1246,7 @@ msgid "Current users" msgstr "Momentuko erabiltzaileak" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1369,24 +1374,24 @@ msgid "Networks associated. If No network selected, will mean \"all networks\"" msgstr "" "Lotutako sareak. Ez bada sarerik hautatzen, \"sare guztiak\" esan nahi du" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Eskaera baliogabea" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Ez da metodorik aurkitu {}:{}-an" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Elementua ez da aurkitu" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Sarrera debekaturik" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Ezinezko eragiketa" @@ -1431,7 +1436,7 @@ msgstr "" "USER@DOMAIN.DOM)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1491,24 +1496,26 @@ msgstr "" "bada" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Backup zerbitzariak" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Hutsik ez badago, ostalari hau erabiliko da ostalari zerbitzari nagusia " -"heltzen ez bada" +"Hutsik ez badago, domeinua=backup1,backup2,... zerrenda hau domeinuen " +"babeskopia zerbitzari gisa erabiliko da. Domeinua zehazten ez bada, " +"babeskopia zerbitzariak erabiliko dira domeinu guztietarako." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Egiaztatu SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1517,24 +1524,24 @@ msgstr "" "Hautatzen bada, SSL egiaztapena ezarriko da. Hala ez bada, SSL egiaztapena " "desgaitu egingo da" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Ziurtagiria" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "SSL egiaztatzeko erabili beharreko ziurtagiria" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Ostalari itzulpenen zerrenda" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1542,11 +1549,11 @@ msgstr "" "Hutsik ez badago, gako=balio bikoteen zerrenda hau erabiliko da ostalari-" "izena AD-etik konpon daitekeen ostalari-izen batera itzultzeko." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ez ikusi domeinuei" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1554,11 +1561,11 @@ msgstr "" "Hutsik ez badago, domeinu-zerrenda hau baztertu egingo da erabiltzaileak " "bilatzean. Komaz bereizitako balioak." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Birbideratzea Iraungi da" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1566,20 +1573,20 @@ msgstr "" "Hutsik ez badago, erabiltzailearen pasahitza iraungi bada, automatikoki " "birbideratuko da URL honetara" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Active Directory autentikatzailea" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Active Directory-aren kontra autentikatu" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1587,53 +1594,53 @@ msgstr "" "Ezin izan da AD zerbitzari batera konektatu. Egiaztatu zure konfigurazioa " "(zerbitzaria, ssl ziurtagiriak, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Erabiltzaile ez da aurkitu" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Ez da aurkitu talderik" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "konkretuagoa izan, emaitz gehiegi daude eta." -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Errorea konexioa probatzean" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "Konexioa okerra dela dirudi, egiaztatu mesedez" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "Konexio parametruak ondo daudela dirudi, proba ondo joan da." @@ -1686,7 +1693,7 @@ msgstr "" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1748,23 +1755,23 @@ msgstr "" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "Authenticator mota honek ez ditu zuriunerik onartzen IZENA eremuan" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Ez da erabiltzailea aurkitu" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Autentikatzaile salbuespena:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Konexioaren errorea:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "Konexioaren parametak zuzena dirudi, proba ondo exekutatu da" @@ -1789,7 +1796,7 @@ msgstr "eDirectory-an irakurtzeko pribilegioa daukan erabiltzailea" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1800,13 +1807,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Denbora-muga LDAP konexio segundotan" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "MFA atributua" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Atributua nondik atera MFA kodea" @@ -1819,28 +1826,28 @@ msgstr "eDirectory autentikatzailea" msgid "Authenticate against eDirectory" msgstr "eDirectory-ren kontra autentikatu" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Konexio-errorea" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Konexio-errorea: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "LDAP bilaketa oinarria txarto dago" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1848,14 +1855,14 @@ msgstr "" "Ldap erabiltzailearen id atributua okerra dela dirudi (atributuak aurkitu ez " "dituen erabiltzaileak)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "Ldap taldearen atributua okerra dela dirudi (atributu horrek ez du talderik " "aurkitu)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2084,25 +2091,25 @@ msgstr "NAS identifikatzailea" msgid "NAS Identifier for Radius Server" msgstr "NAS identifikatzailea Radius Server zerbitzariarentzat" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Aplikazioaren aurrizkia Klase Atributuetarako" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "\"Klasea\" atribututik taldeak iragazteko aplikazioaren aurrizkia" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Talde globala" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Ezartzen bada, balio hori talde gisa gehituko da erradioko erabiltzaile " "guztientzat" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Radius zerbitzarirako konexioak huts egin du" @@ -2551,13 +2558,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "LDAP autentifikatzaile sinplea" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "Ldap talde klasea okerra dela dirudi (klase horren arabera aurkitu ez den " "taldea)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2565,7 +2572,7 @@ msgstr "" "LDAP taldearen ID atributua txarto dagoela dirudi (ez da talderik aurkitu " "atributu horrekin )" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2573,7 +2580,7 @@ msgstr "" "Ldap erabiltzaile-klase edo erabiltzaile-identifikatzailea gaizki dago (ezin " "da bi baldintzarekin aurkitu)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2581,7 +2588,7 @@ msgstr "" "Ldap talde-klase edo talde-identifikatzailea gaizki dago (ezin da bi " "baldintzekin aurkitu)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "Ezin da edozein taldek aurkitu zehaztutako partaidetza atributuarekin" @@ -2593,7 +2600,7 @@ msgstr "Sistema-administratzaileak" msgid "Forbidden" msgstr "Debekatuta" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Sarbidea baimendu gabeko iturri batetik saiatu da" @@ -2705,25 +2712,25 @@ msgstr "Garbitu L2 cachea" msgid "Custom message on launchers" msgstr "Mezu pertsonalizatua abiarazleetan" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "Argitaratu. Aurreko edizioan itxaron amaitzeko eta saiatu berriro" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "Zerbitzua mantenimendu moduan dago eta argitalpen berriak ez dira onartzen" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Ezin da exekutatze-argitalpena bertan behera utzi" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Ezin da argitalpen erabilgarririk argitaratu" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "Ezin dira argitalpenak argitaratu zerbitzuen prozesuan" @@ -2747,7 +2754,7 @@ msgstr "Zerbitzaria mantentze moduan dago" msgid "Server is restrained" msgstr "Zerbitzaria mugatuta dago" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "{} honetarako erabiltzaile-zerbitzuen gehienezko kopurua lortu da" @@ -2763,7 +2770,7 @@ msgstr "Ezin da {} kendu edo ezeztatu {} egoera ez baimendu horrek" msgid "The requested service is restrained" msgstr "Eskatutako zerbitzua geldiarazi egiten da" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2771,15 +2778,15 @@ msgstr "" "Zerbitzu baliogabea. Une honetan zerbitzua ez dago erabilgarri. Saiatu " "geroago" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Ez da garraio egokirik aurkitu" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "Eskatutako garraioa {} ez da {} baliozkoa" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "Zerbitzua ez dago gailutik eskura" @@ -2791,11 +2798,11 @@ msgstr "Errepikaturiko mezuei ez ikusi egiteko segundo kopurua" msgid "Base Notifier" msgstr "Oinarrizko jakinarazlea" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Baimendu erabiltzaileari saioa hasteko" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Ukatu erabiltzailearen saioa" @@ -2811,7 +2818,7 @@ msgstr "Ukatu erabiltzaileari saioa hasteko IP sareen zerrendan badago" msgid "Base MFA" msgstr "Oinarrizko MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "MFA kodea baliogabea" @@ -2819,7 +2826,7 @@ msgstr "MFA kodea baliogabea" msgid "No check method provided." msgstr "Ez da emandako egiaztapen metodorik." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Ez da konexio-egiaztapen metodo bat inplementatu." @@ -2867,12 +2874,12 @@ msgstr "Oinarri makina" msgid "Base machine for this service" msgstr "Zerbitzu honen oinarrizko makina" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Zerbitzuaren tokena" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2881,23 +2888,31 @@ msgstr "" "Aktoreek zerbitzuarekin komunikatzeko erabiliko duten token zerbitzua. Utzi " "hutsik iraunkorra esleitzeko." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Makinak" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Zerbitzu honetako makinak" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Ausazko makinen esleipena" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Aktibatuta badago, UDS-k makinak ausazko esleituko ditu, linealaren ordez" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Erabili argazkiak" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2905,33 +2920,24 @@ msgstr "" "Aktibatuta badago, UDS argazki bat sortzen saiatuko da (bada existitzen ez " "bada) makina batean sartu aurretik, eta erabili ondoren berreskuratuko du." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Argazki mota" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Ez dago argazkirik" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Berreskuratu argazkia eta gelditu makina" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Berreskuratu argazkia eta abiarazi makina" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Ausazko makinen esleipena" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Aktibatuta badago, UDS-k makinak ausazko esleituko ditu, linealaren ordez" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3173,11 +3179,11 @@ msgstr "Makina" msgid "Config" msgstr "Konfig" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Saioa argitaratu eta orduetan iraungiko da" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3185,7 +3191,7 @@ msgstr "" "Cache-egiaztapenen arteko atzerapena. Kopuru hori murrizteak cachea sortzeko " "abiadura handituko du, baina zerbitzu hornitzaileak ere kargatuko ditu" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3195,7 +3201,7 @@ msgstr "" "inplementatutako zeregina lehenago burutuko da, baina karga gehiago emango " "dio sistema orokorrari" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3205,7 +3211,7 @@ msgstr "" "hari kopuru handiagoarekin, inplementatutako zeregina lehenago burutuko da, " "baina karga gehiago emango dio sistema orokorrari" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3213,33 +3219,33 @@ msgstr "" "\"Erroratutako\" eta \"kendutako\" argitalpenak, cachea eta erabiltzaileak " "esleitutako makinak kendu aurretik itxaron denbora. Denbora segundotan dago" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Kendu aurretik \"informazio egoera\" elementuak mantentzeko denbora " "segundotan" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Zerbitzu-garbigailuaren exekuzio bakoitzeko kentzen hasteko zerbitzu kopurua" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Kentzea Egiaztatu cache, argitalpen eta inplementatutako zerbitzuen denbora " "segundotan" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Supererabiltzaile erabiltzaile izena" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Supererabiltzaile pasahitza" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3248,11 +3254,11 @@ msgstr "" "Baimendu root erabiltzaileari web interfazea erabiliz atzitzeko. Behin " "autentifikatzaile bat konfiguratuta, aukera hau desgaitzea gomendatzen da" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Gaitu segurtasun-modulu hobetuak" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3260,7 +3266,7 @@ msgstr "" "Gehieneko segurtasun modua (Zero-Trust modua). Ez da pasahitz " "birbideratzerik onartuko modu hau ezarrita badago." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3268,41 +3274,41 @@ msgstr "" "Zenbat denbora egon behar du erabiltzaile-zerbitzua erabili gabe os " "kudeatzaileak kentzeko kontuan hartu arte" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Erabiltzen ez diren erabiltzaile-zerbitzuen kontrolen arteko denbora " "kudeatzaileek" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "Saio-hasiera gehienez kontu bat blokeatu aurretik" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Blokeatu denbora segundotan saioa hasteko hutsegite gehiegi dituen " "erabiltzailearentzat" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Blokeatu ip saioa hasteko hutsegitean" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Egin zerbitzua automatikoki zerbitzu bakarra bada" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Birbideratu HTTP HTTPSera UDSra konektatzean" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Saioa hasitakoan erabilitako etiketara birbideratzen du saioa hasteko orria " "aktibo badago." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3310,7 +3316,7 @@ msgstr "" "Zerbitzu bat \"erabat funtzionala\" izateko behar den denbora maximoa " "\"porrot egin\" eta kendu aurretik" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3318,27 +3324,27 @@ msgstr "" "Zerbitzu bat \"guztiz kentzeko\" behar den denbora maximoa \"porrot egin\" " "eta garbitu aurretik" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Gehienezko erregistroak erregistrorako gai den administrazio-elementu " "bakoitzeko" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Gehienezko erregistro-sarrerak UDS erregistro orokorretarako (0 = mugagabea, " "erabili kontu handiz)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Erabiltzaile-zerbitzu bat mugatzeko garaia uneren batean akatsen bat ematen " "badu" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3346,44 +3352,44 @@ msgstr "" "Erabiltzaile-zerbitzu bat murrizteko \"restrainTime\"n gertatu behar diren " "errore kopurua" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Estatistikaren iraupena, egunetan" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Estatistikak biltzeko maiztasuna segundotan. Lehenetsia 4 ordu (14400 " "segundo)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Korrika batean pilatzeko gehienezko denbora kopurua. Lehenetsia 7 da (aste 1)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Saio-hasiera autentifikatzaileak erakusten ez badituzu" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Argitalpen berrian zerbitzu baten bertsio berri bat dagoela jakinaraztea " "erabiltzaileari" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "" "UDSrako \"fidagarritzat\" jotzen diren sareak edo ostalariak (Tunelak, " "etab...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "Eskaerak birbidaltzeko baimena duten IP edo sareek (proxyak adibidez)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3391,11 +3397,11 @@ msgstr "" "Eman bezeroei beren ip-a jakinaraztea (konfiguratuta badago), edo erabili " "beti ateratako IP eskaera" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Gure aurrean proxy bat badago (hau da, HAProxy edo edozein NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3404,85 +3410,85 @@ msgstr "" "saioa hasitako erabiltzaileak 0ra iristen direnean soilik, \"saioa " "amaitutzat\" jotzen den." -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "Gaitu/Desgaitu Aktoreen erasoak detektatzeko ip blokeoa" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Gehienezko saioaren iraupena administratzailearentzat" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Erabiltzailearen gehienezko saioaren iraupena" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Orria birkargatzeko denbora (ondarea)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Egutegiaren arabera mugatzerakoan errorearen mezu pertsonalizatua" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "Saio-hasieran erabiltzaile-izena minuskula bihurtzen baduzu" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "UDS ID globala (komuna kluster bereko zerbitzari guztientzat)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Gunearen bistaratzeko izena" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Gunearen copyright informazioa" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Gunearen copyright esteka" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Goiko nabigazioko logotipoaren izena" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "" "CSS estilo pertsonalizatuak erabiltzailearen eskura dagoen guneari aplikatu " "zaizkio" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Gunearen informazioa" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Erakutsi iragazki-koadroa erabiltzaile-zerbitzuetarako orriaren goialdean " "edo behean" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Erabiltzaile-zerbitzu minimoak behar dira iragazkia erakusteko" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Gaitu eginbide esperimentalak. KONTUZ ERABILI!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Orrialde bakoitzeko elementu kopurua administrazio-tauletan" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Administratzaile interfazera sartzeko baimendutako ostalari/sare fidagarrien " "zerrenda" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Gaitu VNC menua erabiltzailearen zerbitzuetarako" @@ -3539,7 +3545,7 @@ msgid "Base name for clones from this service" msgstr "Zerbitzu honetako klonen oinarrizko izena" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Izen luzeera" @@ -3576,10 +3582,12 @@ msgstr "" msgid "Remove found duplicates" msgstr "Kendu aurkitu diren bikoiztuak" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Aktibo badago, zerbitzu hauetarako bikoiztuak diren vApps aurkitu egingo dira" +"Aktibatuta badago, aurkitutako bikoiztutako VApp-ak kendu egingo dira " +"zerbitzu honetarako" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3742,124 +3750,124 @@ msgstr "Ezin da LDAP zerbitzariarekin kontaktatu" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} egun {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Zenbakizkoa" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} {1} baino handiagoa edo handiagoa izan behar du" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} {1} baino txikiagoa edo txikiagoa izan behar du" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} karaktere baliogabeak ditu" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} ez da baliozko ostalari-izen bat: ostalari-izenen gehienezko luzera " "gainditu da." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} ez da baliozko ostalari-izena: (domeinuak ez dira onartzen)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} ez da baliozko ostalari-izena: (karaktere baliogabeak)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} ez da baliozko URL bat: gehienezko luzera gainditzen du." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} ez da baliozko IPv4 helbide bat" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} ez da baliozko IPv6 helbide bat" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} ez da baliozko IPv4 edo IPv6 helbide bat" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} bidearen gehienezko luzera gainditzen du." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} ez da baliozko windows bide bat" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} ez da balio unix bide bat" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} ez da baliozko bide bat" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} ez da baliozko host:portu bikotea" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} ez da baliozko MAC helbide bat" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} ez da baliozko MAC barrutia" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "Helbide elektronikoa luzeegia da" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "Helbide elektronikoak ez du balio" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "Oinarri-izena ez da baliozko ostalari-izen baterako" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "Izenaren oinarria gehi luzera 0 baino handiagoa izan behar da" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "Basename plus luzeraren luzera ez da 15 baino handiagoa izan behar" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "Makinaren izena ezin da zenbaki bakarra izan" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "JSON datu baliogabeak" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Ziurtagiria hutsik dago" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Ziurtagiri baliogabea" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "Gako pribatua hutsik dago" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Gako pribatu baliogabea" @@ -4048,35 +4056,50 @@ msgstr "" "OTP sartu behar duen jakiteko. Hautatzen bada, erabiltzaile guztiek OTP " "sartu beharko dute, beraz, autentifikazio-urratsak saltatzen dira." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "" +"Bidali erabiltzaile-izena soilik (domeinurik gabe) erradio zerbitzariari" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Hautatu ezean, erabiltzaile-izena erradio zerbitzarira bidaliko da. " +"Hautatzen bada, domeinuaren zatia erabiltzaile-izenetik kenduko da erradio " +"zerbitzarira bidali aurretik." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "OTP kodea" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Mesedez, sartu OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Radius OTP konexio-errorea" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "OTP kodea baliogabea" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS HTTP bidez" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "SMS sinpleak MFA bidaltzen ditu HTTP/HTTPS erabiliz" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "SMSak bidaltzeko URL eredua" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4088,16 +4111,16 @@ msgstr "" "beharreko kodea * {telefonoa/+telefonoa} - telefono-zenbakia * {erabiltzaile-" "izena} - erabiltzaile-izena * {justUsername} - erabiltzaile-izena @ gabe...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "HTTP zerbitzaria" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ez ikusi ziurtagiri-erroreei" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4105,19 +4128,19 @@ msgstr "" "Hautatzen bada, zerbitzariaren ziurtagiria ez ikusi egingo da. Hau " "erabilgarria da zerbitzariak berez sinatutako ziurtagiria erabiltzen badu." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "SMSak bidaltzeko metodoa" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "SMSak bidaltzeko metodoa" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "SMS eskaeren goiburuak" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4131,11 +4154,11 @@ msgstr "" "izena} - erabiltzaile-izena * {justUsername} - erabiltzaile-izena @ gabe.... " "Goiburuak sartuta daude \"Goiburua: balioa\" forma. (komatxorik gabe)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "SMS POST/PUT bidaltzeko parametroak" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4149,51 +4172,51 @@ msgstr "" "zenbakia * {erabiltzaile-izena} - erabiltzaile-izena * {justUsername} - " "erabiltzaile-izena @ gabe...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "SMS kodeketa" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "SMSetarako kodeketa" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "SMS autentifikazio metodoa" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "HTTP oinarrizko autentifikazioa" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "HTTP autentifikazioa" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "SMS autentifikazioaren erabiltzailea edo tokena" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "SMS autentifikaziorako erabiltzailea edo tokena" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "SMS autentifikazio pasahitza" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "SMS autentifikaziorako pasahitza" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "SMS erantzuna OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4201,39 +4224,39 @@ msgstr "" "SMS erantzunerako erregulazioa Ados. Hutsik badago, erantzuna ontzat joko da " "egoera kodea 200 bada." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "HTTP Erantzuna" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "SMS erantzunaren errore ekintza" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "SMSen erantzunaren errorearen ekintza" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "Baimendu erabiltzaileari saioa hasteko bere IP sareen zerrendan badago" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "Ukatu erabiltzaileari saioa hasteko bere IP sareen zerrendan badago" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "Ezin izan da SMS bidaltzean" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "SMS erantzunaren errorea" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "MFA kodea" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 msgid "Check your phone. You will receive an SMS with the verification code" msgstr "Egiaztatu zure telefonoa. SMS bat jasoko duzu egiaztapen-kodearekin" @@ -4281,15 +4304,15 @@ msgstr "Baliozko kode kopurua egungoaren aurretik eta ondoren" msgid "Authentication Code" msgstr "Autentifikazio Kodea" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Sartu zure autentifikazio-kodea" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "Kodea dagoeneko erabiltzen da. Itxaron minutu bat eta saiatu berriro." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Kode baliogabea" @@ -4573,21 +4596,21 @@ msgstr "Kontu bat eman behar da domeinuko makinak gehitzeko!" msgid "Must provide a password for the account!" msgstr "Konturako pasahitza eman behar duzu!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux SE kudeatzailea" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Linux makina birtualak kontrolatzeko kudeatzailea" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Max.Idle denbora" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4595,12 +4618,12 @@ msgstr "" "Gehienezko denbora inaktiboan (segundotan) saioa automatikoki itxi egiten da " "erabiltzaileari (<= 0 esan nahi du ez duela denbora inaktiboik)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Egutegiaren amaiera" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4674,22 +4697,22 @@ msgstr "" "Gehienezko denbora inaktiboan (segundotan) saioa automatikoki itxi egiten da " "erabiltzaileari (<= 0 ez da inaktibo denbora mugarik)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "Windows-entzako \"UDS Actor\"-a" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "Kudeatu gabeko leihoetarako makina UDS aktorea. Makina estatikoetarako " "BAKARRA erabiltzen da." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Oinarrizko OS kudeatzailea" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Os Manager leiho makinak kontrolatzeko domeinurik gabe." @@ -5045,21 +5068,21 @@ msgstr "Pool-en erabilera egun batean" msgid "Pools usage counters for an specific day" msgstr "Pool erabilera egun jakin bateko kontulariak" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Orduko zerbitzuak" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Ordu" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Zerbitzuen erabilera txostena egun baterako" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Zerbitzuaren erabilera txostena" @@ -5215,7 +5238,7 @@ msgstr "" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5231,22 +5254,22 @@ msgstr "Eskualde lehenetsia" msgid "Default region to use for connecting to EC2" msgstr "EC2ra konektatzeko erabiliko den lehenetsitako eskualdea" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "AWS lehendik dagoen AMI zerbitzua" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Zerbitzu honek AWS VDIrako sarbidea eskaintzen du lehendik dagoen AMI batean " "oinarrituta" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "Erabiltzaile baten zain exekutatzen jarraitzeko beharrezko VM kopurua" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5254,15 +5277,15 @@ msgstr "Erabiltzaile baten zain exekutatzen jarraitzeko beharrezko VM kopurua" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "Erabiltzeko zain gelditu beharreko VMen kopurua" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "Zerbitzu honen AMI oinarria" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5271,37 +5294,37 @@ msgstr "Zerbitzu honen AMI oinarria" msgid "Region" msgstr "Lurralde" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Zerbitzu honen eskualdea" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Instantzia mota" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Idatzi AMItik sortutako instantziaren kasuan." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Gako bikotea" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Makina honetarako erabili beharreko gako bikotea" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "Zerbitzu honetako instantziaren VPC" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5309,19 +5332,19 @@ msgstr "Zerbitzu honetako instantziaren VPC" msgid "Network" msgstr "Sarea" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Azpisarea" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Zerbitzu honetako instantzien azpisarea" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Segurtasun taldeak" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Zerbitzu honetako instantzien segurtasun taldeak" @@ -5340,7 +5363,7 @@ msgid "Service region" msgstr "Zerbitzu lurraldea" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5348,7 +5371,7 @@ msgid "After logout" msgstr "Saioa amaitu ondoren" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5356,7 +5379,7 @@ msgid "Select the action to be performed after the user logs out." msgstr "Hautatu erabiltzailea saioa amaitu ondoren egin beharreko ekintza." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5383,7 +5406,7 @@ msgid "Obtained from subscriptions" msgstr "Harpidetzak lortu dira" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Konexio-zerbitzariaren denbora-muga segundotan" @@ -5490,59 +5513,61 @@ msgstr "Azure makina finkoak" msgid "Azure Services based on fixed machines." msgstr "Makina finkoetan oinarritutako Azure Zerbitzuak." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Gelditu Makina (eta desesleitu egiten du)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Google Cloud Platform hornitzailea" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Google Cloud Platform Compute Engine-rekin konexioa eskaintzen du" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Bezeroaren posta elektronikoa" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Zerbitzu-kontuaren bezeroaren posta elektronikoa" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "Token URIa" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "Token URLa, Google-k emandakoaren arabera (lehenetsia Google Cloud-entzat da)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Gako pribatua" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Zerbitzu-konturako gako pribatua" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "Proiektuaren IDa" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Google Cloud-erako proiektuaren IDa" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Eskualde hobetsia" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Zerbitzu berrietarako eskualde hobetsia" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Google Cloud Hornitzailea" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Google Cloud Compute Engine-ra konexioa eskaintzen du" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Konexioa arrakastatsua da" @@ -5839,7 +5864,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "Vcpus kopurua (\"-1-k\" jatorrizko makina vcpus \"esan nahi du)" @@ -5849,7 +5873,6 @@ msgid "Cores per VCPU" msgstr "VCPU bakoitzeko muinak" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Vcpus kopurua (\"-1 esan nahi du\" mantendu jatorrizko makinaren nukleoak " @@ -5873,7 +5896,6 @@ msgid "No" msgstr "Ez" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "VCPU bakoitzeko Nukleoak eta VCPUS kopurua behar dira" @@ -5941,12 +5963,34 @@ msgstr "Nutanix Acropolis Zerbitzua" msgid "Nutanix Acropolis based service" msgstr "Nutanix Acropolis-en Oinarrituriko Zerbitzua" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"vcpus kopurua (zero balioak \"mantendu jatorrizko makina vcpus\" esan nahi " +"du)" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"vcpus kopurua (zero balioak \"mantendu jatorrizko makina nukleoak vcpu " +"bakoitzeko\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "Makinen sarea (sortutako makina bakoitza sare honetara atxikiko da)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"VCPU bakoitzeko nukleoak eta VCPUS kopurua 0 baino handiagoak izan behar dira" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Nutanix makina finkoak" @@ -6246,23 +6290,23 @@ msgstr "Base template" msgid "Service base template" msgstr "Zerbitzuaren oinarrizko txantiloia" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Makina izenak" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Makinaren klonak oinarrizko izena" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Makina horien izenetarako zati numerikoaren tamaina" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Autentikazio errorea" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6557,15 +6601,19 @@ msgid "Static Single IP" msgstr "IP estatiko bakarra" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" msgstr "" -"Zerbitzu honek IP bidez emandako POWERED-ON Machine sarbidea eskaintzen du" +"Zerbitzu honek POWERED-ON Machinerako sarbidea ematen du IP bidez. (WOL " +"konfigura dezakezu makina pizteko)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "Ostalariaren IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6573,11 +6621,11 @@ msgstr "" "Konektatzeko zerbitzariaren IP edo FQDN. MAC helbidea sar dezake \";\"-rekin " "bereizita IP/Ostalari izenaren ondoren" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Erabilitako zerbitzari baliogabea: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Erabilitako MAC helbide baliogabea: \"{}\"" @@ -6956,35 +7004,35 @@ msgstr "RDS Platform RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "RDS Platform RemoteAPP-ean oinarritutako zerbitzua" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Aplikazio bidea" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Zerbitzu honen aplikazioaren bide osoa erakutsiko da" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Aplikazioen parametroak" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Aplikazioak parametroak, komando lerroan pasatuko diren bezala" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Hasi bidea" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Itxaron prozesu abiarazleak" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -6992,7 +7040,7 @@ msgstr "" "Aktibo badago, RDS Aktorea aplikazioa eta abiarazitako prozesuak amaitu arte " "itxaron egingo da saioa amaitu aurretik" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Baliozko aplikazio bide bat behar da" @@ -7275,28 +7323,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Datazio zentro birtuala" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Aktibo badago, zerbitzu hauetarako bikoiztuak diren vApps aurkitu egingo dira" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "katalogoa" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "vApps iturrien katalogoa" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp Txantiloia" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Zerbitzuaren txantiloia vApp" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Sare nagusia" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7304,7 +7357,7 @@ msgstr "" "Interfaze bat baino gehiago aurkitzen bada makinan, erabili sareko lehen " "sarea nagusia den bezala" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Bakarrik VApp plantillak 1 VM-rekin onartzen dira" @@ -8877,18 +8930,18 @@ msgstr "Binary appimage ARMHF Linux bezeroa (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Generic .tar.gz Linux bezeroa" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Autentikatzaileak ez du informaziorik eman." -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} egun" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} ordu" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Barne akatsa" diff --git a/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po b/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po index 874bfa24d..3fecda9a6 100644 --- a/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2015 # Lanmedia Comunicaciones , 2016-2017,2020 # Naroa Uriarte , 2017 @@ -30,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Basque (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.po b/server/src/uds/locale/fr/LC_MESSAGES/django.po index aefcdb7ff..02364574c 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/django.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Abdel Baaddi , 2016,2018 # Adolfo Gómez , 2012 # Andrés Schumann , 2023 @@ -30,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier Gomez , 2023\n" "Language-Team: French (http://app.transifex.com/openuds/openuds/language/" @@ -60,11 +61,11 @@ msgid "Name" msgstr "Nom" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -80,45 +81,45 @@ msgstr "Marque de temps" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Tags" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Nom de la pool" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nom d'utilisateur" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "En cours d'exécution" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Mises en chantier" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Se termine" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Écoulé" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Timemark écoulé" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Utilisation de {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Usages actuels" @@ -190,7 +191,7 @@ msgstr "ID" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -258,9 +259,9 @@ msgstr "" msgid "Display" msgstr "Affichage" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -290,32 +291,32 @@ msgstr "" "L'étiquette ne doit contenir que des lettres, des chiffres ou des " "symboles : - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Nom de la règle" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Se répète" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Chaque" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Durée" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Élément existe déjà (erreur de clé en double)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Règles de {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Règles actuelles" @@ -378,7 +379,7 @@ msgstr "Politique" msgid "HA Policy" msgstr "Politique de haute disponibilité" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Services aux utilisateurs" @@ -490,7 +491,7 @@ msgstr "Date de création" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -681,7 +682,7 @@ msgstr "Service providers" msgid "Status" msgstr "Statut" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -701,7 +702,7 @@ msgstr "Rapports disponibles" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -849,61 +850,61 @@ msgstr "Géré" msgid "Unmanaged" msgstr "Non géré" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Standard" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Le jeton de service semble être utilisé par un autre service. Veuillez en " "sélectionner un nouveau." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Erreur d'entrée : {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Services de {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Services actuels" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Nom du service" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pools de services" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Type de nombre maximal de services" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservateur" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Méthode de comptage des services" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Type de service pris en compte pour calculer si MAX est atteint" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Avec Erreurs" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Bien" @@ -1147,7 +1148,7 @@ msgstr "Tunnels" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1173,6 +1174,12 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Port où le tunnel est visible par les utilisateurs" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"Impossible de supprimer un groupe de serveurs de tunnel avec des transports " +"attachés" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1252,7 +1259,7 @@ msgid "Current users" msgstr "Utilisateurs actuels" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1383,24 +1390,24 @@ msgstr "" "Réseaux associés. Si Aucun réseau n'est sélectionné, cela signifie " "\"tous les réseaux\"." -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Requête non valide" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Méthode introuvable {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Élément introuvable" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Accès refusé" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Opération non prise en charge" @@ -1446,7 +1453,7 @@ msgstr "" "(utilisation USER@DOMAIN.Forme de DOM pour cela)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1506,24 +1513,27 @@ msgstr "" "\"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Serveurs de sauvegarde" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"S'il n'est pas vide, cet hôte sera utilisé au cas où le serveur hôte " -"principal ne serait pas accessible" +"Si elle n'est pas vide, cette liste de domain=backup1,backup2,... sera " +"utilisée comme serveurs de sauvegarde pour les domaines. Si le domaine n'" +"est pas spécifié, les serveurs de sauvegarde seront utilisés pour tous les " +"domaines." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Vérifier SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1532,24 +1542,24 @@ msgstr "" "Si coché, la vérification SSL sera appliquée. Sinon, la vérification SSL " "sera désactivée" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificat" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificat à utiliser pour la vérification SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Liste de traduction de l'hôte" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1557,11 +1567,11 @@ msgstr "" "Si elle n'est pas vide, cette liste de paires clé=valeur sera utilisée " "pour traduire le nom d'hôte d'AD en un nom d'hôte résoluble." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignorer les domaines" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1569,11 +1579,11 @@ msgstr "" "Si elle n'est pas vide, cette liste de domaines sera ignorée lors de la " "recherche d'utilisateurs. Valeurs séparées par des virgules." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Rediriger à l'expiration" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1581,20 +1591,20 @@ msgstr "" "S'il n'est pas vide, si le mot de passe de l'utilisateur est " "expiré, sera automatiquement redirigé vers cette URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Authentificateur de Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "S'authentifier sur Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1602,53 +1612,53 @@ msgstr "" "Impossible de se connecter à un serveur AD. Vérifiez votre configuration " "(serveur, certificats ssl, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Nom d'utilisateur introuvable" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Groupe introuvable" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Trop de résultats, être plus spécifique" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Erreur de test de connexion" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "La connexion semble incorrecte, veuillez la vérifier" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Connexion params semblent correctes, le test a été correctement exécutée" @@ -1702,7 +1712,7 @@ msgstr "" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Procuration" @@ -1769,23 +1779,23 @@ msgstr "" "Ce type d'authentificateur ne prend pas en charge les espaces blancs sur " "le champ NAME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Utilisateur non trouvé" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Exception d’authentificateur :" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Erreur de connexion : " -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "" "Params de connexion semble correcte, le test a été correctement exécuté" @@ -1812,7 +1822,7 @@ msgstr "Nom d'utilisateur avec des privilèges de lecture sur l'eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1823,13 +1833,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Délai en secondes de la connexion à LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Attribut MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Attribut d'où extraire le code MFA" @@ -1842,28 +1852,28 @@ msgstr "eDirectory authentificateur" msgid "Authenticate against eDirectory" msgstr "S'authentifier auprès d'eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Erreur de connexion" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Erreur de connexion: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "Base de recherche LDAP est incorrect" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1871,14 +1881,14 @@ msgstr "" "Attribut d'id utilisateur LDAP semble incorrect (aucun utilisateur trouvée " "par qui attribut)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "L'attribut du groupe Ldap semble incorrect (aucun groupe trouvé par cet " "attribut)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2114,27 +2124,27 @@ msgstr "Identifiant NAS" msgid "NAS Identifier for Radius Server" msgstr "Identifiant NAS pour le serveur Radius" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Préfixe d'application pour les attributs de classe" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "" "Préfixe d'application pour filtrer les groupes à partir de l'" "attribut \"Classe\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Groupe mondial" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" 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:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Échec de la connexion au serveur Radius" @@ -2586,13 +2596,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Authentificateur LDAP simple" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "La classe du groupe LDAP semble être incorrecte (aucun groupe trouvé par " "cette classe)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2600,7 +2610,7 @@ msgstr "" "Attribut d'id groupe LDAP semble incorrect (aucun groupe trouvée par cet " "attribut)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2608,7 +2618,7 @@ msgstr "" "La classe d'utilisateurs LDAP ou l'ID utilisateur attr est " "probablement incorrect (aucun utilisateur ne remplissant les deux conditions)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2616,7 +2626,7 @@ msgstr "" "La classe du groupe LDAP ou l'id du groupe attr est probablement faux " "(impossible de trouver un groupe avec les deux conditions)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "" "Impossible de localiser un groupe avec l'attribut d'appartenance " @@ -2630,7 +2640,7 @@ msgstr "Administrateur système" msgid "Forbidden" msgstr "Interdit" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Accès tenté à partir d'une source non autorisée" @@ -2744,27 +2754,27 @@ msgstr "Nettoyer le cache L2" msgid "Custom message on launchers" msgstr "Message personnalisé sur les lanceurs" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Déjà publié. Attendez une publication antérieure de terminer et réessayez" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "Le service est en mode maintenance et les nouvelles publications ne sont pas " "autorisées" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Ne peut annuler la publication non courante" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Ne peut annuler la publication de publication non utilisable" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "" "Ne peut annuler la publication des publications avec services en processus" @@ -2789,7 +2799,7 @@ msgstr "Le serveur est en mode maintenance" msgid "Server is restrained" msgstr "Le serveur est restreint" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Nombre maximum de services utilisateur atteint pour ce {}" @@ -2806,7 +2816,7 @@ msgstr "" msgid "The requested service is restrained" msgstr "Le service demandé est restreint" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2814,15 +2824,15 @@ msgstr "" "Service non valide. Le service n'est pas disponible en ce moment. SVP, " "essayez plus tard" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Aucun transport approprié n'a été trouvé" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "Le transport demandé {} n'est pas valide pour {}." -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "Le service n'est pas accessible depuis cet appareil" @@ -2834,11 +2844,11 @@ msgstr "Nombre de secondes pour ignorer les messages répétés" msgid "Base Notifier" msgstr "Notificateur de base" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Autoriser la connexion de l'utilisateur" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Refuser la connexion de l'utilisateur" @@ -2858,7 +2868,7 @@ msgstr "" msgid "Base MFA" msgstr "AMF de base" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Code MFA invalide" @@ -2866,7 +2876,7 @@ msgstr "Code MFA invalide" msgid "No check method provided." msgstr "Aucune méthode de vérification fournie." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Aucun lien pour vérifier la méthode n'est implémentée." @@ -2914,12 +2924,12 @@ msgstr "Machine de base" msgid "Base machine for this service" msgstr "Machine de base pour ce service" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Jeton de service" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2928,23 +2938,32 @@ msgstr "" "Jeton de service qui sera utilisé par les acteurs pour communiquer avec le " "service. Laissez vide pour une affectation persistante." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Machines" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Machines pour ce service" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Assignation aléatoire des machines" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"S'il est actif, l'UDS attribuera les machines de manière aléatoire, " +"au lieu de linéaire." + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Utiliser des instantanés" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2953,34 +2972,24 @@ msgstr "" "existe pas déjà) avant d'accéder à une machine et de le restaurer après " "utilisation." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Type d'instantané" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Aucun instantané" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Récupérer un instantané et arrêter la machine" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Récupérer un instantané et démarrer la machine" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Assignation aléatoire des machines" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"S'il est actif, l'UDS attribuera les machines de manière aléatoire, " -"au lieu de linéaire." - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3225,11 +3234,11 @@ msgstr "Machine" msgid "Config" msgstr "Configuration" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Délai d'expiration de la session en heures après la publication" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3238,7 +3247,7 @@ msgstr "" "vitesse de génération du cache mais chargera également les fournisseurs de " "services" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3248,7 +3257,7 @@ msgstr "" "plus élevé, la tâche déployée se terminera plus tôt, mais elle donnera plus " "de charge au système global" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3258,7 +3267,7 @@ msgstr "" "nombre de threads plus élevé, la tâche déployée se terminera plus tôt, mais " "elle donnera plus de charge au système global" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3267,34 +3276,34 @@ msgstr "" "« supprimées », le cache et les machines attribuées par l'utilisateur. " "Le temps est en secondes" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Temps nécessaire pour conserver les éléments « état d'information » " "avant de les supprimer, en secondes" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Nombre de services pour lancer la suppression par exécution du nettoyeur de " "services" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Suppression Temps de vérification du cache, des publications et des services " "déployés, en secondes" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Nom d'utilisateur superutilisateur" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Mot de passe superutilisateur" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3304,11 +3313,11 @@ msgstr "" "Web. Une fois configuré un authentificateur, il est recommandé de désactiver " "cette option" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Activer les modules de sécurité améliorés" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3316,7 +3325,7 @@ msgstr "" "Mode de sécurité maximale appliqué (mode Zero-Trust). Aucune redirection de " "mot de passe ne sera autorisée si ce mode est défini." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3324,43 +3333,43 @@ msgstr "" "Combien de temps le service utilisateur doit-il rester inutilisé avant que " "le gestionnaire du système d'exploitation envisage de le supprimer ?" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Délai entre les vérifications des services utilisateur inutilisés par les " "gestionnaires du système d'exploitation" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "" "Nombre maximum de connexions avant de bloquer un compte pendant un certain " "temps" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Temps de blocage en secondes pour un utilisateur ayant trop d'échecs de " "connexion" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Bloquer l'IP en cas d'échec de connexion" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Effectuer l'exécution automatique du service si un seul service" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Rediriger HTTP vers HTTPS lors de la connexion à UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Redirige la page de connexion vers la balise utilisée lors de la connexion " "si elle est active." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3369,7 +3378,7 @@ msgstr "" "fonctionnel » avant qu'il ne soit considéré comme « en échec » et " "supprimé" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3377,27 +3386,27 @@ msgstr "" "Temps maximum nécessaire pour qu'un service soit « entièrement " "supprimé » avant qu'il ne soit considéré comme « en échec » et purgé" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Nombre maximal de journaux pour chaque élément d'administration prenant " "en charge les journaux" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Nombre maximal d'entrées de journaux pour les journaux UDS généraux (0 = " "illimité, à utiliser avec précaution)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Il est temps de restreindre un service utilisateur au cas où il donnerait " "des erreurs à un moment donné" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3405,45 +3414,45 @@ msgstr "" "Nombre d'erreurs qui doivent se produire dans \"restrainTime\" pour " "restreindre un service utilisateur" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Durée des statistiques, en jours" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Fréquence de collecte des statistiques en secondes. La valeur par défaut est " "de 4 heures (14400 secondes)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Nombre maximum de temps à accumuler sur une exécution. La valeur par défaut " "est 7 (1 semaine)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Si la connexion est interdite, affichant les authentifiants" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Notifier l'utilisateur de l'existence d'une nouvelle version " "d'un service lors d'une nouvelle publication" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "" "Réseaux ou hôtes considérés comme « de confiance » pour l'UDS (tunnels, " "etc...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "IP ou réseaux autorisés à transmettre des requêtes (comme des proxys)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3451,13 +3460,13 @@ msgstr "" "Autoriser les clients à notifier leur propre adresse IP (si définie) ou " "utiliser toujours l'adresse IP extraite de la demande" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "" "S'il y a un proxy devant nous (c'est-à-dire HAProxy, ou n'" "importe quel NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3466,86 +3475,86 @@ msgstr "" "où ce n'est que lorsque les utilisateurs connectés atteignent 0 qu'" "ils sont considérés comme \"déconnectés\"." -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "" "Activer/Désactiver le blocage IP de la détection des attaques d'acteurs" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Durée maximale de la session pour l'administrateur" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Durée maximale de la session pour l'utilisateur" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Temps de rechargement de la page (ancien)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Message d'erreur personnalisé lors de la limitation par calendrier" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "" "Si vous convertissez le nom d'utilisateur en minuscule lors des " "connexions" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "ID UDS global (commun à tous les serveurs du même cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Nom d'affichage du site" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Informations sur les droits d'auteur du site" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Lien de copyright du site" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Nom du logo de la barre de navigation supérieure" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Styles CSS personnalisés appliqués au site accessible aux utilisateurs" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Informations sur le site" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Afficher la zone de filtre pour les services utilisateur en haut ou en bas " "de la page" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Services utilisateur minimaux nécessaires pour afficher le filtre" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Activez les fonctionnalités expérimentales. UTILISER AVEC PRÉCAUTION!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Nombre d'éléments par page dans les tableaux d'administration" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Liste des hôtes/réseaux de confiance autorisés à accéder à l'interface " "d'administration" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Activer le menu VNC pour les services utilisateur" @@ -3602,7 +3611,7 @@ msgid "Base name for clones from this service" msgstr "Nom de base pour les clones de ce service" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Longueur du nom" @@ -3638,10 +3647,12 @@ msgstr "Nombre maximum de services autorisés (0 signifie aucune limite)" msgid "Remove found duplicates" msgstr "Supprimer les doublons trouvés" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"S’il est activé, les doublons trouvés vApps pour ce service seront supprimés" +"Si cette option est active, les doublons de VApps trouvés pour ce service " +"seront supprimés" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3806,125 +3817,125 @@ msgstr "Impossible de contacter le serveur LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} jours {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numérique" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} doit être supérieure ou égale à {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} doit être inférieure ou égale à {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} contient des caractères non valides" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} n'est pas un nom d'hôte valide : longueur maximale du nom d'" "hôte dépassée." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} n'est pas un nom d'hôte valide : (domaines non autorisés)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} n'est pas un nom d'hôte valide : (caractères invalides)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} n'est pas une URL valide : dépasse la longueur maximale." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} n'est pas une adresse IPv4 valide" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} n'est pas une adresse IPv6 valide" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} n'est pas une adresse IPv4 ou IPv6 valide" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} dépasse la longueur maximale du chemin." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} n'est pas un chemin Windows valide" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} n'est pas un chemin Unix valide" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} n'est pas un chemin valide" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} n'est pas une paire hôte:port valide" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} n'est pas une adresse MAC valide" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} n'est pas une plage MAC valide" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "L'adresse e-mail est trop longue" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "l'adresse email n'est pas valide" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "Le nom de base n'est pas valide pour un nom d'hôte" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "La longueur du nom de base plus la longueur doit être supérieure à 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "" "La longueur du nom de base plus la longueur ne doit pas être supérieure à 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "Nom de l'ordinateur ne peut pas être uniquement des nombres" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Données JSON invalides" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Le certificat est vide" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Certificat invalide" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "La clé privée est vide" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Clé privée invalide" @@ -4114,35 +4125,50 @@ msgstr "" "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:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "" +"Envoyer uniquement le nom d'utilisateur (sans domaine) au serveur Radius" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Si cette case n'est pas cochée, le nom d'utilisateur sera envoyé tel " +"quel au serveur Radius. Si cette case est cochée, la partie domaine sera " +"supprimée du nom d'utilisateur avant de l'envoyer au serveur Radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "Code OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Veuillez entrer OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Erreur de connexion Radius OTP" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Code OTP invalide" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS via HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Envoi de SMS simple MFA via HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Modèle d'URL pour l'envoi de SMS" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4155,16 +4181,16 @@ msgstr "" "téléphone * {username} - le nom d'utilisateur * {justUsername} - le nom " "d'utilisateur sans @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "Serveur HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignorer les erreurs de certificat" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4172,19 +4198,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:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Méthode d'envoi de SMS" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Méthode d'envoi de SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "En-têtes pour les demandes SMS" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4199,11 +4225,11 @@ msgstr "" "utilisateur sans @.... Les en-têtes sont dans sous la forme \"En-tête : " "valeur\". (sans les guillemets)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Paramètres pour l'envoi de SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4217,51 +4243,51 @@ msgstr "" "numéro de téléphone * {username} - le nom d'utilisateur * {justUsername} " "- le nom d'utilisateur sans @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Encodage SMS" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Encodage pour SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Méthode d'authentification par SMS" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Authentification de base HTTP" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "Authentification de résumé HTTP" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "Authentification HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Utilisateur ou jeton d'authentification par SMS" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Utilisateur ou jeton pour l'authentification par SMS" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Mot de passe d'authentification SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Mot de passe pour l'authentification par SMS" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Réponse SMS OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4269,43 +4295,43 @@ msgstr "" "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:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "Réponse HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Action d'erreur de réponse SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Action en cas d'erreur de réponse SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "Autoriser l'utilisateur à se connecter si son IP figure dans la liste " "des réseaux" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "Refuser à l'utilisateur de se connecter si son adresse IP figure dans la " "liste des réseaux" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "L'envoi du SMS a échoué" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Erreur de réponse SMS" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Code MFA" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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" @@ -4355,15 +4381,15 @@ msgstr "Nombre de codes valides avant et après celui en cours" msgid "Authentication Code" msgstr "code d'identification" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Entrez votre code d'authentification" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "Le code est déjà utilisé. Attendez une minute et réessayez." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Code invalide" @@ -4649,21 +4675,21 @@ msgstr "Doit fournir un compte pour ajouter des ordinateurs au domaine !" msgid "Must provide a password for the account!" msgstr "Doit fournir un mot de passe pour le compte !" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "OS Manager Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager pour contrôler les machines virtuelles Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Temps d'inactivité maximal" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4672,12 +4698,12 @@ msgstr "" "automatiquement fermée à l'utilisateur (<= 0 signifie pas de temps " "d'inactivité maximum)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Déconnexion du calendrier" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4752,22 +4778,22 @@ msgstr "" "automatiquement fermée à l'utilisateur (<= 0 signifie aucun temps " "d'inactivité maximum)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "Acteur UDS pour les machines windows" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "Acteur UDS pour les machines Windows non gérées. Utilisé UNIQUEMENT pour les " "machines statiques." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "OS MAnager basique pour Windows" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "OS Manager basique pour Windows sans domaine" @@ -5126,21 +5152,21 @@ msgstr "Utilisation des Pools sur une journée" msgid "Pools usage counters for an specific day" msgstr "Compteurs d’utilisation de Pools pour une journée spécifique" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Services par heure" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Heure" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Rapport d'utilisation des services pour un jour" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Rapport d'utilisation du service" @@ -5297,7 +5323,7 @@ msgstr "" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5313,23 +5339,23 @@ msgstr "Région par défaut" msgid "Default region to use for connecting to EC2" msgstr "Région par défaut à utiliser pour la connexion à EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Service AMI existant AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Ce service fournit un accès à AWS VDI basé sur une AMI détenue existante" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "" "Nombre de VMs souhaités poursuivre son exécution en attente pour un " "utilisateur" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5339,15 +5365,15 @@ msgstr "" "Nombre de machines virtuelles souhaitées à arrêter en attente d'" "utilisation" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "SUIS-JE" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "AMI de base pour ce service" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5356,37 +5382,37 @@ msgstr "AMI de base pour ce service" msgid "Region" msgstr "Région" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Région pour ce service" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Type d'instance" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Tapez pour les instances créées à partir de l'AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Paire de clés" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Paire de clés à utiliser pour cette machine" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC pour les instances de ce service" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5394,19 +5420,19 @@ msgstr "VPC pour les instances de ce service" msgid "Network" msgstr "Réseau" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Sous-réseau" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Sous-réseau pour les instances de ce service" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Groupes de sécurité" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Groupes de sécurité pour les instances de ce service" @@ -5425,7 +5451,7 @@ msgid "Service region" msgstr "Service de la région" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5433,7 +5459,7 @@ msgid "After logout" msgstr "Après la déconnexion" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5443,7 +5469,7 @@ msgstr "" "utilisateur." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5470,7 +5496,7 @@ msgid "Obtained from subscriptions" msgstr "Obtenu à partir des abonnements" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Timeout en secondes des connexions au serveur" @@ -5577,60 +5603,62 @@ msgstr "Machines fixes Azure" msgid "Azure Services based on fixed machines." msgstr "Services Azure basés sur des machines fixes." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Arrêter la machine (et la libérer)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Fournisseur de la plateforme Google Cloud" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Fournit une connexion à Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Courriel du client" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "E-mail client pour le compte de service" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI du jeton" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL du jeton, telle que fournie par Google (la valeur par défaut est pour " "Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Clé privée" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Clé privée pour le compte de service" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "ID du projet" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "ID de projet pour Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Région préférée" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Région privilégiée pour les nouveaux services" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Fournisseur de services cloud Google" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Fournit une connexion à Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Connexion réussie" @@ -5936,7 +5964,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "" "Nombre de vcpus (\"-1 signifie\" conserver le vcpus de la machine d'" @@ -5948,7 +5975,6 @@ msgid "Cores per VCPU" msgstr "Cœurs par processeur virtuel" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Nombre de vcpus (\"-1 signifie\" conserver les cœurs de machine d'" @@ -5972,7 +5998,6 @@ msgid "No" msgstr "Non" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Les cœurs par VCPU et le nombre de VCPUS sont requis" @@ -6040,6 +6065,22 @@ msgstr "Service Nutanix Acropolis " msgid "Nutanix Acropolis based service" msgstr "base du service de Nutanix Acropolis " +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Nombre de processeurs virtuels (la valeur zéro signifie « conserver les " +"processeurs virtuels de la machine d'origine »)" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Nombre de vcpu (la valeur zéro signifie « conserver les cœurs de la machine " +"d'origine par vcpu »)" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " @@ -6048,6 +6089,12 @@ msgstr "" "Réseau pour les ordinateurs (toutes les machines créés seront attaché à ce " "réseau)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "" +"Le nombre de cœurs par VCPU et le nombre de VCPUS doivent être supérieurs à 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Machines fixes Nutanix" @@ -6356,23 +6403,23 @@ msgstr "Modèle de base" msgid "Service base template" msgstr "Modèle de base de service" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Noms de machines" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Nom de base des clones de cette machine" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Taille de la partie numérique pour les noms de ces machines" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Erreur d'authentification" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6677,14 +6724,19 @@ msgid "Static Single IP" msgstr "Statique IP unique" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Ce service fournit un accès aux machines sous tension par IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Ce service permet d'accéder à la machine SOUS TENSION par IP. (Vous " +"pouvez configurer WOL pour mettre la machine sous tension)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "IP de l'hôte/nom de domaine complet" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6692,11 +6744,11 @@ msgstr "" "IP ou FQDN du serveur auquel se connecter. Peut inclure une adresse MAC " "séparée par \";\" après l'adresse IP/le nom d'hôte" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Serveur non valide utilisé : \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Adresse MAC non valide utilisée : \"{}\"" @@ -7080,38 +7132,38 @@ msgstr "RDS plate-forme RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "Service basé sur RemoteAPP de la plateforme RDS" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Chemin de l'application" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Chemin d'accès complet de la demande que ce service représentera" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Paramètres de l’application" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "" "Paramètres des applications, tel qu’il est passé dans la ligne de commande" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Chemin de départ" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "" "Chemin d'accès au démarrage de l'application. (c'est-à-dire f: " "\\ exemple \\ dossier)" -#: services/RDS_enterprise/service.py:86 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Attendre le processus engendré" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7119,7 +7171,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:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Un chemin d'accès d'application valide est requis" @@ -7404,28 +7456,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Datacenter virtuel" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"S’il est activé, les doublons trouvés vApps pour ce service seront supprimés" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catalogue" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "Catalogue de sources de vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "Modèle de vApp " -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Modèle de vApp pour le service" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Réseau principal" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7433,7 +7490,7 @@ msgstr "" "Si plus d'une interface est trouvée dans la machine, utilisez la première " "trouvée sur ce réseau comme principale" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Seuls les modèles de vApp avec 1 VM sont autorisés" @@ -9019,18 +9076,18 @@ msgstr "Image d'application binaire Client Linux ARMHF (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Client Linux générique .tar.gz" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Authentificateur ne fournit pas d'informations" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} journées" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} heures" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Erreur interne" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po index c639efb12..67bcc8bba 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Abdel Baaddi , 2016,2018 # Adolfo Gómez , 2012 # Andrés Schumann , 2023 @@ -30,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: French (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.po b/server/src/uds/locale/it/LC_MESSAGES/django.po index 60cabcd1d..2b9396dda 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/django.po +++ b/server/src/uds/locale/it/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2019 # Javier Gomez , 2023 # Massimo Vignone, 2020 @@ -34,7 +35,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Víctor Alonso , 2019\n" "Language-Team: Italian (http://app.transifex.com/openuds/openuds/language/" @@ -64,11 +65,11 @@ msgid "Name" msgstr "Nome" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -84,45 +85,45 @@ msgstr "Marca temporale" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "tag" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Nome del pool" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nome utente" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "In esecuzione" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Inizio" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Fine" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "trascorso" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Tempo trascorso" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Usi di {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Usi correnti" @@ -194,7 +195,7 @@ msgstr "Id" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -262,9 +263,9 @@ msgstr "" msgid "Display" msgstr "Display" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -292,32 +293,32 @@ msgstr "Affina la tua richiesta" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "L'etichetta deve contenere solo lettere, numeri o simboli: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Nome della regola" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Ripetizioni" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Ogni" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Durata" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "L'elemento esiste già (errore chiave duplicata)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Regole di {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Regole attuali" @@ -380,7 +381,7 @@ msgstr "Politica" msgid "HA Policy" msgstr "Policy HA" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Servizi utente" @@ -491,7 +492,7 @@ msgstr "Data di creazione" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -682,7 +683,7 @@ msgstr "Service providers" msgid "Status" msgstr "Stato" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -702,7 +703,7 @@ msgstr "Rapporti disponibili" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -849,61 +850,61 @@ msgstr "Gestito" msgid "Unmanaged" msgstr "Non gestito" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Standard" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Il token di servizio sembra essere utilizzato da altri servizi. Per favore, " "selezionane uno nuovo." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Errore di input: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Servizi di {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Servizi attuali" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Nome di Servizio" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pool di servizi" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Tipo di conteggio massimo dei servizi" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservatore" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Metodo di conteggio dei servizi" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Tipo di conteggio del servizio per calcolare se viene raggiunto il MAX" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Con errori" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Ok" @@ -1141,7 +1142,7 @@ msgstr "Tunnel" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1166,6 +1167,10 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Porta in cui il tunnel è visibile agli utenti" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "Impossibile eliminare un gruppo di server tunnel con trasporti allegati" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1245,7 +1250,7 @@ msgid "Current users" msgstr "Utenti attuali" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1375,24 +1380,24 @@ msgid "Networks associated. If No network selected, will mean \"all networks\"" msgstr "" "Reti associate. Se Nessuna rete selezionata, significherà \"tutte le reti\"" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Richiesta non valida" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Metodo non trovato in {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Elemento non trovato" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Accesso negato" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Operazione non supportata" @@ -1439,7 +1444,7 @@ msgstr "" "formato USER@DOMAIN.DOM)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1498,24 +1503,26 @@ msgstr "" "dominio dell'utente) se la modalità di compatibilità non è \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Server di backup" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Se non è vuoto, questo host verrà utilizzato nel caso in cui il server host " -"principale non sia raggiungibile" +"Se non è vuoto, questo elenco domain=backup1,backup2,... verrà utilizzato " +"come server di backup per i domini. Se domain non è specificato, i server di " +"backup verranno utilizzati per tutti i domini." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Verifica SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1524,24 +1531,24 @@ msgstr "" "Se selezionato, verrà applicata la verifica SSL. In caso contrario, la " "verifica SSL sarà disabilitata" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificato" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificato da utilizzare per la verifica SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Elenco delle traduzioni host" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1549,11 +1556,11 @@ msgstr "" "Se non è vuoto, questo elenco di coppie chiave=valore verrà utilizzato per " "tradurre il nome host da AD in un nome host risolvibile." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignora i domini" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1561,11 +1568,11 @@ msgstr "" "Se non è vuoto, questo elenco di domini verrà ignorato durante la ricerca " "degli utenti. Valori separati da virgola." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Reindirizzamento alla scadenza" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1573,21 +1580,21 @@ msgstr "" "Se non vuoto, se la password dell'utente è scaduta, verrà reindirizzato " "automaticamente a questo URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Autenticatore Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Autentica con Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1595,49 +1602,49 @@ msgstr "" "Impossibile connettersi a nessun server AD. Controlla la tua configurazione " "(server, certificati ssl, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Nome utente non trovato" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Gruppo non trovato" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Troppi risultati, essere più specifici" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Errore durante il test della connessione" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "La connessione sembra non essere corretta, controllala" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "I parametri di connessione sembrano corretti, il test è stato eseguito " @@ -1691,7 +1698,7 @@ msgstr "Callback URL (compilato da UDS, cambiare solo se necessario!!!)" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Proxy" @@ -1753,23 +1760,23 @@ msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "" "Questo tipo di autenticatore non supporta gli spazi bianchi nel campo NOME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Utente non trovato" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Eccezione dell'autenticatore:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Errore di connessione:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "" "I parametri di connessione sembrano corretti, il test è stato eseguito " @@ -1796,7 +1803,7 @@ msgstr "Nome utente con privilegi di lettura su eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1807,13 +1814,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Timeout in secondi per la connessione a LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Attributo MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Attributo da cui estrarre il codice MFA" @@ -1826,28 +1833,28 @@ msgstr "Autenticatore eDirectory" msgid "Authenticate against eDirectory" msgstr "Autentica con eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Errore di connessione" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Errore di connessione: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "La base di ricerca Ldap non è corretta" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1855,14 +1862,14 @@ msgstr "" "L'attributo ID utente Ldap sembra non corretto (nessun utente trovato da " "tale attributo)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "L'attributo del gruppo Ldap sembra non corretto (nessun gruppo trovato " "da quell'attributo)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2093,27 +2100,27 @@ msgstr "Identificatore NAS" msgid "NAS Identifier for Radius Server" msgstr "Identificatore NAS per Radius Server" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Prefisso dell'app per gli attributi della classe" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "" "Prefisso dell'applicazione per filtrare i gruppi dall'attributo " "\"Classe\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Gruppo globale" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Se impostato, questo valore verrà aggiunto come gruppo per tutti gli utenti " "del raggio" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Connessione al server Radius non riuscita" @@ -2560,13 +2567,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Semplice autenticatore LDAP" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "La classe di gruppo Ldap sembra non essere corretta (nessun gruppo trovato " "da quella classe)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2574,7 +2581,7 @@ msgstr "" "L'attributo id del gruppo Ldap sembra non essere corretto (nessun gruppo " "trovato da quell'attributo)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2582,7 +2589,7 @@ msgstr "" "La classe utente Ldap o l'attributo id utente sono probabilmente sbagliati " "(non riesce a trovare nessun utente con entrambe le condizioni)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2590,7 +2597,7 @@ msgstr "" "La classe di gruppo Ldap o l'attributo Id di gruppo sono probabilmente " "sbagliati (non è possibile trovare alcun gruppo con entrambe le condizioni)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "" "Impossibile individuare alcun gruppo con l'attributo di appartenenza " @@ -2604,7 +2611,7 @@ msgstr "Amministratore di sistema" msgid "Forbidden" msgstr "Proibito" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Accesso tentato da una fonte non consentita" @@ -2716,28 +2723,28 @@ msgstr "Pulisci la cache L2" msgid "Custom message on launchers" msgstr "Messaggio personalizzato sui launcher" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "In corso di pubblicazione. Attendere il completamento della pubblicazione " "precedente e riprovare" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "Il servizio è in modalità manutenzione e non sono consentite nuove " "pubblicazioni" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Impossibile annullare una pubblicazione non in esecuzione" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Impossibile annullare una pubblicazione non utilizzabile" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "" "Impossibile annullare una pubblicazione di pubblicazioni con servizi in corso" @@ -2762,7 +2769,7 @@ msgstr "Il server è in modalità di manutenzione" msgid "Server is restrained" msgstr "Il server è trattenuto" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Numero massimo di servizi utente raggiunto per questo {}" @@ -2779,7 +2786,7 @@ msgstr "" msgid "The requested service is restrained" msgstr "Il servizio richiesto è limitato" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2787,15 +2794,15 @@ msgstr "" "Servizio non valido. Il servizio non è disponibile in questo momento. Per " "favore prova più tardi" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Nessun mezzo di trasporto adatto trovato" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "Il trasporto richiesto {} non è valido per {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "Il servizio non è accessibile da questo dispositivo" @@ -2807,11 +2814,11 @@ msgstr "Numero di secondi per ignorare i messaggi ripetuti" msgid "Base Notifier" msgstr "Notificatore di base" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Consenti accesso utente" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Nega l'accesso all'utente" @@ -2829,7 +2836,7 @@ msgstr "" msgid "Base MFA" msgstr "MAE di base" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Codice MFA non valido" @@ -2837,7 +2844,7 @@ msgstr "Codice MFA non valido" msgid "No check method provided." msgstr "Nessun metodo di controllo fornito." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Non è implementato alcun metodo di controllo della connessione." @@ -2885,12 +2892,12 @@ msgstr "Macchina base" msgid "Base machine for this service" msgstr "Macchina base per questo servizio" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Token di servizio" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2899,23 +2906,30 @@ msgstr "" "Token di servizio che verrà utilizzato dagli Actor per comunicare con il " "servizio. Lasciare vuoto per assegnazione persistente." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Macchine" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Macchine per questo servizio" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Randomizza l'assegnazione della macchina" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "Se attivo, UDS assegnerà le macchine in modo casuale, anziché lineare" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Usa gli snapshot" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2923,32 +2937,24 @@ msgstr "" "Se attivo, UDS proverà a creare un'istantanea (se già non ne esiste una) " "prima di accedere a una macchina e a ripristinarla dopo l'uso." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Tipo di istantanea" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Nessuna istantanea" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Recupera l'istantanea e arresta la macchina" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Recupera l'istantanea e avvia la macchina" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Randomizza l'assegnazione della macchina" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "Se attivo, UDS assegnerà le macchine in modo casuale, anziché lineare" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3193,11 +3199,11 @@ msgstr "Macchina" msgid "Config" msgstr "Config" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Scadenza della sessione in ore dopo la pubblicazione" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3206,7 +3212,7 @@ msgstr "" "la velocità di generazione della cache ma caricherà anche i fornitori di " "servizi" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3216,7 +3222,7 @@ msgstr "" "thread, l'attività distribuita verrà completata prima, ma darà più " "carico al sistema complessivo" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3226,7 +3232,7 @@ msgstr "" "maggiore di thread, l'attività distribuita verrà completata prima, ma " "darà più carico al sistema complessivo" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3235,34 +3241,34 @@ msgstr "" "\"rimosse\", della cache e delle macchine assegnate dall'utente. Il " "tempo è in secondi" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Tempo per mantenere gli elementi \"stato informazioni\" prima di rimuoverli, " "in pochi secondi" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Numero di servizi per avviare la rimozione per esecuzione del servizio di " "pulizia" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Rimozione Tempo di controllo della cache, delle pubblicazioni e dei servizi " "distribuiti, in secondi" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Nome utente superutente" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Password del superutente" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3272,11 +3278,11 @@ msgstr "" "Una volta configurato un autenticatore, si consiglia di disabilitare questa " "opzione" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Abilita i moduli di sicurezza avanzati" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3284,7 +3290,7 @@ msgstr "" "Modalità di massima sicurezza applicata (modalità Zero-Trust). Se questa " "modalità è impostata, non sarà consentito il reindirizzamento della password." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3292,41 +3298,41 @@ msgstr "" "Per quanto tempo il servizio utente dovrebbe rimanere inutilizzato prima che " "il gestore del sistema operativo ne prenda in considerazione la rimozione?" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Tempo tra i controlli dei servizi utente non utilizzati da parte dei gestori " "del sistema operativo" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "Max effettua gli accessi prima di bloccare un account per un po'" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "Blocca il tempo in secondi per un utente che ha troppi accessi falliti" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Blocca IP in caso di errore di accesso" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "" "Esegui l'esecuzione automatica del servizio se è presente un solo " "servizio" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Reindirizzare HTTP a HTTPS durante la connessione a UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Reindirizza la pagina di accesso al tag utilizzato quando si effettua l'" "accesso, se attivo." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3334,7 +3340,7 @@ msgstr "" "Tempo massimo necessario per rendere un servizio \"pienamente funzionante\" " "prima che venga considerato \"non riuscito\" e rimosso" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3342,27 +3348,27 @@ msgstr "" "Tempo massimo necessario per ottenere la \"rimozione completa\" di un " "servizio prima che venga considerato \"non riuscito\" ed eliminato" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Numero massimo di log per ogni elemento di amministrazione con capacità di " "log" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Numero massimo di voci di registro per registri UDS generali (0 = " "illimitato, utilizzare con cautela)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "È ora di limitare un servizio utente nel caso in cui ad un certo punto " "generi degli errori" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3370,43 +3376,43 @@ msgstr "" "Numero di errori che devono verificarsi in \"restrainTime\" per limitare un " "servizio utente" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Durata delle statistiche, in giorni" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Frequenza di raccolta delle statistiche in secondi. L'impostazione " "predefinita è 4 ore (14400 secondi)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Numero massimo di tempo da accumulare in un'esecuzione. Il valore " "predefinito è 7 (1 settimana)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Se non consenti l'accesso mostrando gli autenticatori" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Avvisare l'utente dell'esistenza di una nuova versione di un " "servizio in caso di nuova pubblicazione" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Reti o host considerati \"affidabili\" per UDS (Tunnel, ecc...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "IP o reti autorizzati a inoltrare richieste (come i proxy)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3414,12 +3420,12 @@ msgstr "" "Consenti ai client di notificare il proprio IP (se impostato) o utilizza " "sempre l'IP estratto dalla richiesta" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "" "Se c'è un proxy di fronte a noi (ad esempio HAProxy o qualsiasi NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3428,86 +3434,86 @@ msgstr "" "solo quando gli utenti registrati raggiungono lo 0, viene considerato " "\"disconnesso\"" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "" "Abilita/Disabilita il blocco IP del rilevamento degli attacchi degli attori" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Durata massima della sessione per l'amministratore" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Durata massima della sessione per l'utente" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Tempo di ricarica della pagina (precedente)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "" "Messaggio personalizzato per errore durante la limitazione in base al " "calendario" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "Se converti il nome utente in minuscolo agli accessi" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "ID UDS globale (comune per tutti i server sullo stesso cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Nome visualizzato del sito" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Informazioni sul copyright del sito" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Link sul copyright del sito" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Nome del logo della barra di navigazione superiore" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Stili CSS personalizzati applicati al sito accessibile all'utente" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Informazioni sul sito" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Mostra la casella Filtro per i servizi utente nella parte superiore o " "inferiore della pagina" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Servizi utente minimi necessari per mostrare il filtro" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Abilita funzionalità sperimentali. USARE CON CAUTELA!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Numero di elementi per pagina nelle tabelle di amministrazione" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Elenco di host/reti attendibili a cui è consentito accedere all'" "interfaccia di amministrazione" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Abilita il menu VNC per i servizi utente" @@ -3564,7 +3570,7 @@ msgid "Base name for clones from this service" msgstr "Nome di base per i cloni di questo servizio" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Lunghezza del nome" @@ -3600,10 +3606,11 @@ msgstr "Numero massimo di servizi consentiti (0 significa nessun limite)" msgid "Remove found duplicates" msgstr "Rimuovi i duplicati trovati" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Se attivo, le vApp duplicate trovate per questo servizio verranno rimosse" +"Se attivi, i duplicati trovati di VApp per questo servizio verranno rimossi" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3766,124 +3773,124 @@ msgstr "Impossibile contattare il server LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} giorni {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numerico" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} deve essere maggiore o uguale a {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} deve essere inferiore o uguale a {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} contiene caratteri non validi" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} non è un nome host valido: superata la lunghezza massima del nome host." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} non è un nome host valido: (domini non consentiti)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} non è un nome host valido: (caratteri non validi)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} non è un URL valido: supera la lunghezza massima." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} non è un indirizzo IPv4 valido" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} non è un indirizzo IPv6 valido" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} non è un indirizzo IPv4 o IPv6 valido" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} supera la lunghezza massima del percorso." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} non è un percorso Windows valido" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} non è un percorso Unix valido" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} non è un percorso valido" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} non è una coppia host:porta valida" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} non è un indirizzo MAC valido" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} non è un intervallo MAC valido" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "L'indirizzo email è troppo lungo" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "Indirizzo email non valido" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "Il nome base non è valido per un nome host" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "La lunghezza del nome base più la lunghezza deve essere maggiore di 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "" "La lunghezza del nome base più la lunghezza non deve essere maggiore di 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "Il nome della macchina non può essere solo numeri" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Dati JSON non validi" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Il certificato è vuoto" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Certificato non valido" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "La chiave privata è vuota" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Chiave privata non valida" @@ -4070,35 +4077,49 @@ msgstr "" "questo utente deve inserire OTP. Se selezionato, tutti gli utenti devono " "immettere OTP, quindi il passaggio di autenticazione viene saltato." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Invia solo il nome utente (senza dominio) al server RADIUS" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Se non selezionato, il nome utente verrà inviato così com'è al server " +"radius. Se selezionato, la parte del dominio verrà rimossa dal nome utente " +"prima di inviarlo al server radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "Codice OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Si prega di inserire OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Errore di connessione OTP del raggio" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Codice OTP non valido" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS via HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Semplice invio di SMS tramite MFA tramite HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Pattern URL per l'invio di SMS" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4110,16 +4131,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:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "Server HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignora gli errori del certificato" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4127,19 +4148,19 @@ msgstr "" "Se selezionato, il certificato del server verrà ignorato. Ciò è utile se il " "server utilizza un certificato autofirmato." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Metodo di invio SMS" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Metodo per l'invio di SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Intestazioni per richieste SMS" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4153,11 +4174,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:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Parametri per l'invio di SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4171,51 +4192,51 @@ msgstr "" "telefono * {username} - il nome utente * {justUsername} - il nome utente " "senza @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Codifica SMS" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Codifica per SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Metodo di autenticazione SMS" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Autenticazione di base HTTP" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "Aut. digest HTTP" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "Autenticazione HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Utente o token di autenticazione SMS" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Utente o token per l'autenticazione SMS" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Password di autenticazione SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Password per autenticazione SMS" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Risposta SMS OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4223,41 +4244,41 @@ msgstr "" "Regex per risposta SMS OK. Se vuoto, la risposta è considerata OK se il " "codice di stato è 200." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "Risposta HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Azione di errore di risposta SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Azione per errore di risposta SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "Consenti all'utente di accedere se il suo IP è nell'elenco delle reti" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "Nega all'utente l'accesso se il suo IP è nell'elenco delle reti" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "Invio SMS fallito" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Errore di risposta SMS" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Codice AMF" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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" @@ -4305,15 +4326,15 @@ msgstr "Numero di codici validi prima e dopo quello attuale" msgid "Authentication Code" msgstr "Codice di Autenticazione" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Inserisci il tuo codice di autenticazione" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "Il codice è già utilizzato. Aspetta un minuto e riprova." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Codice non VALIDO" @@ -4599,21 +4620,21 @@ msgstr "Devi fornire un account per aggiungere le VM al dominio!" msgid "Must provide a password for the account!" msgstr "Devi fornire una password per l'account!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux OS Manager" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager per le macchine virtuali Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Tempo massimo di inattività" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4622,12 +4643,12 @@ msgstr "" "automaticamente chiusa all'utente (<= 0 significa nessun tempo massimo di " "inattività)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Disconnessione dal calendario" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4702,22 +4723,22 @@ msgstr "" "automaticamente chiusa all'utente (<= 0 significa nessun tempo massimo di " "inattività)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "UDS Actor per macchine virtuali Windows" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "UDS Actor per macchine virtuali Windows non gestite. Utilizzato SOLO per " "sistemi statici." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic OS Manager" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Os Manager per macchine virtuali Windows fuori dominio." @@ -5074,21 +5095,21 @@ msgstr "Utilizzo dei pool in un giorno" msgid "Pools usage counters for an specific day" msgstr "Contatori di utilizzo dei pool per un giorno specifico" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Servizi per ora" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Ora" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Rapporto sull'utilizzo dei servizi per un giorno" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Rapporto sull'utilizzo del servizio" @@ -5242,7 +5263,7 @@ msgstr "Ottenuto dall'utente creato su AWS IAM per UDS Enterprise - Chiavi" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5258,23 +5279,23 @@ msgstr "Regione predefinita" msgid "Default region to use for connecting to EC2" msgstr "Regione predefinita da utilizzare per la connessione a EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Servizio AMI esistente di AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Questo servizio fornisce l'accesso ad AWS VDI in base a un'AMI di " "proprietà esistente" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "" "Numero di VM che si desidera mantenere in esecuzione in attesa di un utente" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5282,15 +5303,15 @@ msgstr "" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "Numero di VM desiderate da mantenere interrotte in attesa di utilizzo" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "AMI di base per questo servizio" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5299,37 +5320,37 @@ msgstr "AMI di base per questo servizio" msgid "Region" msgstr "Regione" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Regione per questo servizio" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Tipo di istanza" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Digita per le istanze create dall'AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Coppia di chiavi" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Coppia di chiavi da utilizzare per questa macchina" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC per le istanze di questo servizio" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5337,19 +5358,19 @@ msgstr "VPC per le istanze di questo servizio" msgid "Network" msgstr "Rete" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Sottorete" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Sottorete per le istanze di questo servizio" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Gruppi di sicurezza" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Gruppi di sicurezza per le istanze di questo servizio" @@ -5368,7 +5389,7 @@ msgid "Service region" msgstr "Regione di servizio" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5376,7 +5397,7 @@ msgid "After logout" msgstr "Dopo il logout" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5385,7 +5406,7 @@ msgstr "" "Selezionare l'azione da eseguire dopo che l'utente si è disconnesso." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5412,7 +5433,7 @@ msgid "Obtained from subscriptions" msgstr "Ottenuto da sottoscrizione" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Timeout in secondi di connessioni al server" @@ -5521,60 +5542,62 @@ msgstr "Macchine fisse di Azure" msgid "Azure Services based on fixed machines." msgstr "Servizi di Azure basati su macchine fisse." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Stop Machine (e deallocalo)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Fornitore della piattaforma Google Cloud" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Fornisce la connessione a Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "E-mail del cliente" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Email del cliente per l'account di servizio" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI del token" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL del token, come fornito da Google (l'impostazione predefinita è per " "Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Chiave privata" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Chiave privata per l'account di servizio" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "ID progetto" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "ID progetto per Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Regione preferita" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Regione preferita per i nuovi servizi" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Fornitore di Google Cloud" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Fornisce la connessione a Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Connessione riuscita" @@ -5880,7 +5903,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "" "Numero di vcpus (\"-1 significa\" mantieni la macchina originale vcpus \")" @@ -5891,7 +5913,6 @@ msgid "Cores per VCPU" msgstr "Core per VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Numero di vcpu (\"-1 significa\" mantieni i core della macchina originale " @@ -5915,7 +5936,6 @@ msgid "No" msgstr "NO" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Sono richiesti entrambi i core per VCPU e il numero di VCPUS" @@ -5983,6 +6003,22 @@ msgstr "Servizio Nutanix Acropolis" msgid "Nutanix Acropolis based service" msgstr "Servizio basato su Nutanix Acropolis" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Numero di vcpu (il valore zero significa \"mantieni le vcpu della macchina " +"originale\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Numero di vcpu (il valore zero significa \"mantieni i core della macchina " +"originale per vcpu\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " @@ -5991,6 +6027,11 @@ msgstr "" "Rete per le macchine virtuali (ogni macchina creata sarà collegata a questa " "rete)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "Sia i core per VCPU che il numero di VCPUS devono essere maggiori di 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Macchine fisse Nutanix" @@ -6294,23 +6335,23 @@ msgstr "Modello base" msgid "Service base template" msgstr "Modello base di servizio" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Nomi macchina" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Nome di base per i cloni di questa macchina virtuale" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Dimensione della parte numerica per i nomi di queste macchine virtuali" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Errore di autenticazione" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6609,14 +6650,19 @@ msgid "Static Single IP" msgstr "IP statico singolo" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Questo servizio fornisce l'accesso alla macchina POWERED-ON tramite IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Questo servizio fornisce l'accesso alla macchina ACCESA tramite IP. (È " +"possibile configurare WOL per accendere la macchina)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "IP/FQDN host" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6624,11 +6670,11 @@ msgstr "" "IP o FQDN del server a cui connettersi. Può includere indirizzi MAC separati " "da \";\" dopo l'IP/nome host" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Server non valido utilizzato: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Indirizzo MAC utilizzato non valido: \"{}\"" @@ -7006,35 +7052,35 @@ msgstr "RDS Platform RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "Servizio basato su RDS Platform RemoteAPP" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Percorso dell'applicazione" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Percorso completo dell'applicazione che questo servizio rappresenterà" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Parametri dell'applicazione" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Parametri delle applicazioni, come saranno passati in riga di comando" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Percorso di partenza" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Attendi i processi generati" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7042,7 +7088,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:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "È richiesto un percorso dell'applicazione valido" @@ -7324,28 +7370,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Virtual Datacenter" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Se attivo, le vApp duplicate trovate per questo servizio verranno rimosse" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catalog" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "Catalogo sorgente vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp Template" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "vApp template per il servizio" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Rete principale" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7353,7 +7404,7 @@ msgstr "" "Se nella macchina virtuale è presente più di una interfaccia, utilizzare la " "prima trovata su questa rete come interfaccia principale" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Sono consentiti solo vApp Template con 1 VM" @@ -8942,18 +8993,18 @@ msgstr "Immagine binaria dell'app ARMHF per client Linux (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Client Linux .tar.gz generico" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Autenticatore non fornisce informazioni" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} giorni" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} ore" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Errore interno" diff --git a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po index 64ec62930..f4f07f355 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Javier , 2020 # Massimo Vignone, 2020 # mvignone, 2020-2021,2024 @@ -30,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Italian (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/django.po b/server/src/uds/locale/pt/LC_MESSAGES/django.po index c1509507b..e97efd301 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/django.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2012 # Javier Gomez , 2023 # Javier , 2023 @@ -29,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier , 2023\n" "Language-Team: Portuguese (http://app.transifex.com/openuds/openuds/language/" @@ -59,11 +60,11 @@ msgid "Name" msgstr "Nome" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -79,45 +80,45 @@ msgstr "Marca de tempo" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Tag" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Nome do pool" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Nome de usuário" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "Corrida" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Começa" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Termina" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Transcorrido" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Tempo decorrido" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Uso de {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Usos atuais" @@ -189,7 +190,7 @@ msgstr "Identidade" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -257,9 +258,9 @@ msgstr "" msgid "Display" msgstr "Exibição" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -287,32 +288,32 @@ msgstr "Refine sua consulta" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "A etiqueta deve conter apenas letras, números ou símbolos: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Nome da regra" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Repete" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Cada" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Duração" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "O elemento já existe (erro de chave duplicado)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Regras de {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Regras atuais" @@ -373,7 +374,7 @@ msgstr "Política" msgid "HA Policy" msgstr "Política de alta disponibilidade" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Serviços do usuário" @@ -484,7 +485,7 @@ msgstr "Data de criação" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -676,7 +677,7 @@ msgstr "Provedores de serviço" msgid "Status" msgstr "Status" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -696,7 +697,7 @@ msgstr "Relatórios disponíveis" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -844,61 +845,61 @@ msgstr "Gerenciou" msgid "Unmanaged" msgstr "Não gerenciado" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Padrão" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "O token de serviço parece estar em uso por outro serviço. Por favor, " "selecione um novo." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Erro de entrada: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Serviços de {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Serviços atuais" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Nome do Serviço" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Pools de Serviços" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Tipo de contagem máxima de serviços" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Conservador" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Método de contagem de serviço" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Tipo de contagem de serviço para calcular se MAX foi atingido" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "Com erros" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "Ok" @@ -1134,7 +1135,7 @@ msgstr "Túneis" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1159,6 +1160,12 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Porta onde o túnel é visível pelos usuários" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"Não é possível excluir um grupo de servidores de túnel com transportes " +"anexados" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1238,7 +1245,7 @@ msgid "Current users" msgstr "Usuários atuais" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1369,24 +1376,24 @@ msgstr "" "Redes associadas. Se Nenhuma rede for selecionada, significará \"todas as " "redes\"" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "pedido inválido" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Método não encontrado em {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Item não encontrado" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Acesso negado" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Operação não suportada" @@ -1431,7 +1438,7 @@ msgstr "" "formulário USER@DOMAIN.DOM para isso)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1490,24 +1497,26 @@ msgstr "" "usuário) se o modo de compatibilidade não for \"Windows NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Servidores de backup" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Se não estiver vazio, este host será usado caso o servidor host principal " -"não esteja acessível" +"Se não estiver vazia, esta lista de domínio=backup1,backup2,... será usada " +"como servidores de backup para os domínios. Se domínio não for especificado, " +"os servidores de backup serão usados para todos os domínios." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Verificar SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1516,24 +1525,24 @@ msgstr "" "Se marcada, a verificação SSL será aplicada. Caso contrário, a verificação " "SSL será desativada" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Certificado" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Certificado a ser usado para verificação SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Lista de tradução do host" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1541,11 +1550,11 @@ msgstr "" "Se não estiver vazio, esta lista de pares chave=valor será usada para " "traduzir o nome do host do AD para um nome do host resolvível." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Ignorar domínios" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1553,11 +1562,11 @@ msgstr "" "Se não estiver vazio, esta lista de domínios será ignorada ao pesquisar " "usuários. Valores Separados Por Virgula." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Redirecionar ao expirar" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1565,20 +1574,20 @@ msgstr "" "Se não estiver vazio, se a senha do usuário expirar, será redirecionado " "automaticamente para este URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Autenticador do Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Autenticar-se contra o Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 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:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1586,50 +1595,50 @@ msgstr "" "Não foi possível conectar a nenhum servidor AD. Verifique sua configuração " "(servidor, certificados SSL, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Nome de usuário não encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Grupo não encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Muitos resultados, sejam mais específicos" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Erro ao testar conexão" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "A conexão parece estar incorreta, verifique" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 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:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 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:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "Params de conexão parecem corretos, teste foi executado com sucesso" @@ -1683,7 +1692,7 @@ msgstr "" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Procuração" @@ -1747,23 +1756,23 @@ msgstr "" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "Este tipo de autenticador não suporta espaços em branco no campo NAME" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Usuário não encontrado" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Exceção do autenticador:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Erro de conexão:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "Params de conexão parece correto, o teste foi executado com sucesso" @@ -1787,7 +1796,7 @@ msgstr "Nome de usuário com privilégios de leitura no eDirectory" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1798,13 +1807,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Tempo limite em segundos de conexão ao LDAP" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Atributo MFA" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Atributo de onde extrair o código MFA" @@ -1817,28 +1826,28 @@ msgstr "Autenticador do eDirectory" msgid "Authenticate against eDirectory" msgstr "Autenticar-se contra o eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Erro de conexão" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Erro de conexão: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "A base de pesquisa do Ldap está incorreta" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 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:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1846,14 +1855,14 @@ 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:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "O atributo do grupo Ldap parece estar incorreto (nenhum grupo encontrado por " "esse atributo)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2082,25 +2091,25 @@ msgstr "Identificador NAS" msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS para Servidor Radius" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "Prefixo do aplicativo para atributos de classe" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "Prefixo do aplicativo para filtrar grupos do atributo \"Classe\"" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Grupo global" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Se definido, este valor será adicionado como grupo para todos os usuários do " "raio" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "A conexão com o servidor Radius falhou" @@ -2548,13 +2557,13 @@ msgstr "SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Autenticador LDAP simples" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "A classe de grupo Ldap parece estar incorreta (nenhum grupo encontrado por " "essa classe)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2562,7 +2571,7 @@ msgstr "" "O atributo id do grupo Ldap parece estar incorreto (nenhum grupo encontrado " "por esse atributo)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2570,7 +2579,7 @@ msgstr "" "A classe de usuário do Ldap ou o id do usuário attr está provavelmente " "errado (não é possível encontrar nenhum usuário com ambas as condições)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2578,7 +2587,7 @@ msgstr "" "A classe do grupo Ldap ou o id do grupo attr está provavelmente errado (não " "é possível encontrar nenhum grupo com ambas as condições)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "" "Não é possível localizar nenhum grupo com o atributo de associação " @@ -2592,7 +2601,7 @@ msgstr "Administrador do sistema" msgid "Forbidden" msgstr "Proibido" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Acesso tentado de uma fonte não permitida" @@ -2704,26 +2713,26 @@ msgstr "Limpe o cache L2" msgid "Custom message on launchers" msgstr "Mensagem personalizada em lançadores" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Já está publicando. Aguarde a publicação anterior terminar e tente novamente" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" "O serviço está no modo de manutenção e novas publicações não são permitidas" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Não é possível cancelar publicação não em execução" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Não é possível cancelar a publicação não utilizável" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 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" @@ -2748,7 +2757,7 @@ msgstr "O servidor está em modo de manutenção" msgid "Server is restrained" msgstr "O servidor está restrito" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "Número máximo de serviços de usuário alcançado para este {}" @@ -2764,7 +2773,7 @@ msgstr "Não é possível remover nem cancelar {} porque seu estado não permite msgid "The requested service is restrained" msgstr "O serviço solicitado é restrito" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2772,15 +2781,15 @@ msgstr "" "Serviço inválido. O serviço não está disponível neste momento. Por favor " "tente mais tarde" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Nenhum transporte adequado encontrado" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "O transporte solicitado {} não é válido para {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "O serviço não está acessível a partir deste dispositivo" @@ -2792,11 +2801,11 @@ msgstr "Número de segundos para ignorar mensagens repetidas" msgid "Base Notifier" msgstr "Notificador Base" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Permitir login do usuário" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Negar login de usuário" @@ -2812,7 +2821,7 @@ msgstr "Negar o login do usuário se o IP estiver na lista de redes" msgid "Base MFA" msgstr "MFA básico" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Código MFA inválido" @@ -2820,7 +2829,7 @@ msgstr "Código MFA inválido" msgid "No check method provided." msgstr "Nenhum método de verificação fornecido." -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Nenhum método de verificação de conexão é implementado." @@ -2868,12 +2877,12 @@ msgstr "Máquina Base" msgid "Base machine for this service" msgstr "Máquina base para este serviço" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Token de Serviço" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2882,23 +2891,31 @@ msgstr "" "Token de serviço que será usado pelos atores para se comunicar com o " "serviço. Deixe em branco para atribuição persistente." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Máquinas" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Máquinas para este serviço" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Randomizar atribuição de máquina" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Se ativo, o UDS atribuirá máquinas de forma aleatória, em vez de linear" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Use instantâneos" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2906,33 +2923,24 @@ msgstr "" "Se estiver ativo, o UDS tentará criar um instantâneo (se ainda não existir) " "antes de acessar uma máquina e restaurá-lo após o uso." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Tipo de instantâneo" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Nenhum instantâneo" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Recuperar instantâneo e parar a máquina" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Recuperar instantâneo e iniciar máquina" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Randomizar atribuição de máquina" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Se ativo, o UDS atribuirá máquinas de forma aleatória, em vez de linear" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3178,11 +3186,11 @@ msgstr "Máquina" msgid "Config" msgstr "Configuração" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Tempo de expiração da sessão em horas após a publicação" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3191,7 +3199,7 @@ msgstr "" "velocidade de geração de cache, mas também carregará os provedores de " "serviços" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3201,7 +3209,7 @@ msgstr "" "threads, a tarefa implantada será concluída mais cedo, mas dará mais carga " "ao sistema geral" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3211,7 +3219,7 @@ msgstr "" "threads, a tarefa implantada será concluída mais cedo, mas dará mais carga " "ao sistema geral" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3219,33 +3227,33 @@ msgstr "" "Tempo de espera antes de remover publicações \"com erros\" e \"removidas\", " "cache e máquinas atribuídas ao usuário. O tempo está em segundos" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Tempo para manter os itens do \"estado de informação\" antes de removê-los, " "em segundos" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Número de serviços para iniciar a remoção por execução do limpador de serviço" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" "Tempo de verificação de remoção para cache, publicações e serviços " "implantados, em segundos" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Nome de usuário do superusuário" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Senha de superusuário" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3254,11 +3262,11 @@ msgstr "" "Permitir que o usuário root acesse usando a interface da web. Uma vez " "configurado um autenticador, é recomendado desabilitar esta opção" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Habilite módulos de segurança aprimorados" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3266,7 +3274,7 @@ msgstr "" "Modo de segurança máxima imposto (Modo Zero-Trust). Nenhum redirecionamento " "de senha será permitido se este modo estiver definido." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" @@ -3274,39 +3282,39 @@ msgstr "" "Por quanto tempo o serviço do usuário deve ficar sem uso antes que o gerente " "do sistema operacional considere sua remoção" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Tempo entre verificações de serviços de usuário não utilizados pelos " "gerenciadores de sistema operacional" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "Máximo de logins antes de bloquear uma conta por um tempo" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Tempo de bloqueio em segundos para um usuário que tem muitas falhas de login" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Bloquear ip em caso de falha de login" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Faça a execução automática do serviço se houver apenas um serviço" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Redirecionar HTTP para HTTPS na conexão com UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Redireciona a página de login para a tag usada quando conectado, se ativo." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3314,7 +3322,7 @@ msgstr "" "Tempo máximo necessário para que um serviço fique \"totalmente funcional\" " "antes de ser considerado \"com falha\" e removido" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3322,26 +3330,26 @@ msgstr "" "Tempo máximo necessário para que um serviço seja \"totalmente removido\" " "antes de ser considerado \"com falha\" e eliminado" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Máximo de logs por cada elemento de administração com capacidade de log" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Máximo de entradas de registros para registros UDS gerais (0 = ilimitado, " "use com cuidado)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "É hora de restringir um serviço de usuário caso ele apresente alguns erros " "em algum momento" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3349,42 +3357,42 @@ msgstr "" "Número de erros que devem ocorrer em “restrainTime” para restringir um " "serviço de usuário" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Duração das estatísticas, em dias" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Frequência da coleta de estatísticas em segundos. O padrão é 4 horas (14400 " "segundos)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Número máximo de tempo para acumular em uma execução. O padrão é 7 (1 semana)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Se não permitir login mostrando autenticadores" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Notificar o usuário sobre a existência de uma nova versão de um serviço em " "nova publicação" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Redes ou hosts considerados \"confiáveis\" para UDS (túneis, etc...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "IPs ou redes com permissão para encaminhar solicitações (como proxies)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3392,11 +3400,11 @@ msgstr "" "Permitir que os clientes notifiquem seu próprio IP (se definido) ou use " "sempre o IP extraído da solicitação" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Se houver um proxy à nossa frente (ou seja, HAProxy ou qualquer NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3404,83 +3412,83 @@ msgstr "" "Se usarmos uma nova mecânica de logout para osmanagers, onde somente quando " "o usuário logado chega a 0, ele é considerado “desconectado”" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "Ativar/desativar bloqueio de IP de detecção de ataque de ator" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Duração máxima da sessão para administrador" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Duração máxima da sessão do usuário" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Tempo de recarga da página (legado)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "Mensagem personalizada de erro ao limitar por calendário" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "Se converter o nome de usuário para letras minúsculas nos logins" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "ID UDS global (comum para todos os servidores no mesmo cluster)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Nome de exibição do site" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Informações sobre direitos autorais do site" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Link de direitos autorais do site" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "Nome do logotipo da barra de navegação superior" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "Estilos CSS personalizados aplicados ao site acessível ao usuário" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Informação do Site" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Mostrar caixa de filtro para serviços do usuário na parte superior ou " "inferior da página" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "Serviços de usuário mínimos necessários para mostrar o filtro" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Ative recursos experimentais. USE COM CUIDADO!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Número de itens por página nas tabelas administrativas" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Lista de hosts/redes confiáveis com permissão para acessar a interface " "administrativa" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Habilite o menu VNC para serviços do usuário" @@ -3537,7 +3545,7 @@ msgid "Base name for clones from this service" msgstr "Nome base para clones deste serviço" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Comprimento do nome" @@ -3573,10 +3581,11 @@ msgstr "Número máximo de serviços permitidos (0 significa sem limite)" msgid "Remove found duplicates" msgstr "Remover duplicados encontrados" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" msgstr "" -"Se ativo, encontrado duplicados, os vApps desse serviço serão removidos" +"Se ativo, os VApps duplicados encontrados para este serviço serão removidos" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3737,125 +3746,125 @@ msgstr "Não é possível entrar em contato com o servidor LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} dias {: d}: {: 02d}: {: 02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Numérico" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} deve ser maior ou igual a {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} deve ser menor ou igual a {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} contém caracteres inválidos" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} não é um nome de host válido: o comprimento máximo do nome de host foi " "excedido." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} não é um nome de host válido: (domínios não permitidos)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} não é um nome de host válido: (caracteres inválidos)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} não é um URL válido: excede o comprimento máximo." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} não é um endereço IPv4 válido" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} não é um endereço IPv6 válido" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} não é um endereço IPv4 ou IPv6 válido" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} excede o comprimento máximo do caminho." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} não é um caminho válido do Windows" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} não é um caminho Unix válido" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} não é um caminho válido" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} não é um par host:porta válido" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} não é um endereço MAC válido" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} não é um intervalo MAC válido" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "O endereço de e-mail é muito longo" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "o endereço de email não é válido" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "O nome da base não é válido para um nome de host" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "O comprimento do nome da base e o comprimento devem ser maiores que 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "" "O comprimento do nome de base mais o comprimento não deve ser maior que 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "O nome da máquina não pode ser apenas números" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Dados JSON inválidos" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "O certificado está vazio" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Certificado inválido" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "A chave privada está vazia" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Chave privada inválida" @@ -4043,35 +4052,49 @@ msgstr "" "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:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Enviar apenas nome de usuário (sem domínio) para o servidor radius" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Se desmarcado, o nome de usuário será enviado como está para o servidor " +"radius. Se marcado, a parte do domínio será removida do nome de usuário " +"antes de enviá-lo para o servidor radius." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "Código OTP" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Por favor, insira OTP" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Erro de conexão Radius OTP" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Código OTP inválido" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "SMS via HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "SMS simples enviando MFA usando HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Endereço URL para envio de SMS" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4083,16 +4106,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:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Ignorar erros de certificado" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4100,19 +4123,19 @@ msgstr "" "Se marcado, o certificado do servidor será ignorado. Isso é útil se o " "servidor usar um certificado autoassinado." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Método de envio de SMS" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Método de envio de SMS" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Cabeçalhos para solicitações de SMS" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4126,11 +4149,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:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Parâmetros para envio de SMS POST/PUT" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4144,51 +4167,51 @@ msgstr "" "telefone * {username} - o nome de usuário * {justUsername} - o nome de " "usuário sem @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Codificação de SMS" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Codificação para SMS" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Método de autenticação SMS" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Autenticação básica HTTP" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "Autenticação de resumo HTTP" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "Autenticação HTTP" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Usuário ou token de autenticação SMS" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Usuário ou token para autenticação por SMS" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Senha de autenticação SMS" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Senha para autenticação SMS" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Resposta SMS OK regex" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4196,39 +4219,39 @@ msgstr "" "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:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "Resposta HTTP" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Ação de erro de resposta SMS" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Ação para erro de resposta SMS" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "Permitir que o usuário faça login se seu IP estiver na lista de redes" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "Negar o login do usuário se seu IP estiver na lista de redes" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "Falha no envio de SMS" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Erro de resposta SMS" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Código MFA" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 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" @@ -4277,15 +4300,15 @@ msgstr "Número de códigos válidos antes e depois do atual" msgid "Authentication Code" msgstr "Código de Autenticação" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Digite seu código de autenticação" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "O código já foi usado. Aguarde um minuto e tente novamente." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Código inválido" @@ -4568,21 +4591,21 @@ msgstr "Deve fornecer uma conta para adicionar máquinas ao domínio!" msgid "Must provide a password for the account!" msgstr "Deve fornecer uma senha para a conta!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Gestor do SO Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Gestor de S.O. para controlar máquinas virtuais Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Max.Idle time" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4590,12 +4613,12 @@ msgstr "" "Tempo ocioso máximo (em segundos) antes que a sessão seja automaticamente " "fechada para o usuário (<= 0 significa nenhum tempo ocioso máximo)." -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Logout do calendário" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4669,22 +4692,22 @@ msgstr "" "Tempo ocioso máximo (em segundos) antes de a sessão ser automaticamente " "fechada para o usuário (<= 0 significa nenhum tempo ocioso máximo)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "Ator de UDS para máquinas de janelas" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "Ator UDS para máquinas Windows não gerenciadas. Usado SOMENTE para máquinas " "estáticas." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Gestor de S.O. Básico do Windows" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Gestor de S.O. para controlar máquinas Windows sem domínio." @@ -5040,21 +5063,21 @@ msgstr "Uso de pools em um dia" msgid "Pools usage counters for an specific day" msgstr "Contadores de uso de conjuntos para um dia específico" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Serviços por hora" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Hora" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Relatório de uso de serviços por um dia" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Relatório de uso de serviço" @@ -5208,7 +5231,7 @@ msgstr "Obtido do usuário criado no AWS IAM para UDS Enteprise - Chaves" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5224,23 +5247,23 @@ msgstr "Região padrão" msgid "Default region to use for connecting to EC2" msgstr "Região padrão a ser usada para conectar ao EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Serviço AMI Existente AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Este serviço fornece acesso a AWS VDI com base em um AMI existente de " "propriedade" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "" "Número de VMs desejadas para continuar correndo esperando por um usuário" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5248,15 +5271,15 @@ msgstr "" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "Número de VMs desejadas para manter parado esperando para uso" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "AMI de base para este serviço" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5265,37 +5288,37 @@ msgstr "AMI de base para este serviço" msgid "Region" msgstr "Região" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Região para este serviço" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Tipo de instância" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Digite para instâncias criadas a partir do AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Par de chaves" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Par de chaves a ser usado para esta máquina" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC para as instâncias deste serviço" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5303,19 +5326,19 @@ msgstr "VPC para as instâncias deste serviço" msgid "Network" msgstr "Rede" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Sub-rede" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Sub-rede para as instâncias deste serviço" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Grupos de segurança" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Grupos de segurança para as instâncias deste serviço" @@ -5334,7 +5357,7 @@ msgid "Service region" msgstr "Região de serviço" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5342,7 +5365,7 @@ msgid "After logout" msgstr "Depois de sair" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5350,7 +5373,7 @@ msgid "Select the action to be performed after the user logs out." msgstr "Selecione a ação a ser executada após o logout do usuário." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5377,7 +5400,7 @@ msgid "Obtained from subscriptions" msgstr "Obtido de assinaturas" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Tempo limite em segundos de conexões do servidor" @@ -5483,59 +5506,61 @@ msgstr "Máquinas fixas do Azure" msgid "Azure Services based on fixed machines." msgstr "Serviços Azure baseados em máquinas fixas." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Parar a máquina (e desalocá-la)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Provedor da plataforma Google Cloud" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Fornece conexão com o Google Cloud Platform Compute Engine" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "E-mail do cliente" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "E-mail do cliente para conta de serviço" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI do token" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL do token, conforme fornecido pelo Google (o padrão é para o Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Chave privada" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Chave privada para conta de serviço" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "ID do projeto" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "ID do projeto para o Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Região Preferida" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Região preferida para novos serviços" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Provedor de nuvem do Google" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Fornece conexão com o Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Conexão bem-sucedida" @@ -5835,7 +5860,6 @@ msgid "VCPUS" msgstr "VCPUS" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "Número de vcpus (\"-1 significa\" manter vcpus da máquina original \")" @@ -5845,7 +5869,6 @@ msgid "Cores per VCPU" msgstr "Núcleos por VCPU" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Número de vcpus (\"-1 significa\" manter núcleos de máquina originais por " @@ -5869,7 +5892,6 @@ msgid "No" msgstr "Não" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "Ambos os núcleos por VCPU e número de VCPUS são necessários" @@ -5937,12 +5959,32 @@ msgstr "Serviço Nutanix Acropolis" msgid "Nutanix Acropolis based service" msgstr "Serviço baseado em Acropolis da Nutanix" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Número de vcpus (valor zero significa \"manter vcpus da máquina original\")" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Número de vcpus (valor zero significa \"manter núcleos de máquina originais " +"por vcpu\")" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "Rede para as máquinas (cada máquina criada será anexada a esta rede)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "Ambos os núcleos por VCPU e o número de VCPUS devem ser maiores que 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Máquinas Fixas Nutanix" @@ -6243,23 +6285,23 @@ msgstr "Modelo base" msgid "Service base template" msgstr "Modelo base de serviço" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Nomes da Máquina" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Nome base para clones desta máquina" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Tamanho da peça numérica para os nomes dessas máquinas" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Erro de autenticação" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6552,14 +6594,19 @@ msgid "Static Single IP" msgstr "IP único estático" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Este serviço fornece acesso à máquina POWERED-ON por IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Este serviço fornece acesso à máquina POWERED-ON por IP. (Você pode " +"configurar o WOL para ligar a máquina)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "Host IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6567,11 +6614,11 @@ msgstr "" "IP ou FQDN do servidor ao qual se conectar. Pode incluir endereço MAC " "separado por \";\" depois do IP/nome do host" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Servidor inválido usado: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Endereço MAC inválido usado: \"{}\"" @@ -6950,36 +6997,36 @@ msgstr "Plataforma Remota RDSAPP" msgid "RDS Platform RemoteAPP based service" msgstr "Serviço baseado em RemoteAPP Platform RDS" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Caminho da aplicação" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Caminho completo da aplicação que este serviço representará" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Parâmetros de aplicação" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Parâmetros de aplicativos, como será passado na linha de comando" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Caminho inicial" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 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 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Espere processos gerados" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -6988,7 +7035,7 @@ msgstr "" "processos gerados sejam concluídos antes de considerar o aplicativo " "desconectado" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Um caminho de aplicativo válido é obrigatório" @@ -7271,28 +7318,33 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "Datacenter virtual" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "" +"Se ativo, encontrado duplicados, os vApps desse serviço serão removidos" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Catálogo" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "Catálogo de fontes do vApps" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "Modelo de vApp" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Modelo de vApp para o serviço" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Rede principal" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7300,7 +7352,7 @@ msgstr "" "Se mais de uma interface for encontrada na máquina, use a primeira " "encontrada nessa rede como principal" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Apenas modelos de vApp com 1 VM são permitidos" @@ -8872,18 +8924,18 @@ msgstr "Cliente Linux ARMHF de aplicativo binário (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Cliente Linux genérico .tar.gz" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "O autenticador não fornece informações" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} dias" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} horas" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Erro interno" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po index bb3e77f63..4a1be4ac4 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Javier Gomez , 2023 # Víctor Alonso , 2020 # Víctor Alonso , 2020 @@ -27,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Portuguese (http://app.transifex.com/openuds/openuds/language/" diff --git a/server/src/uds/locale/ru/LC_MESSAGES/django.po b/server/src/uds/locale/ru/LC_MESSAGES/django.po index 847a44e82..e50729280 100644 --- a/server/src/uds/locale/ru/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ru/LC_MESSAGES/django.po @@ -22,6 +22,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2022 # Alexander , 2020 # Alexey Shabalin , 2019 @@ -35,9 +36,9 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" -"Last-Translator: Александр Бурматов, 2022\n" +"Last-Translator: Elena Mishina, 2022-2024\n" "Language-Team: Russian (http://app.transifex.com/openuds/openuds/language/" "ru/)\n" "Language: ru\n" @@ -66,11 +67,11 @@ msgid "Name" msgstr "Имя" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -86,45 +87,45 @@ msgstr "Отметка времени" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "Тэги" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "Название пула" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "Имя пользователя" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "Запускается" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "Начало" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "Конец" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "Прошедшее" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "Истекшее время" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "Использование {0}" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "Текущее использование" @@ -196,7 +197,7 @@ msgstr "Идентификатор" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -225,7 +226,7 @@ msgstr "Пользователь" #: REST/methods/authenticators.py:80 core/types/ui.py:48 msgid "MFA" -msgstr "МИД" +msgstr "МФА" #: REST/methods/authenticators.py:122 REST/methods/meta_pools.py:105 #: REST/methods/meta_pools.py:222 REST/methods/services_pools.py:112 @@ -264,9 +265,9 @@ msgstr "" msgid "Display" msgstr "Экран/Дисплей" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -294,32 +295,32 @@ msgstr "Уточните свой запрос" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "Метка должна содержать только буквы, цифры и символы: - : ." -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "Имя правила" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "Повтор" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "Каждый" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "Длительность" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "Элемент уже существует (ошибка дублирования ключа)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "Правило из {0}" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "Текущее правило" @@ -380,7 +381,7 @@ msgstr "Политика" msgid "HA Policy" msgstr "Политика высокой доступности" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "Сервисы пользователя" @@ -491,7 +492,7 @@ msgstr "Дата создания" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -644,7 +645,7 @@ msgstr "Относительно" #: REST/methods/op_calendars.py:177 msgid "Start" -msgstr "Начинать" +msgstr "Начало" #: REST/methods/op_calendars.py:177 msgid "End" @@ -682,7 +683,7 @@ msgstr "Поставщики услуг" msgid "Status" msgstr "Статус" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -702,7 +703,7 @@ msgstr "Доступные отчеты" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -811,7 +812,7 @@ msgstr "Имя хоста сервера. Имя должно быть разр #: REST/methods/servers_management.py:200 msgid "IP of the server. Used if hostname is not resolvable by UDS" -msgstr "IP сервера. Используется, если имя хоста не разрешается UDS." +msgstr "IP-адрес сервера. Используется, если имя хоста не разрешается UDS." #: REST/methods/servers_management.py:207 msgid "Server MAC" @@ -849,60 +850,60 @@ msgstr "Управляемый" msgid "Unmanaged" msgstr "Неуправляемый" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "Стандартный" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "" "Ключ услуги, похоже, используется другой услугой. Пожалуйста, выберите новый." -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "Ошибка ввода: {0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "Услуги {}" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "Текущие сервисы" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "Имя сервиса" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "Сервисные пулы" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "Тип максимального количества услуг" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "Консервативный" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "Метод подсчета услуг" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "Тип подсчета услуг для расчета достижения MAX" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "С ошибками" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "ОК" @@ -994,25 +995,25 @@ msgstr "Если активно, транспорт будет виден пол #: REST/methods/services_pools.py:393 msgid "Custom launch message text" -msgstr "Пользовательский текст сообщения о запуске" +msgstr "Персонализированное сообщения о запуске" #: REST/methods/services_pools.py:395 msgid "" "Custom message to be shown to users, if active, when trying to start a " "service from this pool." msgstr "" -"Пользовательское сообщение, которое будет отображаться пользователям, если " -"оно активно, при попытке запустить службу из этого пула." +"Персонализированное сообщение, которое будет отображаться пользователям, " +"если оно активно, при попытке запустить службу из этого пула." #: REST/methods/services_pools.py:404 msgid "Enable custom launch message" -msgstr "Включить пользовательское сообщение о запуске" +msgstr "Включить персонализированное сообщение о запуске" #: REST/methods/services_pools.py:405 msgid "If active, the custom launch message will be shown to users" msgstr "" -"Если активно, то пользователям будет показано пользовательское сообщение о " -"запуске." +"Если активно, то пользователям будет показано персонализированное сообщение " +"о запуске." #: REST/methods/services_pools.py:414 msgid "Initial available services" @@ -1140,7 +1141,7 @@ msgstr "Туннели" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1165,6 +1166,11 @@ msgstr "" msgid "Port where the tunnel is visible by the users" msgstr "Порт, где туннель виден пользователям" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "" +"Невозможно удалить группу туннельных серверов с подключенными транспортами." + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1244,7 +1250,7 @@ msgid "Current users" msgstr "Текущие пользователи" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1371,26 +1377,26 @@ msgstr "" #: REST/model/base.py:237 msgid "Networks associated. If No network selected, will mean \"all networks\"" -msgstr "Сети связанные. Если не выбрана сеть, это будет означать «все сети»." +msgstr "Связанные сети. Если сеть не выбрана, это будет означать «все сети»." -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "Некорректный запрос" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "Метод не найден в {}: {}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "Элемент не найден" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "Доступ запрещен" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "Операция не поддерживается" @@ -1434,7 +1440,7 @@ msgstr "" "Имя пользователя с привилегиями на чтение (используйте форму USER@DOMAIN.DOM)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1494,24 +1500,26 @@ msgstr "" "NT\"" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "Резервные серверы" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." msgstr "" -"Если не пусто, этот хост будет использоваться в случае, если главный хост-" -"сервер недоступен." +"Если не пусто, этот список domain=backup1,backup2,... будет использоваться в " +"качестве резервных серверов для доменов. Если домен не указан, резервные " +"серверы будут использоваться для всех доменов." -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "Подтвердить SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " @@ -1520,24 +1528,24 @@ msgstr "" "Если этот флажок установлен, проверка SSL будет принудительной. В противном " "случае проверка SSL будет отключена." -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "Сертификат" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "Сертификат, используемый для проверки SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "Список переводов хоста" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." @@ -1545,11 +1553,11 @@ msgstr "" "Если он не пуст, этот список пар ключ=значение будет использоваться для " "преобразования имени хоста из AD в разрешимое имя хоста." -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "Игнорировать домены" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." @@ -1557,11 +1565,11 @@ msgstr "" "Если он не пуст, этот список доменов будет игнорироваться при поиске " "пользователей. Значения, разделенные запятыми." -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "Перенаправление по истечении срока действия" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" @@ -1569,20 +1577,20 @@ msgstr "" "Если не пусто, если срок действия пароля пользователя истек, будет " "автоматически перенаправлен на этот URL-адрес." -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Аутентификатор Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "Аутентификация в Active Directory" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Нужно указать имя пользователя в формате USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." @@ -1590,53 +1598,53 @@ msgstr "" "Не удалось подключиться ни к одному серверу AD. Проверьте свою конфигурацию " "(сервер, ssl-сертификаты, ...)." -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "Имя пользователя не найдено" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "Группа не найдена" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "Слишком много результатов, сделайте запрос более уникальным" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "Ошибка при тестировании соединения" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "Кажется, соединение неправильное, проверьте его." -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Сервер возможно не является членом Active Directory (у него нет " "пользовательских объектов)" -#: auths/ActiveDirectory_enterprise/authenticator.py:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Сервер возможно не является членом Active Directory (у него нет групповых " "объектов)" -#: auths/ActiveDirectory_enterprise/authenticator.py:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "Параметры подключения правильные, тест был успешно выполнен" @@ -1646,7 +1654,7 @@ msgstr "Аутентификатор Entra ID" #: auths/AzureAD_enterprise/authenticator.py:89 msgid "Entra ID Authenticator. Formerly Azure AD." -msgstr "Entra ID Authenticator. Ранее Azure AD." +msgstr "Аутентификатор Entra ID. Ранее Azure AD." #: auths/AzureAD_enterprise/authenticator.py:102 #: services/Azure_enterprise/provider.py:47 @@ -1693,7 +1701,7 @@ msgstr "" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "Прокси" @@ -1747,31 +1755,31 @@ msgstr "Внешний домен (домен пользователя #EXT#)" #: auths/AzureAD_enterprise/authenticator.py:174 msgid "Domain used for external users (empty means no external users)" msgstr "" -"Домен, используемый внешними пользователями (пустое означает отсутствие " -"внешних пользователей)" +"Домен, используемый внешними пользователями (пустое значение означает " +"отсутствие внешних пользователей)" #: auths/AzureAD_enterprise/authenticator.py:191 #: auths/OAuth2/authenticator.py:186 auths/SAML/saml.py:384 msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "Этот тип аутентификатора не поддерживает пробелы в поле NAME." -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "Пользователь не найден" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "Исключение проверки подлинности:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "Ошибка подключения: " -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "Параметры подключения кажутся верными, тест выполнен успешно" @@ -1797,7 +1805,7 @@ msgstr "Имя пользователя с правами на чтение в e #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1808,13 +1816,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "Таймаут подключения к LDAP в секундах" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "Атрибут многофакторной идентификации" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "Атрибут, из которого извлекается код МФА" @@ -1827,28 +1835,28 @@ msgstr "Аутентификатор eDirectory" msgid "Authenticate against eDirectory" msgstr "Аутентификация в eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "Ошибка подключения" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "Ошибка подключения: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "Поиск в LDAP некорректный" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "Класс пользователя Ldap возможно указан неправильно (пользователь с этим " "классом не найден)" -#: auths/EDirectory_enterprise/authenticator.py:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" @@ -1856,13 +1864,13 @@ msgstr "" "Атрибут идентификатора пользователя Ldap возможно указан некорректно " "(пользователя с таким атрибутом не обнаружено)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "" "Атрибут группы Ldap кажется неверным (по этому атрибуту группа не найдена)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -2090,25 +2098,25 @@ msgstr "Идентификатор NAS" msgid "NAS Identifier for Radius Server" msgstr "Идентификатор NAS для Radius Server" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" -msgstr "Префикс приложения для атрибутов класса" +msgstr "Префикс приложения для атрибутов Class" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" -msgstr "Префикс приложения для фильтрации групп по атрибуту \"Класс\"" +msgstr "Префикс приложения для фильтрации групп по атрибуту «Class»" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "Глобальная группа" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "" "Если установлено, это значение будет добавлено как группа для всех " "пользователей радиуса." -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "Не удалось подключиться к Radius-серверу" @@ -2185,8 +2193,8 @@ msgid "" "Ldap group name attribute seems to be incorrect (no group found by that " "attribute)" msgstr "" -"Атрибут имени группы Ldap кажется неправильным (по этому атрибуту группа не " -"найдена)" +"Атрибут имени группы Ldap, вероятно, неправильный (по этому атрибуту группа " +"не найдена)" #: auths/SAML/saml.py:77 msgid "SAML Authenticator" @@ -2310,7 +2318,7 @@ msgstr "Безопасность" #: auths/SAML/saml.py:225 msgid "Encripted nameID" -msgstr "Зашифрованный идентификатор имени" +msgstr "Шифровать идентификатор имени" #: auths/SAML/saml.py:228 msgid "If set, nameID will be encripted" @@ -2318,7 +2326,7 @@ msgstr "Если установлено, nameID будет зашифрован. #: auths/SAML/saml.py:234 msgid "Authn requests signed" -msgstr "Запросы на аутентификацию подписаны" +msgstr "Подписывать запросы на аутентификацию" #: auths/SAML/saml.py:237 msgid "If set, authn requests will be signed" @@ -2326,7 +2334,7 @@ msgstr "Если установлено, запросы аутентификац #: auths/SAML/saml.py:243 msgid "Logout requests signed" -msgstr "Запросы на выход подписаны" +msgstr "Подписывать запросы на выход" #: auths/SAML/saml.py:246 msgid "If set, logout requests will be signed" @@ -2334,7 +2342,7 @@ msgstr "Если установлено, запросы на выход из с #: auths/SAML/saml.py:252 msgid "Logout responses signed" -msgstr "Ответы на выход подписаны" +msgstr "Подписывать ответы на выход" #: auths/SAML/saml.py:255 msgid "If set, logout responses will be signed" @@ -2350,7 +2358,7 @@ msgstr "Если установлено, метаданные будут под #: auths/SAML/saml.py:270 msgid "Want messages signed" -msgstr "Хотите, чтобы сообщения были подписаны" +msgstr "Подписывать сообщения" #: auths/SAML/saml.py:273 msgid "If set, messages will be signed" @@ -2559,11 +2567,11 @@ msgstr "ПростойLDAP" msgid "Simple LDAP authenticator" msgstr "Простой аутентификатор LDAP" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "Класс групп Ldap кажется неправильным (не найдено групп такого класса)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2571,7 +2579,7 @@ msgstr "" "Идентификатор аттрибута группы LDAP вероятно неверный (невозможно найти " "группу с такими аттрибутами)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" @@ -2579,7 +2587,7 @@ msgstr "" "Класс пользователя Ldap или атрибут идентификатора пользователя, возможно, " "неправильный (не удаётся найти пользователей с обоими условиями)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" @@ -2587,7 +2595,7 @@ msgstr "" "Класс группы Ldap или атрибут идентификатора группы, возможно, неправильный " "(не удаётся найти группы с обоими условиями)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "Не удаётся найти группу с указанным атрибутом членства" @@ -2599,7 +2607,7 @@ msgstr "Системный администратор" msgid "Forbidden" msgstr "Запрещено" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "Попытка доступа из недопустимого источника" @@ -2694,7 +2702,7 @@ msgstr "" #: core/consts/calendar.py:160 msgid "Remove OLD assigned user services." -msgstr "Удалите СТАРЫЕ назначенные пользовательские службы." +msgstr "Удалить СТАРЫЕ назначенные пользовательские службы." #: core/consts/calendar.py:165 msgid "Time in hours before considering the user service is OLD." @@ -2711,28 +2719,28 @@ msgstr "Очистить кеш L2" #: core/consts/calendar.py:185 msgid "Custom message on launchers" -msgstr "Пользовательское сообщение в лаунчерах" +msgstr "Персонализированное сообщение на панелях запуска" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "" "Уже публикуется. Подождите, пока предыдущая публикация закончится и " "повторите попытку." -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "Сервис находится в режиме обслуживания, новые публикации запрещены" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "Нельзя отменить не запущенную публикацию" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "Невозможно опубликовать неиспользуемую публикацию" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "Невозможно опубликовать публикацию с сервисами в процессе" @@ -2756,7 +2764,7 @@ msgstr "Сервер находится в режиме обслуживания msgid "Server is restrained" msgstr "Сервер ограничен" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "" "Достигнуто максимальное количество пользовательских сервисов для этого {}" @@ -2774,7 +2782,7 @@ msgstr "" msgid "The requested service is restrained" msgstr "Запрашиваемая услуга ограничена" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2782,15 +2790,15 @@ msgstr "" "Недействительный сервис. В настоящий момент услуга недоступна. Пожалуйста, " "попробуйте позднее" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "Подходящего транспорта не найдено" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "Запрошенный транспорт {} недействителен для {}" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "Сервис недоступен с этого устройства" @@ -2802,11 +2810,11 @@ msgstr "Количество секунд для игнорирования по msgid "Base Notifier" msgstr "Базовый уведомитель" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "Разрешить вход пользователя" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "Запретить вход пользователя" @@ -2824,7 +2832,7 @@ msgstr "" msgid "Base MFA" msgstr "База МФА" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "Неверный код МФА" @@ -2832,7 +2840,7 @@ msgstr "Неверный код МФА" msgid "No check method provided." msgstr "Не проверять предоставленный метод" -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "Не применяется метод проверки соединения." @@ -2880,12 +2888,12 @@ msgstr "Базовая машина" msgid "Base machine for this service" msgstr "Базовая машина для этой услуги" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "Ключ услуги" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " @@ -2894,23 +2902,32 @@ msgstr "" "Ключ услуги, который будет использоваться клиентами для связи с сервисом. " "Оставьте пустым для постоянного назначения." -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "Машины" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "Машины для этой услуги" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "Рандомизировать назначение машины" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "" +"Если этот параметр активен, UDS будет назначать машины случайным образом, а " +"не линейным." + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "Использовать моментальные снимки" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2918,34 +2935,24 @@ msgstr "" "Если этот параметр активен, UDS попытается создать снимок (если он еще не " "существует) перед доступом к машине и восстановить его после использования." -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "Тип снимка" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "Нет снимка" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "Восстановить снимок и остановить машину" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "Восстановить снимок и запустить машину" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "Рандомизировать назначение машины" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "" -"Если этот параметр активен, UDS будет назначать машины случайным образом, а " -"не линейным." - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3189,11 +3196,11 @@ msgstr "Машина" msgid "Config" msgstr "Конфигурация" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "Время истечения сеанса в часах после публикации" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" @@ -3201,7 +3208,7 @@ msgstr "" "Задержка между проверками кэша. Уменьшение этого числа увеличит скорость " "генерации кэша, но также увеличит нагрузку на поставщиков услуг." -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3211,7 +3218,7 @@ msgstr "" "потоков развернутая задача завершится раньше, но создаст большую нагрузку на " "систему в целом." -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3221,7 +3228,7 @@ msgstr "" "количестве потоков развернутая задача завершится раньше, но это приведет к " "большей нагрузке на всю систему." -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3229,33 +3236,33 @@ msgstr "" "Время ожидания перед удалением «ошибочных» и «удаленных» публикаций, кэша и " "компьютеров, назначенных пользователем. Время в секундах" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "" "Время поддержания элемента «информационного состояния» перед его удалением, " "в секундах" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "" "Количество служб, которые необходимо инициировать удаление за один запуск " "службы очистки" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "" -"Удаление Время проверки кеша, публикаций и развернутых сервисов, в секундах" +"Время проверки удаления кэша, публикаций и развернутых сервисов, в секундах" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "Имя суперпользователя" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "Пароль суперпользователя" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3264,11 +3271,11 @@ msgstr "" "Разрешить пользователю root доступ через веб-интерфейс. После настройки " "одного аутентификатора рекомендуется отключить эту опцию." -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "Включить расширенные модули безопасности" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." @@ -3276,51 +3283,51 @@ msgstr "" "Принудительный режим максимальной безопасности (режим нулевого доверия). " "Если этот режим установлен, перенаправление пароля не будет разрешено." -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" msgstr "" "Как долго пользовательская служба должна оставаться неиспользуемой, прежде " -"чем менеджер ОС рассмотрит возможность ее удаления?" +"чем менеджер ОС рассмотрит возможность ее удаления" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "" "Время между проверками неиспользуемых пользовательских сервисов менеджерами " "ОС" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "" "Максимальное количество входов в систему перед блокировкой аккаунта на " "некоторое время" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "" "Время блокировки в секундах для пользователя, у которого слишком много " "неудачных попыток входа в систему." -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "Блокировать IP при неудачном входе в систему" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "Сделать автозапуск службы, если только одна служба" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "Перенаправлять HTTP на HTTPS при подключении к UDS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "" "Перенаправляет страницу входа на тег, используемый при входе в систему, если " "он активен." -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" @@ -3328,7 +3335,7 @@ msgstr "" "Максимальное время, необходимое для того, чтобы услуга стала «полностью " "функциональной», прежде чем она будет признана «неудавшейся» и удалена." -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" @@ -3336,27 +3343,27 @@ msgstr "" "Максимальное время, необходимое для «полного удаления» службы, прежде чем " "она будет признана «неудавшейся» и удалена." -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "" "Максимальное количество журналов для каждого элемента администрирования, " "поддерживающего журналирование." -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "" "Максимальное количество записей в общих журналах UDS (0 = неограниченно, " "используйте с осторожностью)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "" "Пришло время ограничить работу пользовательской службы на случай, если в " "какой-то момент она выдаст ошибки." -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" @@ -3364,44 +3371,44 @@ msgstr "" "Количество ошибок, которые должны произойти за «restrainTime», чтобы " "ограничить работу пользовательской службы." -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "Продолжительность хранения статистики, в днях" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "" "Частота сбора статистики в секундах. По умолчанию 4 часа (14400 секунд)." -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "" "Максимальное количество времени, которое можно накопить за один прогон. По " "умолчанию 7 (1 неделя)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "Не отображать список аутентификаторов на странице входа в систему" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "" "Уведомлять пользователя о существовании новой версии сервиса при новой " "публикации" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "Сети или хосты, считающиеся «доверенными» для UDS (туннели и т. д.)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "" "IP-адреса или сети, которым разрешено пересылать запросы (например, прокси-" "серверы)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" @@ -3409,11 +3416,11 @@ msgstr "" "Разрешить клиентам сообщать свой собственный IP-адрес (если он установлен) " "или всегда использовать IP-адрес, извлеченный из запроса." -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "Если перед нами прокси (т.е. HAProxy, или любой NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3422,89 +3429,89 @@ msgstr "" "только когда количество вошедших в систему пользователей достигает 0, это " "считается «вышедшим из системы»." -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "Включить/отключить блокировку IP-адресов при обнаружении атак субъекта" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "Максимальная продолжительность сеанса для администратора" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "Максимальная продолжительность сеанса для пользователя" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "Время перезагрузки страницы (устаревшее)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "" "Пользовательское сообщение об ошибке, если доступ ограничен правилами " "календаря" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "Преобразовать имя пользователя в нижний регистр при входе в систему" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "" "Глобальный идентификатор UDS (общий для всех серверов в одном кластере)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "Отображаемое имя сайта" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "Информация об авторских правах на сайте" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "Веб-адрес, на который будет вести ссылка с копирайта" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "" "Текст, который отображается рядом с логотипом на верхней панели навигации" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "" "Пользовательские стили CSS, применяемые к сайту, доступному пользователю." -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "Информация о сайте" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "" "Показывать поле фильтра для пользовательских служб вверху или внизу страницы" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "" "Минимальное количество пользовательских служб, необходимых для отображения " "фильтра" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "Включить экспериментальные функции. ИСПОЛЬЗУЙТЕ С ОСТОРОЖНОСТЬЮ!!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "Количество элементов на странице в таблицах администратора" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "" "Список доверенных хостов/сетей, которым разрешен доступ к интерфейсу " "администратора" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "Включить меню VNC для пользовательских сервисов" @@ -3561,7 +3568,7 @@ msgid "Base name for clones from this service" msgstr "Базовое имя для клонов этого сервиса" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "Длина имени" @@ -3598,9 +3605,10 @@ msgstr "" msgid "Remove found duplicates" msgstr "Удалить найденные дубликаты" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" -msgstr "Если активен, найденные дубликаты vApps для этой службы будут удалены" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" +msgstr "Если активны, найденные дубликаты VApps для этой службы будут удалены." #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3684,11 +3692,11 @@ msgstr "" #: core/util/fields.py:466 msgid "MFA policy networks" -msgstr "Политические сети МИД" +msgstr "Сети политики МФА" #: core/util/fields.py:470 msgid "Networks where MFA policy will be enforced if required" -msgstr "Сети, в которых при необходимости будет применяться политика MFA." +msgstr "Сети, в которых при необходимости будет применяться политика МФА." #: core/util/fields.py:482 msgid "Policy for users without MFA support" @@ -3696,7 +3704,8 @@ msgstr "Политика для пользователей без поддерж #: core/util/fields.py:485 msgid "Policy for users without MFA or server failed to ask for MFA" -msgstr "Политика для пользователей без MFA или сервера не смогла запросить MFA" +msgstr "" +"Политика для пользователей без МФА или если сервер не смог запросить МФА" #: core/util/fields.py:498 msgid "Put back to cache" @@ -3707,16 +3716,16 @@ msgid "" "On machine releasy by logout, put it back to cache instead of deleting if " "possible." msgstr "" -"При выходе из системы после освобождения компьютера по возможности поместите " +"При выходе из системы после освобождения компьютера по возможности поместить " "его обратно в кэш вместо удаления." #: core/util/fields.py:501 msgid "No. Never put it back to cache" -msgstr "Нет. Никогда не помещайте его обратно в кэш." +msgstr "Нет. Никогда не помещать его обратно в кэш." #: core/util/fields.py:502 msgid "Yes, try to put it back to cache" -msgstr "Да, попробуйте вернуть его в кэш" +msgstr "Да, попробовать вернуть его в кэш" #: core/util/fields.py:515 msgid "User Name Attr" @@ -3762,124 +3771,124 @@ msgstr "Не удаётся связаться с сервером LDAP" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{} дней {:d}:{:02d}:{:02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "Численный" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0} должен быть больше или равен чем {1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0} должен быть меньше либо равен, чем {1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0} содержит недопустимые символы" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "" "{} не является допустимым именем хоста: превышена максимальная длина имени " "хоста." -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} не является допустимым именем хоста: (домены не разрешены)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} не является допустимым именем хоста: (недопустимые символы)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} не является допустимым URL-адресом: превышает максимальную длину." -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} не является допустимым адресом IPv4." -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} не является допустимым адресом IPv6." -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} не является допустимым адресом IPv4 или IPv6." -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} превышает максимальную длину пути." -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} не является допустимым путем Windows" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} не является допустимым путем Unix" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} не является допустимым путем" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} не является допустимой парой хост:порт" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} не является допустимым MAC-адресом" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} не является допустимым диапазоном MAC-адресов" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "Адрес электронной почты слишком длинный" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "Адрес электронной почты недействителен" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "Базовое имя не является допустимым для имени хоста" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "Длина базового имени плюс длина должна быть больше 0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "Длина базового имени плюс длина числовой части не должна превышать 15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "Имя машины не может состоять только из цифр" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "Неверные данные JSON" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "Сертификат пуст" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "Неверный сертификат" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "Закрытый ключ пуст" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "Неверный закрытый ключ" @@ -4069,35 +4078,49 @@ msgstr "" "узнать, должен ли этот пользователь вводить OTP. Если флажок установлен, все " "пользователи должны вводить OTP, поэтому шаг аутентификации пропускается." -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "Отправлять на сервер Radius только имя пользователя (без домена)" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "" +"Если флажок не установлен, имя пользователя будет отправлено как есть на " +"сервер радиуса. Если флажок установлен, доменная часть будет удалена из " +"имени пользователя перед отправкой на сервер радиуса." + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "OTP-код" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "Пожалуйста, введите одноразовый код" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "Ошибка подключения Radius OTP" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "Неверный OTP-код" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "СМС через HTTP" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "Простая отправка СМС МФА с использованием HTTP/HTTPS" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "Шаблон URL для отправки СМС" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4109,16 +4132,16 @@ msgstr "" "{code} - код для отправки * {phone/+phone} - номер телефона * {username} - " "имя пользователя * {justUsername} - имя пользователя без @...." -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "HTTP-сервер" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "Игнорировать ошибки сертификата" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -4126,19 +4149,19 @@ msgstr "" "Если этот флажок установлен, сертификат сервера будет игнорироваться. Это " "полезно, если сервер использует самозаверяющий сертификат." -#: mfas/SMS/mfa.py:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "Способ отправки СМС" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "Способ отправки СМС" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "Заголовки для СМС-запросов" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -4152,11 +4175,11 @@ msgstr "" "имя пользователя * {justUsername} - имя пользователя без @.... Заголовки в " "виде «Заголовок: Значение». (без кавычек)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "Параметры POST/PUT для отправки СМС " -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -4169,51 +4192,51 @@ msgstr "" "переменные: * {code} - код для отправки * {phone/+phone} - номер телефона * " "{username} - имя пользователя * {justUsername} - имя пользователя без @...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "Кодировка СМС" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "Кодировка для СМС" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "Метод аутентификации по СМС" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "Базовая HTTP-аутентификация" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "Дайджест-аутентификация HTTP" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "HTTP-аутентификация" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "Пользователь или токен СМС-аутентификации" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "Пользователь или токен для СМС-аутентификации" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "Пароль для СМС-аутентификации" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "Пароль для СМС-аутентификации" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "Регулярное выражение СМС-ответа OK" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." @@ -4221,42 +4244,42 @@ msgstr "" "Регулярное выражение для СМС-ответа OK. Если пусто, ответ считается ОК, если " "код состояния равен 200." -#: mfas/SMS/mfa.py:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "HTTP-ответ" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "Действие при ошибке ответа СМС" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "Действия при ошибке ответа на СМС" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "" "Разрешить пользователю входить в систему, если его IP-адрес есть в списке " "сетей" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "" "Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "Отправка СМС не удалась" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "Ошибка ответа на СМС" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "Код МФА" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 msgid "Check your phone. You will receive an SMS with the verification code" msgstr "Проверьте свой телефон. Вам было отправлено СМС с кодом подтверждения" @@ -4304,15 +4327,15 @@ msgstr "Количество действующих кодов до и посл msgid "Authentication Code" msgstr "Код аутентификации" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "Введите код аутентификации" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "Код уже используется. Подождите минуту и повторите попытку." -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "Неверный код" @@ -4449,7 +4472,7 @@ msgstr "" #: osmanagers/LinuxOsManager/linux_ad_osmanager.py:51 msgid "Linux Active Directory OS Manager" -msgstr "Диспетчер ОС Linux Active Directory" +msgstr "Менеджер ОС Linux Active Directory" #: osmanagers/LinuxOsManager/linux_ad_osmanager.py:53 msgid "Os Manager to control Linux virtual machines with active directory" @@ -4548,7 +4571,7 @@ msgstr "Серверное программное обеспечение" #: osmanagers/LinuxOsManager/linux_ad_osmanager.py:112 msgid "Use specific server software" -msgstr "Используйте специальное серверное программное обеспечение" +msgstr "Позволяет указать специальное серверное программное обеспечение" #: osmanagers/LinuxOsManager/linux_ad_osmanager.py:115 msgid "Active Directory" @@ -4601,21 +4624,21 @@ msgstr "Необходимо указать аккаунт для ввода м msgid "Must provide a password for the account!" msgstr "Необходимо указать пароль для аккаунта!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux ОС менеджер" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Менеджер ОС для управления виртуальными машинами Linux" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "Максимальное время простоя" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4623,12 +4646,12 @@ msgstr "" "Максимальное время простоя (в секундах) перед автоматическим закрытием " "сессии (0 - означает отсутствием лимита)" -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "Выход по календарю" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4702,22 +4725,22 @@ msgstr "" "Максимальное время простоя (в секундах) перед автоматическим закрытием " "сеанса пользователя ( 0 означает отсутствие лимита)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "UDS Агент для windows машин" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "" "UDS Агент для неуправляемых машин Windows. Используется ТОЛЬКО для " "статических машин." -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic ОС менеджер" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "ОС менеджер для управления Windows-машинами без домена" @@ -5070,21 +5093,21 @@ msgstr "Использование пулов в день" msgid "Pools usage counters for an specific day" msgstr "Счётчики использования пулов за определённый день" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "Сервисы за час" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "Часы" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "Отчёт об использовании услуг за день" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "Отчёт об использовании услуги" @@ -5239,7 +5262,7 @@ msgstr "" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -5255,23 +5278,23 @@ msgstr "Регион по умолчанию" msgid "Default region to use for connecting to EC2" msgstr "Регион по умолчанию для подключения к EC2" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "Существующий сервис AMI AWS" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "" "Этот сервис предоставляет доступ к AWS VDI на основе существующего " "собственного AMI." -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "" "Желаемое количество запущенных виртуальных машин, ожидающих пользователя" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5281,15 +5304,15 @@ msgstr "" "Количество желаемых виртуальных машин, которые нужно оставить в ожидании " "использования" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "Базовый AMI для этой службы" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5298,37 +5321,37 @@ msgstr "Базовый AMI для этой службы" msgid "Region" msgstr "Регион" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "Регион для этой услуги" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "Тип экземпляра" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "Тип для экземпляров, созданных из AMI." -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "Ключевая пара" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "Ключевая пара, используемая для этой машины" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "VPC" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "VPC для инстансов из этого сервиса" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5336,19 +5359,19 @@ msgstr "VPC для инстансов из этого сервиса" msgid "Network" msgstr "Сети" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "Подсеть" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "Подсеть для экземпляров из этого сервиса" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "Группы безопасности" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "Группы безопасности для экземпляров из этого сервиса" @@ -5367,7 +5390,7 @@ msgid "Service region" msgstr "Регион сервиса" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5375,7 +5398,7 @@ msgid "After logout" msgstr "После выхода из системы" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5385,7 +5408,7 @@ msgstr "" "системы." #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5412,7 +5435,7 @@ msgid "Obtained from subscriptions" msgstr "Полученные от подписок" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "Таймаут в секундах соединения с сервером" @@ -5521,59 +5544,61 @@ msgstr "Стационарные машины Azure" msgid "Azure Services based on fixed machines." msgstr "Службы Azure на основе фиксированных компьютеров." -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "Остановить машину (и освободить ее)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Поставщик облачной платформы Google" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "Обеспечивает подключение к вычислительному движку Google Cloud Platform" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "Электронная почта клиента" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "Клиентский адрес электронной почты для учетной записи службы" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "URI токена" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "" "URL-адрес токена, предоставленный Google (по умолчанию для Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "Закрытый ключ" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "Закрытый ключ для учетной записи сервиса" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "Идентификатор проекта" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Идентификатор проекта для Google Cloud" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "Предпочтительный регион" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "Предпочтительный регион для новых услуг" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Поставщик облачных услуг Google" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "Обеспечивает подключение к Google Cloud Compute Engine" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "Соединение успешно установлено" @@ -5878,7 +5903,6 @@ msgid "VCPUS" msgstr "Виртуальные процессоры" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "" "Количество виртуальных процессоров (\"-1\" означает \"оставить исходное " @@ -5890,7 +5914,6 @@ msgid "Cores per VCPU" msgstr "Количество ядер на виртуальный процессор" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "" "Количество виртуальных ядер (\"-1\" означает \"оставить исходное количество " @@ -5914,7 +5937,6 @@ msgid "No" msgstr "Нет" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "" "Требуется задать количество виртуальных процессоров и количество ядер на " @@ -5984,12 +6006,33 @@ msgstr "Служба Nutanix Acropolis" msgid "Nutanix Acropolis based service" msgstr "Основная служба Nutanix Acropolis" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "" +"Количество виртуальных ЦП (нулевое значение означает «сохранить исходные " +"виртуальные ЦП машины»)" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "" +"Количество виртуальных ЦП (нулевое значение означает «сохранить исходные " +"ядра машины на виртуальный ЦП»)" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "Сеть для машин (каждая созданная машина будет прикреплена к этой сети)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "Оба параметра — «Ядра на VCPU» и «Число VCPUS» — должны быть больше 0." + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Стационарные машины Nutanix" @@ -6288,23 +6331,23 @@ msgstr "Базовый шаблон" msgid "Service base template" msgstr "Шаблон для развертывания образов" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "Имена машин" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "Базовое имя для клонов этой машины" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "Размер числовой части названий этих машин" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "Ошибка аутентификации" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6599,14 +6642,19 @@ msgid "Static Single IP" msgstr "Статический одиночный IP-адрес" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "Сервис предоставляет доступ к включенным машинам по IP" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "" +"Эта служба обеспечивает доступ к включенной машине по IP. (Вы можете " +"настроить WOL для включения машины)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "IP-адрес хоста/полное доменное имя" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" @@ -6614,11 +6662,11 @@ msgstr "" "IP или FQDN сервера для подключения. Может включать MAC-адрес, разделенный " "\";\" после IP/имени хоста" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "Использован недопустимый сервер: \"{}\"" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "Использован неверный MAC-адрес: «{}»" @@ -6655,7 +6703,7 @@ msgid "" "Use API Token and secret instead of password. (username must contain the " "Token ID, the password will be the secret)" msgstr "" -"Используйте API-токен и секрет вместо пароля. (имя пользователя должно " +"Использовать API-токен и секрет вместо пароля. (имя пользователя должно " "содержать идентификатор токена, пароль будет секретом)" #: services/Proxmox/provider.py:98 @@ -7000,35 +7048,35 @@ msgstr "RDS платформа RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "Сервис RDS Platform на основе RemoteAPP" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "Путь приложения" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "Полный путь к приложению, который эта служба будет представлять" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "Параметры приложения" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "Параметры приложений, которые будут переданы в командной строке" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "Начальный путь" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Путь, где будет запущено приложение. (т.е. папка f:\\example\\)" -#: services/RDS_enterprise/service.py:86 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "Ожидание порожденных процессов" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -7036,7 +7084,7 @@ msgstr "" "Если активен, RDS Actor будет ждать, пока приложение и все порожденные " "процессы завершены до того, как приложение выйдет из системы" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "Требуется допустимый путь к приложению" @@ -7248,7 +7296,7 @@ msgstr "Ничего не проверено, но все прошло хоро #: services/Test/service.py:54 msgid "Testing Service no cache" -msgstr "Служба тестирования без кеша" +msgstr "Тестовый сервис без кеша" #: services/Test/service.py:56 msgid "Testing (and dummy) service with no cache" @@ -7256,7 +7304,7 @@ msgstr "Тестовый (и фиктивный) сервис без кеша" #: services/Test/service.py:86 msgid "Testing Service WITH cache" -msgstr "Тестирование сервиса С кешем" +msgstr "Тестовый сервис С кешем" #: services/Test/service.py:88 msgid "Testing (and dummy) service with CACHE and PUBLICATION" @@ -7319,28 +7367,32 @@ msgstr "Виртуальный ЦОД (vDatacenter)" msgid "Virtual Datacenter" msgstr "Виртуальный ЦОД" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "Если активен, найденные дубликаты vApps для этой службы будут удалены" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "Каталог" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "vApps каталог источника" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "Шаблон vApp" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "Шаблон vApp для службы" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "Основная сеть" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" @@ -7348,7 +7400,7 @@ msgstr "" "Если на машине найдено несколько интерфейсов, используйте первый найденный в " "этой сети как основной" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "Разрешены только шаблоны vApp с 1 ВМ" @@ -8009,7 +8061,7 @@ msgstr "Открывать HTML в новом окне" #: transports/HTML5RDP/html5rdp.py:234 msgid "Select windows behavior for new connections on HTML5" -msgstr "Выберите поведение Windows для новых подключений в HTML5" +msgstr "Выбрать поведение Windows для новых подключений в HTML5" #: transports/HTML5RDP/html5rdp.py:239 transports/URL/url_custom.py:83 msgid "Open every connection on the same window, but keeps UDS window." @@ -8064,7 +8116,7 @@ msgstr "Порт RDP" #: transports/HTML5RDP/html5rdp.py:286 transports/RDP/rdp_base.py:197 #: transports/RDS_enterprise/rds_base.py:147 msgid "Use this port as RDP port. Defaults to 3389." -msgstr "Используйте этот порт как порт RDP. По умолчанию 3389." +msgstr "Использовать этот порт как порт RDP. По умолчанию 3389." #: transports/HTML5RDP/html5rdp.py:294 msgid "Glyptodon Enterprise context path" @@ -8929,18 +8981,18 @@ msgstr "Двоичный appimage ARMHF Linux-клиент (Raspberry, ...)" msgid "Generic .tar.gz Linux client" msgstr "Общий .tar.gz Linux-клиент" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Аутентификатор не предоставляет информацию" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} дней" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} часы" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" msgstr "Внутренняя ошибка" diff --git a/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po index 1701e4dd1..c11ebdbd0 100644 --- a/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po @@ -19,6 +19,7 @@ # Translators: # Translators: # Translators: +# Translators: # Adolfo Gómez , 2022 # Alexander , 2020 # Alexey Shabalin , 2019 @@ -34,9 +35,9 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" -"Last-Translator: Александр Бурматов, 2022\n" +"Last-Translator: Elena Mishina, 2022-2024\n" "Language-Team: Russian (http://app.transifex.com/openuds/openuds/language/" "ru/)\n" "Language: ru\n" @@ -643,7 +644,7 @@ msgstr "Информация" #: static/admin/translations-fakejs.js:143 msgid "Clean related (mfa,...)" -msgstr "Связанные с чистотой (mfa,...)" +msgstr "Очистить связанные данные (мфа,...)" #: static/admin/translations-fakejs.js:144 #: static/admin/translations-fakejs.js:161 @@ -1009,7 +1010,7 @@ msgstr "Записи не найдены" #: static/admin/translations-fakejs.js:262 msgid "Select" -msgstr "Выбирать" +msgstr "Выбрать" #: static/admin/translations-fakejs.js:267 msgid ", (%i more items)" @@ -1622,19 +1623,19 @@ msgstr "Разделитель" #: static/admin/translations-fakejs.js:530 msgid "Use comma" -msgstr "Используйте запятую" +msgstr "Использовать запятую" #: static/admin/translations-fakejs.js:531 msgid "Use semicolon" -msgstr "Используйте точку с запятой" +msgstr "Использовать точку с запятой" #: static/admin/translations-fakejs.js:532 msgid "Use pipe" -msgstr "Использовать трубу" +msgstr "Использовать вертикальную черту" #: static/admin/translations-fakejs.js:533 msgid "Use tab" -msgstr "Использовать вкладку" +msgstr "Использовать табуляцию" #: static/admin/translations-fakejs.js:534 msgid "File" 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 660c3ae09..9d64a3062 100644 --- a/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po +++ b/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po @@ -22,11 +22,12 @@ # Translators: # Translators: # Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier , 2014\n" "Language-Team: Chinese (http://app.transifex.com/openuds/openuds/language/" @@ -55,11 +56,11 @@ msgid "Name" msgstr "名称" #: REST/methods/accounts.py:69 REST/methods/authenticators.py:74 -#: REST/methods/calendarrules.py:110 REST/methods/calendars.py:72 +#: REST/methods/calendarrules.py:108 REST/methods/calendars.py:72 #: REST/methods/meta_pools.py:88 REST/methods/mfas.py:62 #: REST/methods/notifiers.py:73 REST/methods/osmanagers.py:61 #: REST/methods/providers.py:75 REST/methods/servers_management.py:422 -#: REST/methods/services.py:225 REST/methods/services_pool_groups.py:79 +#: REST/methods/services.py:234 REST/methods/services_pool_groups.py:79 #: REST/methods/transports.py:72 REST/methods/tunnels_management.py:154 #: REST/methods/user_services.py:440 REST/methods/users_groups.py:172 #: REST/methods/users_groups.py:391 REST/model/base.py:172 @@ -75,45 +76,45 @@ msgstr "时间标记" #: REST/methods/mfas.py:63 REST/methods/networks.py:86 #: REST/methods/notifiers.py:74 REST/methods/osmanagers.py:63 #: REST/methods/providers.py:79 REST/methods/servers_management.py:427 -#: REST/methods/services.py:241 REST/methods/services_pools.py:116 +#: REST/methods/services.py:250 REST/methods/services_pools.py:116 #: REST/methods/transports.py:81 REST/methods/tunnels_management.py:158 msgid "tags" msgstr "标签" -#: REST/methods/accountsusage.py:94 +#: REST/methods/accountsusage.py:92 msgid "Pool name" msgstr "池名称" -#: REST/methods/accountsusage.py:95 core/auths/authenticator.py:145 +#: REST/methods/accountsusage.py:93 core/auths/authenticator.py:145 msgid "User name" msgstr "用户名" -#: REST/methods/accountsusage.py:96 core/types/states.py:200 +#: REST/methods/accountsusage.py:94 core/types/states.py:200 msgid "Running" msgstr "运行" -#: REST/methods/accountsusage.py:97 REST/methods/calendarrules.py:99 +#: REST/methods/accountsusage.py:95 REST/methods/calendarrules.py:97 msgid "Starts" msgstr "启动" -#: REST/methods/accountsusage.py:98 REST/methods/calendarrules.py:100 +#: REST/methods/accountsusage.py:96 REST/methods/calendarrules.py:98 msgid "Ends" msgstr "完" -#: REST/methods/accountsusage.py:99 +#: REST/methods/accountsusage.py:97 msgid "Elapsed" msgstr "过去" -#: REST/methods/accountsusage.py:100 +#: REST/methods/accountsusage.py:98 msgid "Elapsed timemark" msgstr "经过时间标记" -#: REST/methods/accountsusage.py:122 +#: REST/methods/accountsusage.py:120 #, python-brace-format msgid "Usages of {0}" msgstr "{0}的用法" -#: REST/methods/accountsusage.py:124 +#: REST/methods/accountsusage.py:122 msgid "Current usages" msgstr "目前的用法" @@ -185,7 +186,7 @@ msgstr "ID" #: REST/methods/authenticators.py:73 REST/methods/mfas.py:61 #: REST/methods/notifiers.py:70 REST/methods/osmanagers.py:60 #: REST/methods/providers.py:74 REST/methods/servers_management.py:68 -#: REST/methods/servers_management.py:423 REST/methods/services.py:226 +#: REST/methods/servers_management.py:423 REST/methods/services.py:235 #: REST/methods/transports.py:71 REST/methods/user_services.py:364 #: REST/methods/user_services.py:439 msgid "Type" @@ -251,9 +252,9 @@ msgstr "此传输的访问类型。禁用不仅意味着隐藏,而且不能用 msgid "Display" msgstr "显示" -#: REST/methods/authenticators.py:141 core/services/service.py:148 -#: core/services/service.py:157 core/types/permissions.py:16 -#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:194 +#: REST/methods/authenticators.py:141 core/services/service.py:160 +#: core/services/service.py:169 core/types/permissions.py:16 +#: core/types/permissions.py:20 mfas/Email/mfa.py:78 mfas/SMS/mfa.py:195 #: notifiers/email/notifier.py:88 services/Azure_enterprise/helpers.py:121 #: services/Proxmox/service_fixed.py:111 services/Proxmox/service_linked.py:197 #: services/Sample/service.py:96 services/Sample/service.py:102 @@ -281,32 +282,32 @@ msgstr "优化您的查询" msgid "Label must contain only letters, numbers, or symbols: - : ." msgstr "标签必须仅包含字母、数字或符号:- : 。" -#: REST/methods/calendarrules.py:98 +#: REST/methods/calendarrules.py:96 msgid "Rule name" msgstr "规则名称" -#: REST/methods/calendarrules.py:103 +#: REST/methods/calendarrules.py:101 msgid "Repeats" msgstr "重复" -#: REST/methods/calendarrules.py:108 +#: REST/methods/calendarrules.py:106 msgid "Every" msgstr "一切" -#: REST/methods/calendarrules.py:109 +#: REST/methods/calendarrules.py:107 msgid "Duration" msgstr "持续时间" -#: REST/methods/calendarrules.py:151 REST/methods/services.py:189 +#: REST/methods/calendarrules.py:149 REST/methods/services.py:198 msgid "Element already exists (duplicate key error)" msgstr "元素已存在(重复键错误)" -#: REST/methods/calendarrules.py:171 +#: REST/methods/calendarrules.py:169 #, python-brace-format msgid "Rules of {0}" msgstr "{0}的规则" -#: REST/methods/calendarrules.py:173 +#: REST/methods/calendarrules.py:171 msgid "Current rules" msgstr "现行规则" @@ -367,7 +368,7 @@ msgstr "政策" msgid "HA Policy" msgstr "医管局政策" -#: REST/methods/meta_pools.py:103 REST/methods/services.py:233 +#: REST/methods/meta_pools.py:103 REST/methods/services.py:242 #: REST/methods/services_pools.py:109 msgid "User services" msgstr "用户服务" @@ -476,7 +477,7 @@ msgstr "创立日期" #: REST/methods/meta_service_pools.py:215 REST/methods/services_usage.py:125 #: reports/stats/base.py:45 reports/stats/pools_performance.py:237 -#: reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:150 #: reports/stats/pools_usage_summary.py:157 reports/stats/usage_by_pool.py:156 #: services/Proxmox/service_linked.py:112 #: templates/uds/reports/stats/pools-performance.html:33 @@ -663,7 +664,7 @@ msgstr "服务供应商" msgid "Status" msgstr "状态" -#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:147 +#: REST/methods/providers.py:77 reports/stats/pools_usage_day.py:150 #: templates/uds/reports/stats/authenticator_stats.html:16 #: templates/uds/reports/stats/pools-usage-day.html:29 msgid "Services" @@ -683,7 +684,7 @@ msgstr "可用报告" #: REST/methods/reports.py:71 REST/methods/users_groups.py:388 #: REST/methods/users_groups.py:413 -#: auths/ActiveDirectory_enterprise/authenticator.py:199 +#: auths/ActiveDirectory_enterprise/authenticator.py:202 #: auths/AzureAD_enterprise/authenticator.py:98 #: auths/EDirectory_enterprise/authenticator.py:133 #: auths/Radius/authenticator.py:62 auths/RegexLdap/authenticator.py:162 @@ -830,59 +831,59 @@ msgstr "管理" msgid "Unmanaged" msgstr "非托管" -#: REST/methods/servers_management.py:448 REST/methods/services.py:238 -#: REST/methods/services.py:296 +#: REST/methods/servers_management.py:448 REST/methods/services.py:247 +#: REST/methods/services.py:305 msgid "Standard" msgstr "标准" -#: REST/methods/services.py:187 +#: REST/methods/services.py:196 msgid "" "Service token seems to be in use by other service. Please, select a new one." msgstr "服务令牌似乎正在被其他服务使用。请选择一个新的。" -#: REST/methods/services.py:195 +#: REST/methods/services.py:204 #, python-brace-format msgid "Input error: {0}" msgstr "输入错误:{0}" -#: REST/methods/services.py:218 +#: REST/methods/services.py:227 msgid "Services of {}" msgstr "{}的服务" -#: REST/methods/services.py:220 +#: REST/methods/services.py:229 msgid "Current services" msgstr "目前的服务" -#: REST/methods/services.py:224 +#: REST/methods/services.py:233 msgid "Service name" msgstr "服务名称" -#: REST/methods/services.py:229 +#: REST/methods/services.py:238 msgid "Services Pools" msgstr "服务池" -#: REST/methods/services.py:236 +#: REST/methods/services.py:245 msgid "Max services count type" msgstr "最大服务计数类型" -#: REST/methods/services.py:238 REST/methods/services.py:297 +#: REST/methods/services.py:247 REST/methods/services.py:306 msgid "Conservative" msgstr "保守的" -#: REST/methods/services.py:299 +#: REST/methods/services.py:308 msgid "Service counting method" msgstr "服务计数方式" -#: REST/methods/services.py:300 +#: REST/methods/services.py:309 msgid "Kind of service counting for calculating if MAX is reached" msgstr "用于计算是否达到 MAX 的服务计数" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "With errors" msgstr "有错误" -#: REST/methods/services.py:341 REST/methods/users_groups.py:304 +#: REST/methods/services.py:354 REST/methods/users_groups.py:304 #: REST/methods/users_groups.py:523 msgid "Ok" msgstr "好" @@ -1104,7 +1105,7 @@ msgstr "隧道" #: REST/methods/tunnels_management.py:155 #: auths/ActiveDirectory_enterprise/authenticator.py:52 -#: auths/ActiveDirectory_enterprise/authenticator.py:211 +#: auths/ActiveDirectory_enterprise/authenticator.py:214 #: auths/EDirectory_enterprise/authenticator.py:51 #: auths/Radius/authenticator.py:66 auths/RegexLdap/authenticator.py:63 #: auths/SimpleLDAP/authenticator.py:58 mfas/Radius/mfa.py:71 @@ -1128,6 +1129,10 @@ msgstr "用户可见隧道的服务器的主机名或 IP 地址" msgid "Port where the tunnel is visible by the users" msgstr "用户可见隧道的端口" +#: REST/methods/tunnels_management.py:214 +msgid "Cannot delete a tunnel server group with transports attached" +msgstr "无法删除附加了传输的隧道服务器组" + #: REST/methods/user_services.py:167 REST/methods/user_services.py:298 #: REST/methods/user_services.py:550 REST/methods/user_services.py:588 msgid "Revision" @@ -1207,7 +1212,7 @@ msgid "Current users" msgstr "目前的用户" #: REST/methods/users_groups.py:164 -#: auths/ActiveDirectory_enterprise/authenticator.py:197 +#: auths/ActiveDirectory_enterprise/authenticator.py:200 #: auths/EDirectory_enterprise/authenticator.py:131 #: auths/RegexLdap/authenticator.py:160 auths/SimpleLDAP/authenticator.py:180 #: mfas/Email/mfa.py:86 notifiers/email/notifier.py:96 @@ -1333,24 +1338,24 @@ msgstr "" msgid "Networks associated. If No network selected, will mean \"all networks\"" msgstr "网络相关。如果未选择网络,则表示“所有网络”" -#: REST/model/base.py:342 +#: REST/model/base.py:351 msgid "Invalid Request" msgstr "非法请求" -#: REST/model/base.py:353 +#: REST/model/base.py:362 msgid "Method not found in {}: {}" msgstr "在{}中找不到的方法:{}" -#: REST/model/base.py:359 +#: REST/model/base.py:368 msgid "Item not found" msgstr "物品未找到" -#: REST/model/base.py:364 core/types/errors.py:117 +#: REST/model/base.py:373 core/types/errors.py:117 #: web/util/authentication.py:102 msgid "Access denied" msgstr "拒绝访问" -#: REST/model/base.py:367 +#: REST/model/base.py:376 msgid "Operation not supported" msgstr "操作不受支持" @@ -1392,7 +1397,7 @@ msgid "" msgstr "在所选基础上具有读取权限的用户名(使用USER@DOMAIN.DOM表单)" #: auths/ActiveDirectory_enterprise/authenticator.py:87 -#: auths/ActiveDirectory_enterprise/authenticator.py:201 +#: auths/ActiveDirectory_enterprise/authenticator.py:204 #: auths/EDirectory_enterprise/authenticator.py:79 #: auths/RegexLdap/authenticator.py:91 auths/RegexLdap/authenticator.py:164 #: auths/SimpleLDAP/authenticator.py:86 auths/SimpleLDAP/authenticator.py:184 @@ -1448,133 +1453,135 @@ msgstr "" "用于没有域的用户的域(如果为空,将使用用户的域)如果兼容模式不是“Windows NT”" #: auths/ActiveDirectory_enterprise/authenticator.py:118 -#: auths/ActiveDirectory_enterprise/authenticator.py:213 +#: auths/ActiveDirectory_enterprise/authenticator.py:216 msgid "Backup servers" msgstr "备份服务器" -#: auths/ActiveDirectory_enterprise/authenticator.py:121 +#: auths/ActiveDirectory_enterprise/authenticator.py:122 msgid "" -"If not empty, this host will be used in case main host server is not " -"reachable" -msgstr "如果不为空,则在无法访问主主机服务器的情况下将使用此主机" +"If not empty, this list of domain=backup1,backup2,... will be used as backup " +"servers for the domains.If domain is not specified, the backup servers will " +"be used for all domains." +msgstr "如果不为空,则此域=备份1,备份2,..." +"列表将用作域的备份服务器。如果没有指定域,则所有域都将使用备份服务器。" -#: auths/ActiveDirectory_enterprise/authenticator.py:131 +#: auths/ActiveDirectory_enterprise/authenticator.py:134 #: auths/EDirectory_enterprise/authenticator.py:96 core/util/fields.py:229 msgid "Verify SSL" msgstr "验证 SSL" -#: auths/ActiveDirectory_enterprise/authenticator.py:134 +#: auths/ActiveDirectory_enterprise/authenticator.py:137 #: auths/EDirectory_enterprise/authenticator.py:99 core/util/fields.py:232 msgid "" "If checked, SSL verification will be enforced. If not, SSL verification will " "be disabled" msgstr "如果选中,将强制执行 SSL 验证。否则,SSL 验证将被禁用" -#: auths/ActiveDirectory_enterprise/authenticator.py:142 +#: auths/ActiveDirectory_enterprise/authenticator.py:145 #: auths/EDirectory_enterprise/authenticator.py:106 #: auths/RegexLdap/authenticator.py:104 auths/SAML/saml.py:128 #: auths/SimpleLDAP/authenticator.py:99 transports/SPICE/spice_base.py:85 msgid "Certificate" msgstr "证书" -#: auths/ActiveDirectory_enterprise/authenticator.py:144 +#: auths/ActiveDirectory_enterprise/authenticator.py:147 #: auths/EDirectory_enterprise/authenticator.py:108 #: auths/RegexLdap/authenticator.py:106 auths/SimpleLDAP/authenticator.py:101 msgid "Certificate to use for SSL verification" msgstr "用于 SSL 验证的证书" -#: auths/ActiveDirectory_enterprise/authenticator.py:153 +#: auths/ActiveDirectory_enterprise/authenticator.py:156 msgid "Host translation list" msgstr "主机翻译列表" -#: auths/ActiveDirectory_enterprise/authenticator.py:158 +#: auths/ActiveDirectory_enterprise/authenticator.py:161 msgid "" "If not empty, this list of key=value pairs will be used to translate the " "host name from AD to an resolvable hostname." msgstr "如果不为空,则此键=值对列表将用于将主机名从 AD 转换为可解析的主机名。" -#: auths/ActiveDirectory_enterprise/authenticator.py:167 +#: auths/ActiveDirectory_enterprise/authenticator.py:170 msgid "Ignore domains" msgstr "忽略域" -#: auths/ActiveDirectory_enterprise/authenticator.py:171 +#: auths/ActiveDirectory_enterprise/authenticator.py:174 msgid "" "If not empty, this list of domains will be ignored when searching for users. " "Comma separated values." msgstr "如果不为空,则在搜索用户时将忽略此域列表。逗号分隔值。" -#: auths/ActiveDirectory_enterprise/authenticator.py:180 +#: auths/ActiveDirectory_enterprise/authenticator.py:183 msgid "Redirect On Expired" msgstr "重定向过期" -#: auths/ActiveDirectory_enterprise/authenticator.py:182 +#: auths/ActiveDirectory_enterprise/authenticator.py:185 msgid "" "If not empty, if user password is expired, will be automatically redirected " "to this URL" msgstr "如果不为空,如果用户密码过期,会自动重定向到这个URL" -#: auths/ActiveDirectory_enterprise/authenticator.py:189 +#: auths/ActiveDirectory_enterprise/authenticator.py:192 msgid "Active Directory Authenticator" msgstr "Active Directory身份验证器" -#: auths/ActiveDirectory_enterprise/authenticator.py:191 +#: auths/ActiveDirectory_enterprise/authenticator.py:194 msgid "Authenticate against Active Directory" msgstr "针对Active Directory进行身份验证" -#: auths/ActiveDirectory_enterprise/authenticator.py:216 -#: auths/ActiveDirectory_enterprise/authenticator.py:885 +#: auths/ActiveDirectory_enterprise/authenticator.py:219 +#: auths/ActiveDirectory_enterprise/authenticator.py:923 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "必须以USERNAME@DOMAIN.DOM格式指定用户名" -#: auths/ActiveDirectory_enterprise/authenticator.py:474 +#: auths/ActiveDirectory_enterprise/authenticator.py:488 msgid "" "Could not connect to any AD server. Check your configuration (server, ssl " "certificates, ...)." msgstr "无法连接到任何 AD 服务器。检查您的配置(服务器、ssl 证书等)。" -#: auths/ActiveDirectory_enterprise/authenticator.py:758 -#: auths/ActiveDirectory_enterprise/authenticator.py:816 -#: auths/AzureAD_enterprise/authenticator.py:371 -#: auths/EDirectory_enterprise/authenticator.py:311 -#: auths/EDirectory_enterprise/authenticator.py:342 +#: auths/ActiveDirectory_enterprise/authenticator.py:794 +#: auths/ActiveDirectory_enterprise/authenticator.py:854 +#: auths/AzureAD_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:326 +#: auths/EDirectory_enterprise/authenticator.py:357 #: auths/RegexLdap/authenticator.py:398 auths/RegexLdap/authenticator.py:429 -#: auths/SimpleLDAP/authenticator.py:389 auths/SimpleLDAP/authenticator.py:432 +#: auths/SimpleLDAP/authenticator.py:397 auths/SimpleLDAP/authenticator.py:421 msgid "Username not found" msgstr "找不到用户名" -#: auths/ActiveDirectory_enterprise/authenticator.py:800 -#: auths/SimpleLDAP/authenticator.py:422 +#: auths/ActiveDirectory_enterprise/authenticator.py:836 +#: auths/SimpleLDAP/authenticator.py:416 msgid "Group not found" msgstr "未找到组" -#: auths/ActiveDirectory_enterprise/authenticator.py:843 -#: auths/ActiveDirectory_enterprise/authenticator.py:863 -#: auths/EDirectory_enterprise/authenticator.py:357 -#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:451 -#: auths/SimpleLDAP/authenticator.py:467 +#: auths/ActiveDirectory_enterprise/authenticator.py:881 +#: auths/ActiveDirectory_enterprise/authenticator.py:901 +#: auths/EDirectory_enterprise/authenticator.py:372 +#: auths/RegexLdap/authenticator.py:449 auths/SimpleLDAP/authenticator.py:440 +#: auths/SimpleLDAP/authenticator.py:456 msgid "Too many results, be more specific" msgstr "结果太多,更具体" -#: auths/ActiveDirectory_enterprise/authenticator.py:879 -#: auths/Radius/authenticator.py:208 auths/SimpleLDAP/authenticator.py:476 +#: auths/ActiveDirectory_enterprise/authenticator.py:917 +#: auths/Radius/authenticator.py:212 auths/SimpleLDAP/authenticator.py:465 msgid "Error testing connection" msgstr "错误测试连接" -#: auths/ActiveDirectory_enterprise/authenticator.py:899 +#: auths/ActiveDirectory_enterprise/authenticator.py:937 msgid "Connection seems to be incorrect, please check it" msgstr "连接好像不正确,请检查一下" -#: auths/ActiveDirectory_enterprise/authenticator.py:918 +#: auths/ActiveDirectory_enterprise/authenticator.py:956 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "服务器似乎不是Active Directory(它没有用户对象)" -#: auths/ActiveDirectory_enterprise/authenticator.py:940 +#: auths/ActiveDirectory_enterprise/authenticator.py:978 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "服务器似乎不是Active Directory(它没有组对象)" -#: auths/ActiveDirectory_enterprise/authenticator.py:946 +#: auths/ActiveDirectory_enterprise/authenticator.py:984 msgid "Connection params seem correct, test was succesfully executed" msgstr "连接参数似乎正确,测试成功执行" @@ -1626,7 +1633,7 @@ msgstr "回调网址(由UDS填写,仅在必要时修复此问题!)" #: auths/AzureAD_enterprise/authenticator.py:136 #: services/AWS_enterprise/provider.py:65 #: services/Azure_enterprise/provider.py:95 -#: services/Google_enterprise/provider.py:85 services/OpenStack/provider.py:192 +#: services/Google_enterprise/provider.py:96 services/OpenStack/provider.py:192 #: services/OpenStack/provider_legacy.py:162 msgid "Proxy" msgstr "代理" @@ -1685,23 +1692,23 @@ msgstr "用于外部用户的域(空表示没有外部用户)" msgid "This kind of Authenticator does not support white spaces on field NAME" msgstr "这种 Authenticator 不支持字段 NAME 上的空格" -#: auths/AzureAD_enterprise/authenticator.py:331 -#: auths/AzureAD_enterprise/authenticator.py:333 +#: auths/AzureAD_enterprise/authenticator.py:335 +#: auths/AzureAD_enterprise/authenticator.py:337 msgid "User not found" msgstr "未找到用户" -#: auths/AzureAD_enterprise/authenticator.py:378 -#: auths/AzureAD_enterprise/authenticator.py:402 -#: auths/AzureAD_enterprise/authenticator.py:409 +#: auths/AzureAD_enterprise/authenticator.py:382 +#: auths/AzureAD_enterprise/authenticator.py:411 +#: auths/AzureAD_enterprise/authenticator.py:418 msgid "Authenticator exception:" msgstr "验证者例外:" -#: auths/AzureAD_enterprise/authenticator.py:429 -#: auths/AzureAD_enterprise/authenticator.py:443 core/util/ldaputil.py:82 +#: auths/AzureAD_enterprise/authenticator.py:438 +#: auths/AzureAD_enterprise/authenticator.py:453 core/util/ldaputil.py:82 msgid "Connection error: " msgstr "连接错误:" -#: auths/AzureAD_enterprise/authenticator.py:444 +#: auths/AzureAD_enterprise/authenticator.py:454 msgid "Connection params seems correct, test was succesfully executed" msgstr "连接参数似乎是正确的,测试成功执行" @@ -1725,7 +1732,7 @@ msgstr "具有eDirectory读取权限的用户名" #: auths/EDirectory_enterprise/authenticator.py:87 core/util/fields.py:210 #: services/Azure_enterprise/provider.py:84 -#: services/Google_enterprise/provider.py:74 +#: services/Google_enterprise/provider.py:85 #: services/NutanixPrism_enterprise/provider.py:94 #: services/OpenGnsys/provider.py:138 msgid "Timeout" @@ -1736,13 +1743,13 @@ msgid "Timeout in seconds of connection to LDAP" msgstr "连接到LDAP的超时(以秒为单位)" #: auths/EDirectory_enterprise/authenticator.py:115 -#: auths/Radius/authenticator.py:117 auths/SAML/saml.py:207 +#: auths/Radius/authenticator.py:120 auths/SAML/saml.py:207 #: auths/SimpleLDAP/authenticator.py:163 core/util/fields.py:419 msgid "MFA attribute" msgstr "MFA 属性" #: auths/EDirectory_enterprise/authenticator.py:117 -#: auths/Radius/authenticator.py:119 auths/SAML/saml.py:209 +#: auths/Radius/authenticator.py:122 auths/SAML/saml.py:209 #: auths/SimpleLDAP/authenticator.py:165 core/util/fields.py:421 msgid "Attribute from where to extract the MFA code" msgstr "从哪里提取 MFA 代码的属性" @@ -1755,37 +1762,37 @@ msgstr "eDirectory身份验证器" msgid "Authenticate against eDirectory" msgstr "针对eDirectory进行身份验证" -#: auths/EDirectory_enterprise/authenticator.py:368 +#: auths/EDirectory_enterprise/authenticator.py:383 msgid "Connection error" msgstr "连接错误" -#: auths/EDirectory_enterprise/authenticator.py:375 +#: auths/EDirectory_enterprise/authenticator.py:390 msgid "Connection error: {}" msgstr "连接错误: {}" -#: auths/EDirectory_enterprise/authenticator.py:382 -#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:491 +#: auths/EDirectory_enterprise/authenticator.py:397 +#: auths/RegexLdap/authenticator.py:472 auths/SimpleLDAP/authenticator.py:480 msgid "Ldap search base is incorrect" msgstr "Ldap搜索库不正确" -#: auths/EDirectory_enterprise/authenticator.py:399 -#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:507 +#: auths/EDirectory_enterprise/authenticator.py:414 +#: auths/RegexLdap/authenticator.py:490 auths/SimpleLDAP/authenticator.py:496 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "Ldap用户类似乎不正确(该类没有找到用户)" -#: auths/EDirectory_enterprise/authenticator.py:420 -#: auths/SimpleLDAP/authenticator.py:538 +#: auths/EDirectory_enterprise/authenticator.py:435 +#: auths/SimpleLDAP/authenticator.py:527 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" msgstr "Ldap用户标识属性似乎不正确(该属性找不到用户)" -#: auths/EDirectory_enterprise/authenticator.py:441 +#: auths/EDirectory_enterprise/authenticator.py:456 msgid "" "Ldap group attribute seems to be incorrect (no group found by that attribute)" msgstr "LDAP 组属性似乎不正确(该属性未找到组)" -#: auths/EDirectory_enterprise/authenticator.py:463 +#: auths/EDirectory_enterprise/authenticator.py:478 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "Ldap用户类或用户ID attr可能是错误的(Ldap是eDirectory?)" @@ -2002,23 +2009,23 @@ msgstr "NAS 标识符" msgid "NAS Identifier for Radius Server" msgstr "Radius 服务器的 NAS 标识符" -#: auths/Radius/authenticator.py:99 +#: auths/Radius/authenticator.py:100 msgid "App Prefix for Class Attributes" msgstr "类属性的应用程序前缀" -#: auths/Radius/authenticator.py:102 +#: auths/Radius/authenticator.py:103 msgid "Application prefix for filtering groups from \"Class\" attribute" msgstr "用于从“类”属性过滤组的应用程序前缀" -#: auths/Radius/authenticator.py:108 +#: auths/Radius/authenticator.py:110 msgid "Global group" msgstr "全球组" -#: auths/Radius/authenticator.py:111 +#: auths/Radius/authenticator.py:113 msgid "If set, this value will be added as group for all radius users" msgstr "如果设置,此值将作为所有半径用户的组添加" -#: auths/Radius/authenticator.py:220 +#: auths/Radius/authenticator.py:224 msgid "Connection to Radius server failed" msgstr "连接到 Radius 服务器失败" @@ -2446,29 +2453,29 @@ msgstr "简单的LDAP" msgid "Simple LDAP authenticator" msgstr "简单的 LDAP 验证器" -#: auths/SimpleLDAP/authenticator.py:522 +#: auths/SimpleLDAP/authenticator.py:511 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "Ldap组类似乎不正确(该类没有找到组)" -#: auths/SimpleLDAP/authenticator.py:555 +#: auths/SimpleLDAP/authenticator.py:544 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" msgstr "Ldap组id属性似乎不正确(该属性找不到任何组)" -#: auths/SimpleLDAP/authenticator.py:573 +#: auths/SimpleLDAP/authenticator.py:562 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" msgstr "Ldap用户类或用户ID attr可能是错误的(找不到具有这两个条件的任何用户)" -#: auths/SimpleLDAP/authenticator.py:588 +#: auths/SimpleLDAP/authenticator.py:577 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" msgstr "Ldap组类或组ID attr可能是错误的(找不到具有这两个条件的任何组)" -#: auths/SimpleLDAP/authenticator.py:597 +#: auths/SimpleLDAP/authenticator.py:586 msgid "Can't locate any group with the membership attribute specified" msgstr "找不到指定了成员资格属性的任何组" @@ -2480,7 +2487,7 @@ msgstr "系统管理员" msgid "Forbidden" msgstr "被禁止" -#: core/auths/auth.py:293 +#: core/auths/auth.py:296 msgid "Access tried from an unallowed source" msgstr "从不允许的来源尝试访问" @@ -2592,24 +2599,24 @@ msgstr "清理二级缓存" msgid "Custom message on launchers" msgstr "启动器上的自定义消息" -#: core/managers/publication.py:262 +#: core/managers/publication.py:266 msgid "" "Already publishing. Wait for previous publication to finish and try again" msgstr "已经发布。等待以前的出版物完成,然后重试" -#: core/managers/publication.py:266 +#: core/managers/publication.py:270 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "服务处于维护模式,不允许新的出版物" -#: core/managers/publication.py:313 +#: core/managers/publication.py:320 msgid "Can't cancel non running publication" msgstr "无法取消非运行发布" -#: core/managers/publication.py:339 +#: core/managers/publication.py:349 msgid "Can't unpublish non usable publication" msgstr "无法取消发布不可用的出版物" -#: core/managers/publication.py:341 +#: core/managers/publication.py:351 msgid "Can't unpublish publications with services in process" msgstr "无法取消发布正在处理的服务的出版物" @@ -2633,7 +2640,7 @@ msgstr "服务器处于维护模式" msgid "Server is restrained" msgstr "服务器被限制" -#: core/managers/userservice.py:97 +#: core/managers/userservice.py:94 msgid "Maximum number of user services reached for this {}" msgstr "此 {} 达到的最大用户服务数" @@ -2649,21 +2656,21 @@ msgstr "无法删除或取消{},导致其状态不允许" msgid "The requested service is restrained" msgstr "请求的服务被限制" -#: core/managers/userservice.py:942 core/types/errors.py:118 +#: core/managers/userservice.py:943 core/types/errors.py:118 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" msgstr "服务无效。目前无法使用该服务。请稍后再试" -#: core/managers/userservice.py:966 core/managers/userservice.py:971 +#: core/managers/userservice.py:967 core/managers/userservice.py:972 msgid "No suitable transport found" msgstr "未找到合适的交通方式" -#: core/managers/userservice.py:979 +#: core/managers/userservice.py:980 msgid "The requested transport {} is not valid for {}" msgstr "请求的传输{}对{}无效" -#: core/managers/userservice.py:1255 +#: core/managers/userservice.py:1256 msgid "The service is not accessible from this device" msgstr "无法从此设备访问该服务" @@ -2675,11 +2682,11 @@ msgstr "忽略重复消息的秒数" msgid "Base Notifier" msgstr "基本通知程序" -#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:238 +#: core/mfas/mfa.py:124 mfas/SMS/mfa.py:239 msgid "Allow user login" msgstr "允许用户登录" -#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:239 +#: core/mfas/mfa.py:125 mfas/SMS/mfa.py:240 msgid "Deny user login" msgstr "拒绝用户登录" @@ -2695,7 +2702,7 @@ msgstr "如果 IP 在网络列表中,则拒绝用户登录" msgid "Base MFA" msgstr "基础 MFA" -#: core/mfas/mfa.py:374 +#: core/mfas/mfa.py:380 msgid "Invalid MFA code" msgstr "无效的 MFA 代码" @@ -2703,7 +2710,7 @@ msgstr "无效的 MFA 代码" msgid "No check method provided." msgstr "没有提供检查方法。" -#: core/module.py:320 +#: core/module.py:323 msgid "No connection checking method is implemented." msgstr "没有实现连接检查方法。" @@ -2751,35 +2758,42 @@ msgstr "基础机器" msgid "Base machine for this service" msgstr "这项服务的基础机器" -#: core/services/generics/fixed/service.py:80 +#: core/services/generics/fixed/service.py:84 #: services/PhysicalMachines/service_multi.py:61 msgid "Service Token" msgstr "服务令牌" -#: core/services/generics/fixed/service.py:83 +#: core/services/generics/fixed/service.py:87 #: services/PhysicalMachines/service_multi.py:64 msgid "" "Service token that will be used by actors to communicate with service. Leave " "empty for persistent assignation." msgstr "参与者将用于与服务进行通信的服务令牌。留空以进行永久分配。" -#: core/services/generics/fixed/service.py:91 -#: services/Proxmox/service_fixed.py:90 +#: core/services/generics/fixed/service.py:95 #: services/Vmware_enterprise/service_fixed.py:79 msgid "Machines" msgstr "机" -#: core/services/generics/fixed/service.py:93 +#: core/services/generics/fixed/service.py:97 #: services/Vmware_enterprise/service_fixed.py:81 msgid "Machines for this service" msgstr "这项服务的机器" -#: core/services/generics/fixed/service.py:100 +#: core/services/generics/fixed/service.py:105 +msgid "Randomize machine assignation" +msgstr "随机分配机器" + +#: core/services/generics/fixed/service.py:108 +msgid "If active, UDS will assign machines in a random way, instead of linear" +msgstr "如果激活,UDS 将以随机方式分配机器,而不是线性分配" + +#: core/services/generics/fixed/service.py:116 msgid "Use snapshots" msgstr "使用快照" -#: core/services/generics/fixed/service.py:104 -#: core/services/generics/fixed/service.py:116 +#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:131 msgid "" "If active, UDS will try to create an snapshot (if one already does not " "exists) before accessing a machine, and restore it after usage." @@ -2787,32 +2801,24 @@ msgstr "" "如果处于活动状态,UDS 将在访问计算机之前尝试创建快照(如果快照不存在),并在" "使用后将其恢复。" -#: core/services/generics/fixed/service.py:112 +#: core/services/generics/fixed/service.py:127 msgid "Snapshot type" msgstr "快照类型" -#: core/services/generics/fixed/service.py:120 +#: core/services/generics/fixed/service.py:135 msgid "No snapshot" msgstr "无快照" -#: core/services/generics/fixed/service.py:121 +#: core/services/generics/fixed/service.py:136 msgid "Recover snapshot and stop machine" msgstr "恢复快照并停止机器" -#: core/services/generics/fixed/service.py:122 +#: core/services/generics/fixed/service.py:137 msgid "Recover snapshot and start machine" msgstr "恢复快照并启动机器" -#: core/services/generics/fixed/service.py:128 -msgid "Randomize machine assignation" -msgstr "随机分配机器" - -#: core/services/generics/fixed/service.py:131 -msgid "If active, UDS will assign machines in a random way, instead of linear" -msgstr "如果激活,UDS 将以随机方式分配机器,而不是线性分配" - -#: core/services/generics/fixed/service.py:148 -#: services/Azure_enterprise/service_fixed.py:120 +#: core/services/generics/fixed/service.py:150 +#: services/Azure_enterprise/service_fixed.py:121 #: services/HyperV_enterprise/service_fixed.py:91 #: services/NutanixPrism_enterprise/service_fixed.py:121 #: services/Nutanix_enterprise/service_fixed.py:93 @@ -3050,18 +3056,18 @@ msgstr "机" msgid "Config" msgstr "配置" -#: core/util/config.py:398 +#: core/util/config.py:402 msgid "Session expire time in hours after publishing" msgstr "会话在发布后的过期时间(以小时为单位)" -#: core/util/config.py:406 +#: core/util/config.py:410 msgid "" "Delay between cache checks. Reducing this number will increase cache " "generation speed but also will load service providers" msgstr "" "缓存检查之间的延迟。减少此数量将提高缓存生成速度,但也会增加服务提供商的负载" -#: core/util/config.py:415 +#: core/util/config.py:419 msgid "" "Delayed task number of threads PER SERVER, with higher number of threads, " "deployed task will complete sooner, but it will give more load to overall " @@ -3070,7 +3076,7 @@ msgstr "" "每个服务器的延迟任务线程数,线程数越高,部署的任务将更快完成,但会给整个系统" "带来更多负载" -#: core/util/config.py:424 +#: core/util/config.py:428 msgid "" "Number of scheduler threads running PER SERVER, with higher number of " "threads, deployed task will complete sooner, but it will give more load to " @@ -3079,7 +3085,7 @@ msgstr "" "每个服务器运行的调度程序线程数,线程数越高,部署的任务将更快完成,但会给整个" "系统带来更多负载" -#: core/util/config.py:433 +#: core/util/config.py:437 msgid "" "Waiting time before removing \"errored\" and \"removed\" publications, " "cache, and user assigned machines. Time is in seconds" @@ -3087,28 +3093,28 @@ msgstr "" "删除“错误的”和“已删除的”出版物、缓存和用户分配的计算机之前的等待时间。时间以" "秒为单位" -#: core/util/config.py:441 +#: core/util/config.py:445 msgid "Time to maintaing \"info state\" items before removing it, in seconds" msgstr "在删除“信息状态”项目之前维护该项目的时间(以秒为单位)" -#: core/util/config.py:448 +#: core/util/config.py:452 msgid "Number of services to initiate removal per run of service cleaner" msgstr "每次运行服务清理程序启动删除的服务数量" -#: core/util/config.py:455 +#: core/util/config.py:459 msgid "" "Removal Check time for cache, publications and deployed services, in seconds" msgstr "删除检查缓存、发布和已部署服务的时间(以秒为单位)" -#: core/util/config.py:458 +#: core/util/config.py:462 msgid "Superuser username" msgstr "超级用户用户名" -#: core/util/config.py:462 +#: core/util/config.py:466 msgid "Superuser password" msgstr "超级用户密码" -#: core/util/config.py:469 +#: core/util/config.py:473 msgid "" "Allow root user to access using web interface.\n" " Once configured one authenticator,\n" @@ -3116,123 +3122,123 @@ msgid "" msgstr "" "允许 root 用户使用 Web 界面进行访问。一旦配置了一个身份验证器,建议禁用此选项" -#: core/util/config.py:477 +#: core/util/config.py:481 msgid "Enable enhanced security modules" msgstr "启用增强的安全模块" -#: core/util/config.py:485 +#: core/util/config.py:489 msgid "" "Enforced maximum security mode (Zero-Trust Mode). No password redirection " "will be allowed if this mode is set." msgstr "强制最大安全模式(零信任模式)。如果设置此模式,则不允许密码重定向。" -#: core/util/config.py:497 +#: core/util/config.py:501 msgid "" "How long should the user service be unused before os manager considers it " "for removal" msgstr "用户服务应该闲置多长时间,操作系统管理器才会考虑将其删除" -#: core/util/config.py:503 +#: core/util/config.py:507 msgid "Time betwen checks of unused user services by os managers" msgstr "操作系统管理器检查未使用的用户服务的时间间隔" -#: core/util/config.py:512 +#: core/util/config.py:516 msgid "Max logins before blocking an account for a while" msgstr "暂时阻止帐户之前的最大登录次数" -#: core/util/config.py:519 +#: core/util/config.py:523 msgid "Block time in second for an user that has too many login failures" msgstr "登录失败次数过多的用户的阻止时间(以秒为单位)" -#: core/util/config.py:525 +#: core/util/config.py:529 msgid "Block ip on login failure" msgstr "登录失败时阻止 ip" -#: core/util/config.py:534 +#: core/util/config.py:538 msgid "Do autorun of service if just one service" msgstr "如果只有一项服务,则自动运行服务" -#: core/util/config.py:541 +#: core/util/config.py:545 msgid "Redirect HTTP to HTTPS on connection to UDS" msgstr "连接到 UDS 时将 HTTP 重定向到 HTTPS" -#: core/util/config.py:547 +#: core/util/config.py:551 msgid "Redirects login page to the tag used when logged in if active." msgstr "如果处于活动状态,则将登录页面重定向到登录时使用的标签。" -#: core/util/config.py:557 +#: core/util/config.py:561 msgid "" "Max time needed to get a service \"fully functional\" before it's considered " "\"failed\" and removed" msgstr "在服务被视为“失败”并删除之前获得“功能齐全”所需的最长时间" -#: core/util/config.py:564 +#: core/util/config.py:568 msgid "" "Max time needed to get a service \"fully removed\" before it's considered " "\"failed\" and purged" msgstr "在服务被视为“失败”并清除之前“完全删除”服务所需的最长时间" -#: core/util/config.py:571 +#: core/util/config.py:575 msgid "Maximum logs per every log-capable administration element" msgstr "每个具有日志功能的管理元素的最大日志数" -#: core/util/config.py:578 +#: core/util/config.py:582 msgid "" "Maximum logs entries for general UDS logs (0 = unlimited, use with care)" msgstr "通用 UDS 日志的最大日志条目数(0 = 无限制,谨慎使用)" -#: core/util/config.py:586 +#: core/util/config.py:590 msgid "" "Time to restrain a user service in case it gives some errors at some point" msgstr "是时候限制用户服务,以防它在某个时候出现一些错误" -#: core/util/config.py:593 +#: core/util/config.py:597 msgid "" "Number of errors that must occurr in \"restrainTime\" to restrain an user " "service" msgstr "在“restrainTime”内必须发生的错误数以限制用户服务" -#: core/util/config.py:601 +#: core/util/config.py:605 msgid "Statistics duration, in days" msgstr "统计持续时间,以天为单位" -#: core/util/config.py:608 +#: core/util/config.py:612 msgid "" "Frequency of stats collection in seconds. Default is 4 hours (14400 seconds)" msgstr "以秒为单位的统计数据收集频率。默认为 4 小时(14400 秒)" -#: core/util/config.py:615 +#: core/util/config.py:619 msgid "Maximum number of time to accumulate on one run. Default is 7 (1 week)" msgstr "一次运行累积的最大时间数。默认为 7(1 周)" -#: core/util/config.py:623 +#: core/util/config.py:627 msgid "If disallow login showing authenticatiors" msgstr "如果不允许登录显示身份验证器" -#: core/util/config.py:631 +#: core/util/config.py:635 msgid "" "Notify user of existence of a new version of a service on new publication" msgstr "通知用户新出版物上存在新版本的服务" -#: core/util/config.py:638 +#: core/util/config.py:642 msgid "Networks or hosts considered \"trusted\" for UDS (Tunnels, etc...)" msgstr "被视为 UDS“可信”的网络或主机(隧道等...)" -#: core/util/config.py:645 +#: core/util/config.py:649 msgid "IPs or networks allowed to forward requests (like proxies)" msgstr "允许转发请求的 IP 或网络(如代理)" -#: core/util/config.py:653 +#: core/util/config.py:657 msgid "" "Allow clients to notify their own ip (if set), or use always the request " "extracted IP" msgstr "允许客户端通知自己的 IP(如果设置),或始终使用请求提取的 IP" -#: core/util/config.py:661 +#: core/util/config.py:665 msgid "If there is a proxy in front of us (i.e. HAProxy, or any NLB)" msgstr "如果我们前面有一个代理(即HAProxy,或任何NLB)" -#: core/util/config.py:670 +#: core/util/config.py:674 msgid "" "If we use new logout mechanics for osmanagers, where only when the logged in " "users reaches 0, it is considered \"logged out\"" @@ -3240,79 +3246,79 @@ msgstr "" "如果我们为 osmanagers 使用新的注销机制,只有当登录用户达到 0 时,才被视为“注" "销”" -#: core/util/config.py:679 +#: core/util/config.py:683 msgid "Enable/Disable Actor attack detection ip blocking" msgstr "启用/禁用 Actor 攻击检测 ip 阻止" -#: core/util/config.py:687 +#: core/util/config.py:691 msgid "Max session length for Admin" msgstr "管理员的最大会话长度" -#: core/util/config.py:693 +#: core/util/config.py:697 msgid "Max session length for User" msgstr "用户的最大会话长度" -#: core/util/config.py:700 +#: core/util/config.py:704 msgid "Page reload Time (legacy)" msgstr "页面重新加载时间(旧版)" -#: core/util/config.py:708 +#: core/util/config.py:712 msgid "Custom message for error when limiting by calendar" msgstr "受日历限制时出现错误的自定义消息" -#: core/util/config.py:716 +#: core/util/config.py:720 msgid "If convert username to lowercase on logins" msgstr "如果在登录时将用户名转换为小写" -#: core/util/config.py:724 +#: core/util/config.py:728 msgid "Global UDS ID (common for all servers on the same cluster)" msgstr "全局 UDS ID(同一集群上的所有服务器通用)" -#: core/util/config.py:732 +#: core/util/config.py:736 msgid "Site display name" msgstr "站点显示名称" -#: core/util/config.py:738 +#: core/util/config.py:742 msgid "Site copyright info" msgstr "网站版权信息" -#: core/util/config.py:744 +#: core/util/config.py:748 msgid "Site copyright link" msgstr "网站版权链接" -#: core/util/config.py:747 +#: core/util/config.py:751 msgid "Top navbar logo name" msgstr "顶部导航栏徽标名称" -#: core/util/config.py:753 +#: core/util/config.py:757 msgid "Custom CSS styles applied to the user accesible site" msgstr "应用于用户可访问站点的自定义 CSS 样式" -#: core/util/config.py:759 +#: core/util/config.py:763 msgid "Site information" msgstr "站点信息" -#: core/util/config.py:765 +#: core/util/config.py:769 msgid "Show Filter box for user services on Top or bottom of the page" msgstr "在页面顶部或底部显示用户服务的过滤框" -#: core/util/config.py:771 +#: core/util/config.py:775 msgid "Minimal User Services needed to show filter" msgstr "显示过滤器所需的最少用户服务" -#: core/util/config.py:777 +#: core/util/config.py:781 msgid "Enable experimental features. USE WITH CAUTION!!" msgstr "启用实验性功能。谨慎使用!" -#: core/util/config.py:785 +#: core/util/config.py:789 msgid "Number of items per page in admin tables" msgstr "管理表中每页的项目数" -#: core/util/config.py:791 +#: core/util/config.py:795 msgid "List of trusted hosts/networks allowed to access the admin interface" msgstr "允许访问管理界面的受信任主机/网络列表" -#: core/util/config.py:797 +#: core/util/config.py:801 msgid "Enable VNC menu for user services" msgstr "为用户服务启用VNC菜单" @@ -3367,7 +3373,7 @@ msgid "Base name for clones from this service" msgstr "来自此服务的克隆的基本名称" #: core/util/fields.py:255 services/OpenNebula/service.py:129 -#: services/VCloud_enterprise/service.py:110 +#: services/VCloud_enterprise/service.py:113 msgid "Name Length" msgstr "名称长度" @@ -3403,9 +3409,10 @@ msgstr "允许的最大服务数(0表示无限制)" msgid "Remove found duplicates" msgstr "删除找到的重复项" -#: core/util/fields.py:332 services/VCloud_enterprise/service.py:63 -msgid "If active, found duplicates vApps for this service will be removed" -msgstr "如果处于活动状态,则会删除此服务的重复vApp" +#: core/util/fields.py:332 +#| msgid "If active, found duplicates vApps for this service will be removed" +msgid "If active, found duplicates VApps for this service will be removed" +msgstr "如果处于活动状态,则将删除此服务的重复 VApp" #: core/util/fields.py:344 msgid "Try SOFT Shutdown first" @@ -3553,122 +3560,122 @@ msgstr "无法联系LDAP服务器" msgid "{} days {:d}:{:02d}:{:02d}" msgstr "{}天{:d}:{:02d}:{:02d}" -#: core/util/validators.py:67 +#: core/util/validators.py:73 msgid "Numeric" msgstr "数字" -#: core/util/validators.py:73 +#: core/util/validators.py:79 #, python-brace-format msgid "{0} must be greater than or equal to {1}" msgstr "{0}必须大于或等于{1}" -#: core/util/validators.py:78 +#: core/util/validators.py:84 #, python-brace-format msgid "{0} must be lower than or equal to {1}" msgstr "{0}必须小于或等于{1}" -#: core/util/validators.py:84 +#: core/util/validators.py:90 #, python-brace-format msgid "{0} contains invalid characters" msgstr "{0}包含无效字符" -#: core/util/validators.py:95 +#: core/util/validators.py:101 msgid "{} is not a valid hostname: maximum host name length exceeded." msgstr "{} 不是有效的主机名:超出最大主机名长度。" -#: core/util/validators.py:101 +#: core/util/validators.py:107 msgid "{} is not a valid hostname: (domains not allowed)" msgstr "{} 不是有效的主机名:(不允许使用域)" -#: core/util/validators.py:108 +#: core/util/validators.py:114 msgid "{} is not a valid hostname: (invalid characters)" msgstr "{} 不是有效的主机名:(无效字符)" -#: core/util/validators.py:122 +#: core/util/validators.py:128 msgid "{} is not a valid URL: exceeds maximum length." msgstr "{} 不是有效的 URL:超过最大长度。" -#: core/util/validators.py:145 +#: core/util/validators.py:160 msgid "{} is not a valid IPv4 address" msgstr "{} 不是有效的 IPv4 地址" -#: core/util/validators.py:162 +#: core/util/validators.py:185 msgid "{} is not a valid IPv6 address" msgstr "{} 不是有效的 IPv6 地址" -#: core/util/validators.py:179 +#: core/util/validators.py:210 msgid "{} is not a valid IPv4 or IPv6 address" msgstr "{} 不是有效的 IPv4 或 IPv6 地址" -#: core/util/validators.py:208 +#: core/util/validators.py:241 msgid "{} exceeds maximum path length." msgstr "{} 超过最大路径长度。" -#: core/util/validators.py:215 +#: core/util/validators.py:248 msgid "{} is not a valid windows path" msgstr "{} 不是有效的 Windows 路径" -#: core/util/validators.py:218 +#: core/util/validators.py:251 msgid "{} is not a valid unix path" msgstr "{} 不是有效的 Unix 路径" -#: core/util/validators.py:221 +#: core/util/validators.py:254 msgid "{} is not a valid path" msgstr "{} 不是有效路径" -#: core/util/validators.py:284 +#: core/util/validators.py:325 msgid "{} is not a valid host:port pair" msgstr "{} 不是有效的主机:端口对" -#: core/util/validators.py:313 +#: core/util/validators.py:371 msgid "{} is not a valid MAC address" msgstr "{} 不是有效的 MAC 地址" -#: core/util/validators.py:331 +#: core/util/validators.py:398 msgid "{} is not a valid MAC range" msgstr "{} 不是有效的 MAC 范围" -#: core/util/validators.py:344 +#: core/util/validators.py:411 msgid "Email address is too long" msgstr "电子邮件地址太长" -#: core/util/validators.py:347 +#: core/util/validators.py:414 msgid "Email address is not valid" msgstr "电子邮件地址无效" -#: core/util/validators.py:367 +#: core/util/validators.py:433 msgid "The basename is not a valid for a hostname" msgstr "基本名称对于主机名无效" -#: core/util/validators.py:370 +#: core/util/validators.py:436 msgid "The length of basename plus length must be greater than 0" msgstr "基本名称的长度加上长度必须大于0" -#: core/util/validators.py:373 +#: core/util/validators.py:439 msgid "The length of basename plus length must not be greater than 15" msgstr "basename加长度的长度不得大于15" -#: core/util/validators.py:376 +#: core/util/validators.py:442 msgid "The machine name can't be only numbers" msgstr "机器名称不能只是数字" -#: core/util/validators.py:399 +#: core/util/validators.py:465 msgid "Invalid JSON data" msgstr "JSON 数据无效" -#: core/util/validators.py:416 core/util/validators.py:454 +#: core/util/validators.py:482 core/util/validators.py:520 msgid "Certificate is empty" msgstr "证书为空" -#: core/util/validators.py:418 core/util/validators.py:462 +#: core/util/validators.py:484 core/util/validators.py:528 msgid "Invalid certificate" msgstr "证书无效" -#: core/util/validators.py:436 +#: core/util/validators.py:502 msgid "Private key is empty" msgstr "私钥为空" -#: core/util/validators.py:438 +#: core/util/validators.py:504 msgid "Invalid private key" msgstr "私钥无效" @@ -3851,35 +3858,47 @@ msgstr "" "如果未选中,则需要进行身份验证步骤以了解此用户是否必须输入 OTP。如果选中,所" "有用户都必须输入 OTP,因此跳过验证步骤。" -#: mfas/Radius/mfa.py:132 +#: mfas/Radius/mfa.py:115 +msgid "Send only username (without domain) to radius server" +msgstr "仅发送用户名(不带域名)到 radius 服务器" + +#: mfas/Radius/mfa.py:119 +msgid "" +"If unchecked, username will be sent as is to radius server. \n" +"If checked, domain part will be removed from username before sending it to " +"radius server." +msgstr "如果不选中,用户名将按原样发送到 radius 服务器。如果选中,将在将用户名发送到 " +"radius 服务器之前删除其域部分。" + +#: mfas/Radius/mfa.py:144 msgid "OTP Code" msgstr "一次性密码" -#: mfas/Radius/mfa.py:140 +#: mfas/Radius/mfa.py:152 msgid "Please enter OTP" msgstr "请输入一次性密码" -#: mfas/Radius/mfa.py:173 mfas/Radius/mfa.py:244 +#: mfas/Radius/mfa.py:192 mfas/Radius/mfa.py:269 msgid "Radius OTP connection error" msgstr "半径 OTP 连接错误" -#: mfas/Radius/mfa.py:226 +#: mfas/Radius/mfa.py:251 msgid "Invalid OTP code" msgstr "无效的 OTP 代码" -#: mfas/SMS/mfa.py:97 +#: mfas/SMS/mfa.py:98 msgid "SMS via HTTP" msgstr "通过 HTTP 发送短信" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:100 msgid "Simple SMS sending MFA using HTTP/HTTPS" msgstr "使用 HTTP/HTTPS 发送 MFA 的简单短信" -#: mfas/SMS/mfa.py:104 +#: mfas/SMS/mfa.py:105 msgid "URL pattern for SMS sending" msgstr "SMS 发送的 URL 模式" -#: mfas/SMS/mfa.py:107 +#: mfas/SMS/mfa.py:108 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -3891,34 +3910,34 @@ msgstr "" "{phone/+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 " "@.... 的用户名" -#: mfas/SMS/mfa.py:115 mfas/SMS/mfa.py:127 mfas/SMS/mfa.py:137 -#: mfas/SMS/mfa.py:156 mfas/SMS/mfa.py:174 mfas/SMS/mfa.py:185 +#: mfas/SMS/mfa.py:116 mfas/SMS/mfa.py:128 mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:157 mfas/SMS/mfa.py:175 mfas/SMS/mfa.py:186 msgid "HTTP Server" msgstr "HTTP 服务器" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:121 msgid "Ignore certificate errors" msgstr "忽略证书错误" -#: mfas/SMS/mfa.py:124 +#: mfas/SMS/mfa.py:125 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:132 +#: mfas/SMS/mfa.py:133 msgid "SMS sending method" msgstr "短信发送方式" -#: mfas/SMS/mfa.py:134 mfas/SMS/mfa.py:191 +#: mfas/SMS/mfa.py:135 mfas/SMS/mfa.py:192 msgid "Method for sending SMS" msgstr "发送短信的方法" -#: mfas/SMS/mfa.py:144 +#: mfas/SMS/mfa.py:145 msgid "Headers for SMS requests" msgstr "SMS 请求的标头" -#: mfas/SMS/mfa.py:147 +#: mfas/SMS/mfa.py:148 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -3931,11 +3950,11 @@ msgstr "" "+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 @.... 的用户" "名“标题:值”的形式。 (不带引号)" -#: mfas/SMS/mfa.py:163 +#: mfas/SMS/mfa.py:164 msgid "Parameters for SMS POST/PUT sending" msgstr "SMS POST/PUT 发送参数" -#: mfas/SMS/mfa.py:166 +#: mfas/SMS/mfa.py:167 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -3948,90 +3967,90 @@ msgstr "" "* {phone/+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 " "@...." -#: mfas/SMS/mfa.py:179 +#: mfas/SMS/mfa.py:180 msgid "SMS encoding" msgstr "短信编码" -#: mfas/SMS/mfa.py:182 +#: mfas/SMS/mfa.py:183 msgid "Encoding for SMS" msgstr "短信编码" -#: mfas/SMS/mfa.py:189 +#: mfas/SMS/mfa.py:190 msgid "SMS authentication method" msgstr "短信认证方式" -#: mfas/SMS/mfa.py:195 +#: mfas/SMS/mfa.py:196 msgid "HTTP Basic Auth" msgstr "HTTP 基本身份验证" -#: mfas/SMS/mfa.py:196 +#: mfas/SMS/mfa.py:197 msgid "HTTP Digest Auth" msgstr "HTTP摘要认证" -#: mfas/SMS/mfa.py:198 mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 +#: mfas/SMS/mfa.py:199 mfas/SMS/mfa.py:209 mfas/SMS/mfa.py:219 msgid "HTTP Authentication" msgstr "HTTP 身份验证" -#: mfas/SMS/mfa.py:204 +#: mfas/SMS/mfa.py:205 msgid "SMS authentication user or token" msgstr "短信认证用户或令牌" -#: mfas/SMS/mfa.py:206 +#: mfas/SMS/mfa.py:207 msgid "User or token for SMS authentication" msgstr "用于 SMS 身份验证的用户或令牌" -#: mfas/SMS/mfa.py:214 +#: mfas/SMS/mfa.py:215 msgid "SMS authentication password" msgstr "短信认证密码" -#: mfas/SMS/mfa.py:216 +#: mfas/SMS/mfa.py:217 msgid "Password for SMS authentication" msgstr "短信验证密码" -#: mfas/SMS/mfa.py:223 +#: mfas/SMS/mfa.py:224 msgid "SMS response OK regex" msgstr "短信回复 OK 正则表达式" -#: mfas/SMS/mfa.py:225 +#: mfas/SMS/mfa.py:226 msgid "" "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:227 +#: mfas/SMS/mfa.py:228 msgid "HTTP Response" msgstr "HTTP 响应" -#: mfas/SMS/mfa.py:232 +#: mfas/SMS/mfa.py:233 msgid "SMS response error action" msgstr "短信响应错误动作" -#: mfas/SMS/mfa.py:235 +#: mfas/SMS/mfa.py:236 msgid "Action for SMS response error" msgstr "SMS 响应错误的操作" -#: mfas/SMS/mfa.py:240 +#: mfas/SMS/mfa.py:241 msgid "Allow user to login if its IP is in the networks list" msgstr "如果用户的 IP 在网络列表中,则允许用户登录" -#: mfas/SMS/mfa.py:241 +#: mfas/SMS/mfa.py:242 msgid "Deny user to login if its IP is in the networks list" msgstr "如果 IP 在网络列表中,则拒绝用户登录" -#: mfas/SMS/mfa.py:327 +#: mfas/SMS/mfa.py:335 msgid "SMS sending failed" msgstr "短信发送失败" -#: mfas/SMS/mfa.py:343 +#: mfas/SMS/mfa.py:351 msgid "SMS response error" msgstr "短信回复错误" -#: mfas/SMS/mfa.py:424 web/views/main.py:330 +#: mfas/SMS/mfa.py:434 web/views/mfa.py:214 msgid "MFA Code" msgstr "MFA 代码" -#: mfas/SMS/mfa.py:427 +#: mfas/SMS/mfa.py:437 msgid "Check your phone. You will receive an SMS with the verification code" msgstr "检查你的手机。您将收到一条带有验证码的短信" @@ -4079,15 +4098,15 @@ msgstr "当前码前后有效码数" msgid "Authentication Code" msgstr "验证码" -#: mfas/TOTP/mfa.py:140 +#: mfas/TOTP/mfa.py:149 msgid "Enter your authentication code" msgstr "输入您的验证码" -#: mfas/TOTP/mfa.py:188 +#: mfas/TOTP/mfa.py:197 msgid "Code is already used. Wait a minute and try again." msgstr "代码已被使用。请稍等,然后重试。" -#: mfas/TOTP/mfa.py:197 +#: mfas/TOTP/mfa.py:206 msgid "Invalid code" msgstr "无效的代码" @@ -4365,21 +4384,21 @@ msgstr "必须提供一个帐户才能将机器添加到域!" msgid "Must provide a password for the account!" msgstr "必须提供帐户密码!" -#: osmanagers/LinuxOsManager/linux_osmanager.py:51 +#: osmanagers/LinuxOsManager/linux_osmanager.py:50 msgid "Linux OS Manager" msgstr "Linux OS Manager" -#: osmanagers/LinuxOsManager/linux_osmanager.py:53 +#: osmanagers/LinuxOsManager/linux_osmanager.py:52 msgid "Os Manager to control Linux virtual machines" msgstr "Os Manager用于控制Linux虚拟机" -#: osmanagers/LinuxOsManager/linux_osmanager.py:61 +#: osmanagers/LinuxOsManager/linux_osmanager.py:60 #: osmanagers/Test/testing_osmanager.py:75 #: osmanagers/WindowsOsManager/windows.py:40 msgid "Max.Idle time" msgstr "最大闲置时间" -#: osmanagers/LinuxOsManager/linux_osmanager.py:67 +#: osmanagers/LinuxOsManager/linux_osmanager.py:66 msgid "" "Maximum idle time (in seconds) before session is automatically closed to the " "user (<= 0 means no max idle time)." @@ -4387,12 +4406,12 @@ msgstr "" "会话自动关闭给用户之前的最大空闲时间(以秒为单位)(<= 0表示没有最大空闲时" "间)。" -#: osmanagers/LinuxOsManager/linux_osmanager.py:73 +#: osmanagers/LinuxOsManager/linux_osmanager.py:72 #: osmanagers/WindowsOsManager/windows.py:52 msgid "Calendar logout" msgstr "日历登出" -#: osmanagers/LinuxOsManager/linux_osmanager.py:75 +#: osmanagers/LinuxOsManager/linux_osmanager.py:74 #: osmanagers/WindowsOsManager/windows.py:54 msgid "" "If checked, UDS will try to logout user when the calendar for his current " @@ -4460,20 +4479,20 @@ msgstr "" "会话自动关闭给用户之前的最大空闲时间(以秒为单位)(<= 0表示没有最大空闲时" "间)" -#: osmanagers/WindowsOsManager/__init__.py:52 +#: osmanagers/WindowsOsManager/__init__.py:53 msgid "UDS Actor for windows machines" msgstr "适用于Windows机器的UDS Actor" -#: osmanagers/WindowsOsManager/__init__.py:59 +#: osmanagers/WindowsOsManager/__init__.py:60 msgid "" "UDS Actor for Unmanaged windows machines. Used ONLY for static machines." msgstr "适用于不受管理的Windows计算机的UDS Actor。仅用于静态机器。" -#: osmanagers/WindowsOsManager/windows.py:31 +#: osmanagers/WindowsOsManager/windows.py:30 msgid "Windows Basic OS Manager" msgstr "Windows Basic OS Manager" -#: osmanagers/WindowsOsManager/windows.py:33 +#: osmanagers/WindowsOsManager/windows.py:32 msgid "Os Manager to control windows machines without domain." msgstr "Os Manager可以控制没有域的Windows机器。" @@ -4814,21 +4833,21 @@ msgstr "游泳池使用一天" msgid "Pools usage counters for an specific day" msgstr "特定日期的池使用计数器" -#: reports/stats/pools_usage_day.py:111 +#: reports/stats/pools_usage_day.py:114 msgid "Services by hour" msgstr "按小时服务" -#: reports/stats/pools_usage_day.py:114 reports/stats/pools_usage_day.py:147 +#: reports/stats/pools_usage_day.py:117 reports/stats/pools_usage_day.py:150 #: reports/stats/user_access.py:200 reports/stats/user_access.py:215 #: templates/uds/reports/stats/pools-usage-day.html:28 msgid "Hour" msgstr "小时" -#: reports/stats/pools_usage_day.py:128 +#: reports/stats/pools_usage_day.py:131 msgid "Services usage report for a day" msgstr "一天的服务使用情况报告" -#: reports/stats/pools_usage_day.py:129 +#: reports/stats/pools_usage_day.py:132 msgid "Service usage report" msgstr "服务使用报告" @@ -4980,7 +4999,7 @@ msgstr "从在 AWS IAM 上为 UDS Enteprise 创建的用户获取 - 密钥" #: services/AWS_enterprise/provider.py:68 #: services/Azure_enterprise/provider.py:98 -#: services/Google_enterprise/provider.py:88 services/OpenStack/provider.py:195 +#: services/Google_enterprise/provider.py:99 services/OpenStack/provider.py:195 msgid "" "Proxy used on server connections for HTTPS connections (use PROTOCOL://host:" "port, i.e. http://10.10.0.1:8080)" @@ -4996,20 +5015,20 @@ msgstr "默认区域" msgid "Default region to use for connecting to EC2" msgstr "用于连接到 EC2 的默认区域" -#: services/AWS_enterprise/service.py:38 +#: services/AWS_enterprise/service.py:39 msgid "AWS Existing AMI Service" msgstr "AWS 现有 AMI 服务" -#: services/AWS_enterprise/service.py:40 +#: services/AWS_enterprise/service.py:41 msgid "This service provides access to AWS VDI based on an existing owned AMI" msgstr "此服务提供对基于现有自有 AMI 的 AWS VDI 的访问" -#: services/AWS_enterprise/service.py:44 +#: services/AWS_enterprise/service.py:45 #: services/Azure_enterprise/service.py:45 msgid "Number of desired VMs to keep running waiting for an user" msgstr "要继续运行等待用户的所需VM数" -#: services/AWS_enterprise/service.py:46 +#: services/AWS_enterprise/service.py:47 #: services/Azure_enterprise/service.py:47 #: services/HyperV_enterprise/service.py:75 services/OpenNebula/service.py:84 #: services/Proxmox/service_linked.py:95 @@ -5017,15 +5036,15 @@ msgstr "要继续运行等待用户的所需VM数" msgid "Number of desired VMs to keep stopped waiting for use" msgstr "保持停止等待使用的虚拟机数量" -#: services/AWS_enterprise/service.py:55 +#: services/AWS_enterprise/service.py:58 msgid "AMI" msgstr "AMI" -#: services/AWS_enterprise/service.py:56 +#: services/AWS_enterprise/service.py:59 msgid "Base AMI for this service" msgstr "此服务的基础 AMI" -#: services/AWS_enterprise/service.py:67 +#: services/AWS_enterprise/service.py:70 #: services/AWS_enterprise/service_fixed.py:80 #: services/Google_enterprise/service.py:65 #: services/Google_enterprise/service_fixed.py:80 @@ -5034,37 +5053,37 @@ msgstr "此服务的基础 AMI" msgid "Region" msgstr "区域" -#: services/AWS_enterprise/service.py:68 +#: services/AWS_enterprise/service.py:71 msgid "Region for this service" msgstr "此服务的区域" -#: services/AWS_enterprise/service.py:79 +#: services/AWS_enterprise/service.py:82 msgid "Instance type" msgstr "实例类型" -#: services/AWS_enterprise/service.py:80 +#: services/AWS_enterprise/service.py:83 msgid "Type for instances created from the AMI." msgstr "键入从 AMI 创建的实例。" -#: services/AWS_enterprise/service.py:87 +#: services/AWS_enterprise/service.py:90 msgid "Key pair" msgstr "密钥对" -#: services/AWS_enterprise/service.py:88 +#: services/AWS_enterprise/service.py:91 msgid "Key pair to use for this machine" msgstr "本机使用的密钥对" -#: services/AWS_enterprise/service.py:99 +#: services/AWS_enterprise/service.py:102 msgid "VPC" msgstr "专有网络" -#: services/AWS_enterprise/service.py:100 +#: services/AWS_enterprise/service.py:103 msgid "VPC for the instances from this service" msgstr "来自此服务的实例的 VPC" -#: services/AWS_enterprise/service.py:102 -#: services/AWS_enterprise/service.py:115 -#: services/AWS_enterprise/service.py:123 +#: services/AWS_enterprise/service.py:105 +#: services/AWS_enterprise/service.py:118 +#: services/AWS_enterprise/service.py:126 #: services/Azure_enterprise/service.py:97 #: services/HyperV_enterprise/service.py:102 #: services/Nutanix_enterprise/service.py:106 services/OpenStack/service.py:154 @@ -5072,19 +5091,19 @@ msgstr "来自此服务的实例的 VPC" msgid "Network" msgstr "网络" -#: services/AWS_enterprise/service.py:112 +#: services/AWS_enterprise/service.py:115 msgid "Subnetwork" msgstr "子网" -#: services/AWS_enterprise/service.py:113 +#: services/AWS_enterprise/service.py:116 msgid "Subnetwork for the instances from this service" msgstr "来自此服务的实例的子网" -#: services/AWS_enterprise/service.py:120 +#: services/AWS_enterprise/service.py:123 msgid "Security groups" msgstr "安全组" -#: services/AWS_enterprise/service.py:121 +#: services/AWS_enterprise/service.py:124 msgid "Security groups for the instances from this service" msgstr "此服务中实例的安全组" @@ -5103,7 +5122,7 @@ msgid "Service region" msgstr "服务区域" #: services/AWS_enterprise/service_fixed.py:93 -#: services/Azure_enterprise/service_fixed.py:101 +#: services/Azure_enterprise/service_fixed.py:102 #: services/Google_enterprise/service_fixed.py:93 #: services/NutanixPrism_enterprise/service_fixed.py:102 #: services/ScaleComputing_enterprise/service_fixed.py:85 @@ -5111,7 +5130,7 @@ msgid "After logout" msgstr "退出后" #: services/AWS_enterprise/service_fixed.py:96 -#: services/Azure_enterprise/service_fixed.py:104 +#: services/Azure_enterprise/service_fixed.py:105 #: services/Google_enterprise/service_fixed.py:96 #: services/NutanixPrism_enterprise/service_fixed.py:105 #: services/ScaleComputing_enterprise/service_fixed.py:88 @@ -5119,7 +5138,7 @@ msgid "Select the action to be performed after the user logs out." msgstr "选择用户注销后要执行的操作。" #: services/AWS_enterprise/service_fixed.py:99 -#: services/Azure_enterprise/service_fixed.py:107 +#: services/Azure_enterprise/service_fixed.py:108 #: services/Google_enterprise/service_fixed.py:99 #: services/NutanixPrism_enterprise/service_fixed.py:108 #: services/ScaleComputing_enterprise/service_fixed.py:91 @@ -5146,7 +5165,7 @@ msgid "Obtained from subscriptions" msgstr "从订阅中获得" #: services/Azure_enterprise/provider.py:87 -#: services/Google_enterprise/provider.py:77 +#: services/Google_enterprise/provider.py:88 msgid "Timeout in seconds of connections server" msgstr "连接服务器超时(以秒为单位)" @@ -5252,58 +5271,60 @@ msgstr "Azure 固定计算机" msgid "Azure Services based on fixed machines." msgstr "基于固定机器的 Azure 服务。" -#: services/Azure_enterprise/service_fixed.py:108 +#: services/Azure_enterprise/service_fixed.py:109 msgid "Stop Machine (and deallocates it)" msgstr "停止机器(并释放它)" -#: services/Google_enterprise/provider.py:40 +#: services/Google_enterprise/provider.py:42 +#| msgid "Google Cloud Provider" +msgid "Google Cloud Platform Provider" +msgstr "Google 云平台提供商" + +#: services/Google_enterprise/provider.py:44 +#| msgid "Provides connection to Google Cloud Compute Engine" +msgid "Provides connection to Google Cloud Platform Compute Engine" +msgstr "提供与 Google Cloud Platform Compute Engine 的连接" + +#: services/Google_enterprise/provider.py:51 msgid "Client Email" msgstr "客户电子邮件" -#: services/Google_enterprise/provider.py:42 +#: services/Google_enterprise/provider.py:53 msgid "Client email for service account" msgstr "服务帐户的客户电子邮件" -#: services/Google_enterprise/provider.py:47 +#: services/Google_enterprise/provider.py:58 msgid "Token URI" msgstr "令牌 URI" -#: services/Google_enterprise/provider.py:49 +#: services/Google_enterprise/provider.py:60 msgid "Token URL, as provided by Google (default is for Google Cloud)" msgstr "令牌 URL,由 Google 提供(默认为 Google Cloud)" -#: services/Google_enterprise/provider.py:56 +#: services/Google_enterprise/provider.py:67 msgid "Private Key" msgstr "私钥" -#: services/Google_enterprise/provider.py:58 +#: services/Google_enterprise/provider.py:69 msgid "Private key for service account" msgstr "服务账户私钥" -#: services/Google_enterprise/provider.py:63 +#: services/Google_enterprise/provider.py:74 msgid "Project ID" msgstr "项目编号" -#: services/Google_enterprise/provider.py:65 +#: services/Google_enterprise/provider.py:76 msgid "Project ID for Google Cloud" msgstr "Google Cloud 的项目 ID" -#: services/Google_enterprise/provider.py:97 +#: services/Google_enterprise/provider.py:108 msgid "Preferred Region" msgstr "首选区域" -#: services/Google_enterprise/provider.py:99 +#: services/Google_enterprise/provider.py:110 msgid "Preferred region for new services" msgstr "新服务的首选区域" -#: services/Google_enterprise/provider.py:110 -msgid "Google Cloud Provider" -msgstr "Google 云提供商" - -#: services/Google_enterprise/provider.py:112 -msgid "Provides connection to Google Cloud Compute Engine" -msgstr "提供与 Google Cloud Compute Engine 的连接" - #: services/Google_enterprise/provider.py:157 msgid "Connection successful" msgstr "连接成功" @@ -5585,7 +5606,6 @@ msgid "VCPUS" msgstr "虚拟CPU" #: services/NutanixPrism_enterprise/service.py:97 -#: services/Nutanix_enterprise/service.py:85 msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" msgstr "vcpus的数量(“ -1表示保持原始计算机vcpus”)" @@ -5595,7 +5615,6 @@ msgid "Cores per VCPU" msgstr "每个VCPU的内核" #: services/NutanixPrism_enterprise/service.py:110 -#: services/Nutanix_enterprise/service.py:98 msgid "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" msgstr "vcpus的数量(“ -1表示”保持每个vcpu的原始计算机核心“)" @@ -5617,7 +5636,6 @@ msgid "No" msgstr "不" #: services/NutanixPrism_enterprise/service.py:154 -#: services/Nutanix_enterprise/service.py:138 msgid "Both Cores per VCPU and Number of VCPUS are required" msgstr "每个VCPU的内核数和VCPUS数都是必需的" @@ -5683,12 +5701,29 @@ msgstr "Nutanix雅典卫城服务" msgid "Nutanix Acropolis based service" msgstr "Nutanix雅典卫城的服务" +#: services/Nutanix_enterprise/service.py:85 +#| msgid "Number of vcpus (\"-1 means \"keep original machine vcpus\")" +msgid "Number of vcpus (Zero value means \"keep original machine vcpus\")" +msgstr "vcpus 数量(零值表示“保留原机器 vcpus”)" + +#: services/Nutanix_enterprise/service.py:98 +#| msgid "" +#| "Number of vcpus (\"-1 means \"keep original machine cores per vcpu\")" +msgid "" +"Number of vcpus (Zero value means \"keep original machine cores per vcpu\")" +msgstr "vCPU 数量(零值表示“保留每个 vCPU 的原始机器核心”)" + #: services/Nutanix_enterprise/service.py:107 msgid "" "Network for the machines (every machine created will be attached to this " "network)" msgstr "机器网络(创建的每台机器都将连接到该网络)" +#: services/Nutanix_enterprise/service.py:140 +#| msgid "Both Cores per VCPU and Number of VCPUS are required" +msgid "Both Cores per VCPU and Number of VCPUS must be greater than 0" +msgstr "每个 VCPU 的核心数和 VCPUS 数量都必须大于 0" + #: services/Nutanix_enterprise/service_fixed.py:59 msgid "Nutanix Fixed Machines" msgstr "Nutanix 固定机器" @@ -5976,23 +6011,23 @@ msgstr "基本模板" msgid "Service base template" msgstr "服务基础模板" -#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:101 +#: services/OpenNebula/service.py:119 services/VCloud_enterprise/service.py:103 msgid "Machine Names" msgstr "机器名称" -#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:104 +#: services/OpenNebula/service.py:122 services/VCloud_enterprise/service.py:106 msgid "Base name for clones from this machine" msgstr "来自此计算机的克隆的基本名称" -#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:113 +#: services/OpenNebula/service.py:132 services/VCloud_enterprise/service.py:116 msgid "Size of numeric part for the names of these machines" msgstr "这些机器名称的数字部分的大小" -#: services/OpenStack/openstack/client.py:798 +#: services/OpenStack/openstack/client.py:809 msgid "Authentication error" msgstr "授权错误" -#: services/OpenStack/openstack/client.py:802 +#: services/OpenStack/openstack/client.py:813 msgid "" "Openstack does not support identity API 3.2 or newer. This OpenStack server " "is not compatible with UDS." @@ -6270,25 +6305,28 @@ msgid "Static Single IP" msgstr "静态单IP" #: services/PhysicalMachines/service_single.py:56 -msgid "This service provides access to POWERED-ON Machine by IP" -msgstr "此服务可通过IP访问POWERED-ON机器" +#| msgid "This service provides access to POWERED-ON Machine by IP" +msgid "" +"This service provides access to POWERED-ON Machine by IP. (You can configure " +"WOL to power on the machine)" +msgstr "此服务提供通过 IP 访问已启动的机器的功能。(您可以配置 WOL 来启动机器)" -#: services/PhysicalMachines/service_single.py:70 +#: services/PhysicalMachines/service_single.py:73 msgid "Host IP/FQDN" msgstr "主机 IP/FQDN" -#: services/PhysicalMachines/service_single.py:72 +#: services/PhysicalMachines/service_single.py:75 msgid "" "IP or FQDN of the server to connect to. Can include MAC address separated by " "\";\" after the IP/Hostname" msgstr "" "要连接的服务器的 IP 或 FQDN。可以在 IP/主机名后包含用“;”分隔的 MAC 地址" -#: services/PhysicalMachines/service_single.py:90 +#: services/PhysicalMachines/service_single.py:93 msgid "Invalid server used: \"{}\"" msgstr "使用的服务器无效:“{}”" -#: services/PhysicalMachines/service_single.py:93 +#: services/PhysicalMachines/service_single.py:96 msgid "Invalid MAC address used: \"{}\"" msgstr "使用的 MAC 地址无效:“{}”" @@ -6638,35 +6676,35 @@ msgstr "RDS平台RemoteAPP" msgid "RDS Platform RemoteAPP based service" msgstr "RDS平台基于RemoteAPP的服务" -#: services/RDS_enterprise/service.py:53 +#: services/RDS_enterprise/service.py:57 msgid "Application path" msgstr "申请路径" -#: services/RDS_enterprise/service.py:54 +#: services/RDS_enterprise/service.py:58 msgid "Full path of the application this service will represent" msgstr "此服务将代表的应用程序的完整路径" -#: services/RDS_enterprise/service.py:64 +#: services/RDS_enterprise/service.py:68 msgid "Application parameters" msgstr "应用参数" -#: services/RDS_enterprise/service.py:65 +#: services/RDS_enterprise/service.py:69 msgid "Applications parameters, as will be passed in command line" msgstr "应用程序参数,将在命令行中传递" -#: services/RDS_enterprise/service.py:74 +#: services/RDS_enterprise/service.py:78 msgid "Start path" msgstr "开始路径" -#: services/RDS_enterprise/service.py:75 +#: services/RDS_enterprise/service.py:79 msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "应用程序将在其上启动的路径。 (即f:\\ example \\ folder)" -#: services/RDS_enterprise/service.py:86 +#: services/RDS_enterprise/service.py:90 msgid "Wait spawned processes" msgstr "等待产生的进程" -#: services/RDS_enterprise/service.py:90 +#: services/RDS_enterprise/service.py:94 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -6674,7 +6712,7 @@ msgstr "" "如果处于活动状态,RDS Actor将等到应用程序和所有生成的进程完成后再考虑应用程序" "注销" -#: services/RDS_enterprise/service.py:102 +#: services/RDS_enterprise/service.py:106 msgid "A valid application path is required" msgstr "需要有效的应用程序路径" @@ -6952,34 +6990,38 @@ msgstr "vDatacenter" msgid "Virtual Datacenter" msgstr "虚拟数据中心" -#: services/VCloud_enterprise/service.py:67 +#: services/VCloud_enterprise/service.py:63 +msgid "If active, found duplicates vApps for this service will be removed" +msgstr "如果处于活动状态,则会删除此服务的重复vApp" + +#: services/VCloud_enterprise/service.py:68 msgid "Catalog" msgstr "目录" -#: services/VCloud_enterprise/service.py:70 +#: services/VCloud_enterprise/service.py:71 msgid "vApps source catalog" msgstr "vApps源目录" -#: services/VCloud_enterprise/service.py:81 +#: services/VCloud_enterprise/service.py:82 msgid "vApp Template" msgstr "vApp模板" -#: services/VCloud_enterprise/service.py:84 +#: services/VCloud_enterprise/service.py:85 msgid "vApp template for the service" msgstr "该服务的vApp模板" -#: services/VCloud_enterprise/service.py:90 +#: services/VCloud_enterprise/service.py:92 #: services/Vmware_enterprise/service.py:114 msgid "Main Network" msgstr "主网" -#: services/VCloud_enterprise/service.py:94 +#: services/VCloud_enterprise/service.py:96 msgid "" "If more than one interface is found in machine, use the first found on this " "network as main" msgstr "如果在计算机中找到多个接口,请使用此网络上的第一个接口作为主要接口" -#: services/VCloud_enterprise/service.py:137 +#: services/VCloud_enterprise/service.py:141 msgid "Only vApp Templates with 1 VM are allowed" msgstr "仅允许具有1个VM的vApp模板" @@ -8459,18 +8501,18 @@ msgstr "二进制 appimage ARMHF Linux 客户端(Raspberry,...)" msgid "Generic .tar.gz Linux client" msgstr "通用.tar.gz Linux客户端" -#: web/views/auth.py:172 +#: web/views/auth.py:178 msgid "Authenticator does not provide information" msgstr "Authenticator不提供信息" -#: web/views/main.py:321 +#: web/views/mfa.py:205 msgid "{} days" msgstr "{} 天" -#: web/views/main.py:323 +#: web/views/mfa.py:207 msgid "{} hours" msgstr "{} 小时" -#: web/views/service.py:100 +#: web/views/service.py:103 msgid "Internal error" 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 bb2f33658..36eda4565 100644 --- a/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po @@ -19,12 +19,13 @@ # Translators: # Translators: # Translators: +# Translators: #, fuzzy msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-28 18:02+0200\n" +"POT-Creation-Date: 2024-10-29 19:21+0100\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Javier , 2014\n" "Language-Team: Chinese (http://app.transifex.com/openuds/openuds/language/"