diff --git a/server/src/uds/REST/__init__.py b/server/src/uds/REST/__init__.py index 0a620c235..3b8c90117 100644 --- a/server/src/uds/REST/__init__.py +++ b/server/src/uds/REST/__init__.py @@ -37,7 +37,7 @@ from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _, activate from django.conf import settings -from handlers import Handler, HandlerError, AccessDenied +from handlers import Handler, HandlerError, AccessDenied, NotFound import time import logging @@ -150,6 +150,10 @@ class Dispatcher(View): return response except HandlerError as e: return http.HttpResponseBadRequest(unicode(e)) + except AccessDenied as e: + return http.HttpResponseForbidden(unicode(e)) + except NotFound as e: + return http.Http404(unicode(e)) except Exception as e: logger.exception('Error processing request') return http.HttpResponseServerError(unicode(e)) diff --git a/server/src/uds/REST/handlers.py b/server/src/uds/REST/handlers.py index 4231dbccb..58c4314b9 100644 --- a/server/src/uds/REST/handlers.py +++ b/server/src/uds/REST/handlers.py @@ -46,6 +46,9 @@ AUTH_TOKEN_HEADER = 'HTTP_X_AUTH_TOKEN' class HandlerError(Exception): pass +class NotFound(HandlerError): + pass + class AccessDenied(HandlerError): pass diff --git a/server/src/uds/REST/methods/authenticators.py b/server/src/uds/REST/methods/authenticators.py index 717df8a14..a6dc3529e 100644 --- a/server/src/uds/REST/methods/authenticators.py +++ b/server/src/uds/REST/methods/authenticators.py @@ -38,7 +38,7 @@ from uds.core import auths from users import Users -from uds.REST import Handler, HandlerError +from uds.REST import Handler, NotFound from uds.REST.mixins import ModelHandlerMixin, ModelTypeHandlerMixin, ModelTableHandlerMixin import logging @@ -65,6 +65,13 @@ class Types(ModelTypeHandlerMixin, Handler): def enum_types(self): return auths.factory().providers().values() + + def getGui(self, type_): + try: + return auths.factory().lookup(type_).guiDescription() + except: + raise NotFound('type not found') + class TableInfo(ModelTableHandlerMixin, Handler): path = 'authenticators' diff --git a/server/src/uds/REST/mixins.py b/server/src/uds/REST/mixins.py index ae1ba3629..43b98f268 100644 --- a/server/src/uds/REST/mixins.py +++ b/server/src/uds/REST/mixins.py @@ -32,6 +32,7 @@ ''' from __future__ import unicode_literals +from handlers import NotFound from django.utils.translation import ugettext as _ import logging @@ -85,7 +86,7 @@ class ModelHandlerMixin(object): detail = detailCls(self, path, parent = item) return getattr(detail, self._operation)() except: - return {'error': 'method not found' } + raise NotFound('method not found') def get(self): logger.debug('method GET for {0}, {1}'.format(self.__class__.__name__, self._args)) @@ -97,10 +98,9 @@ class ModelHandlerMixin(object): return self.processDetail() try: - item = list(self.getItems(pk=self._args[0]))[0] + return list(self.getItems(pk=self._args[0]))[0] except: - return {'error': 'not found' } - + raise NotFound('item not found') class ModelTypeHandlerMixin(object): ''' @@ -122,13 +122,31 @@ class ModelTypeHandlerMixin(object): def getTypes(self, *args, **kwargs): for type_ in self.enum_types(): - try: - yield self.type_as_dict(type_) - except: - logger.exception('Exception enumerating types') + yield self.type_as_dict(type_) def get(self): - return list(self.getTypes()) + logger.debug(self._args) + nArgs = len(self._args) + if nArgs == 0: + return list(self.getTypes()) + + found = None + for v in self.getTypes(): + if v['type'] == self._args[0]: + found = v + break + + if found is None: + raise NotFound('type not found') + + logger.debug('Found type {0}'.format(v)) + if nArgs == 1: + return found + + if self._args[1] == 'gui': + gui = self.getGui(self._args[0]) + logger.debug("GUI: {0}".format(gui)) + return gui class ModelTableHandlerMixin(object): diff --git a/server/src/uds/core/ui/UserInterface.py b/server/src/uds/core/ui/UserInterface.py index 5d523ad6c..9dde74292 100644 --- a/server/src/uds/core/ui/UserInterface.py +++ b/server/src/uds/core/ui/UserInterface.py @@ -32,7 +32,7 @@ ''' from __future__ import unicode_literals -from django.utils.translation import ugettext as _ +from django.utils.translation import get_language, ugettext as _ import cPickle import logging @@ -255,8 +255,8 @@ class gui(object): alter original values. ''' data = self._data.copy() - data['label'] = _(data['label']) - data['tooltip'] = _(data['tooltip']) + data['label'] = data['label'] != '' and _(data['label']) or '' + data['tooltip'] = data['tooltip'] != '' and _(data['tooltip']) or '' return data @property @@ -816,6 +816,7 @@ class UserInterface(object): object: If not none, object that will get its "initGui" invoked This will only happen (not to be None) in Services. ''' + logger.debug('Active languaje for gui translation: {0}'.format(get_language())) if obj is not None: obj.initGui() # We give the "oportunity" to fill necesary gui data before providing it to client diff --git a/server/src/uds/locale/de/LC_MESSAGES/django.mo b/server/src/uds/locale/de/LC_MESSAGES/django.mo index cd0352db2..21b420027 100644 Binary files a/server/src/uds/locale/de/LC_MESSAGES/django.mo and b/server/src/uds/locale/de/LC_MESSAGES/django.mo differ diff --git a/server/src/uds/locale/de/LC_MESSAGES/django.po b/server/src/uds/locale/de/LC_MESSAGES/django.po index b75c07070..93c413899 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/django.po +++ b/server/src/uds/locale/de/LC_MESSAGES/django.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:20+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,23 +42,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: REST/methods/authenticators.py:73 +#: REST/methods/authenticators.py:80 msgid "Current authenticators" msgstr "Aktuelle Authentifikatoren" -#: REST/methods/authenticators.py:75 REST/methods/networks.py:68 +#: REST/methods/authenticators.py:82 REST/methods/networks.py:68 #: REST/methods/osmanagers.py:71 REST/methods/providers.py:69 #: REST/methods/transports.py:71 REST/methods/users.py:77 msgid "Name" msgstr "Name" -#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72 +#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72 #: REST/methods/providers.py:70 REST/methods/transports.py:72 #: REST/methods/users.py:78 msgid "Comments" msgstr "Kommentare" -#: REST/methods/authenticators.py:77 +#: REST/methods/authenticators.py:84 msgid "Users" msgstr "Benutzer" @@ -114,14 +114,263 @@ msgstr "Zustand" msgid "Last access" msgstr "Zuletzt online" -#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422 +#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422 msgid "Forbidden" msgstr "Verboten" -#: admin/views.py:69 +#: admin/views.py:70 msgid "requested a template that do not exists" msgstr "gefordert, dass eine Vorlage, die nicht vorhanden ist" +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +#: auths/EDirectory_enterprise/Authenticator.py:60 +#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +#: services/OVirt/OVirtProvider.py:92 +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "Host" +msgstr "Host" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +msgid "Active Directory Server IP or Hostname" +msgstr "Active Directory-Server IP oder Hostname" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "Use SSL" +msgstr "Verwendung SSL" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +msgid "If checked, will use a ssl connection to Active Directory" +msgstr "Wenn diese Option aktiviert, wird eine Ssl-Verbindung mit Active Directory verwenden." + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility" +msgstr "Kompatibilität" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility of AD connection (Usually windows 2000 and later)" +msgstr "Kompatibilität der AD-Verbindung (in der Regel Windows 2000 und höher)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 +msgid "Ldap User" +msgstr "LDAP-Benutzer" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +msgid "" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" +msgstr "" +"Benutzernamen mit lesen Berechtigungen auf der Basis ausgewählt (USER@DOMAIN verwenden.DOM-Formular " +"dafür)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/ActiveDirectory_enterprise/Authenticator.py:52 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 +#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 +#: core/auths/BaseAuthenticator.py:136 +#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 +#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 +#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70 +msgid "Password" +msgstr "Passwort" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 +msgid "Password of the ldap user" +msgstr "Kennwort für den Ldap-Benutzer" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +#: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 +msgid "Timeout" +msgstr "Timeout" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +msgid "Timeout in seconds of connection to LDAP" +msgstr "Timeout in Sekunden über LDAP-Verbindung" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:37 +msgid "Active Directory Authenticator" +msgstr "Active Directory-Authenticator" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:39 +msgid "Authenticate against Active Directory" +msgstr "Mithilfe von Active Directory zu authentifizieren" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:48 +#: auths/EDirectory_enterprise/Authenticator.py:77 +#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +#: services/OVirt/OVirtProvider.py:93 +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 +#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 +msgid "Username" +msgstr "Benutzername" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:50 +#: auths/EDirectory_enterprise/Authenticator.py:79 +#: auths/RegexLdap/Authenticator.py:74 auths/SAML_enterprise/SAML.py:114 +#: auths/SimpleLDAP/Authenticator.py:75 +msgid "Group" +msgstr "Gruppe" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:67 +#: auths/ActiveDirectory_enterprise/Authenticator.py:442 +msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" +msgstr "Müssen der Benutzername in der Form USERNAME@DOMAIN angeben.DOM" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:164 +#: auths/EDirectory_enterprise/Authenticator.py:123 +#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 +msgid "Ldap connection error: " +msgstr "LDAP-Verbindungsfehler: " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:344 +#: auths/ActiveDirectory_enterprise/Authenticator.py:390 +#: auths/EDirectory_enterprise/Authenticator.py:243 +#: auths/EDirectory_enterprise/Authenticator.py:286 +#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 +#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 +msgid "Username not found" +msgstr "Benutzername wurde nicht gefunden" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:377 +#: auths/SimpleLDAP/Authenticator.py:302 +msgid "Group not found" +msgstr "Gruppe nicht gefunden" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:410 +#: auths/ActiveDirectory_enterprise/Authenticator.py:428 +#: auths/EDirectory_enterprise/Authenticator.py:303 +#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 +#: auths/SimpleLDAP/Authenticator.py:342 +msgid "Too many results, be more specific" +msgstr "Zu viele Ergebnisse, sein mehr spezifisch" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:451 +msgid "Domain seems to be incorrect, please check it" +msgstr "Domäne scheint nicht korrekt, bitte überprüfen es" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:456 +msgid "Ldap does not seem an Active Directory (do not have user objects)" +msgstr "LDAP scheint kein Active Directory (Benutzerobjekte nicht haben)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:464 +msgid "Ldap does not seem an Active Directory (no not have group objects)" +msgstr "LDAP scheint kein Active Directory (Nein, nicht haben Gruppenobjekte)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:472 +msgid "" +"Ldap does not seem an Active Directory (do not have any user nor groups)" +msgstr "" +"LDAP scheint kein Active Directory (haben noch keine Benutzer oder Gruppen)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:477 +#: auths/EDirectory_enterprise/Authenticator.py:358 +#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 +msgid "Connection params seem correct, test was succesfully executed" +msgstr "Verbindung Params scheinen korrekt, Test wurde erfolgreich ausgeführt" + +#: auths/EDirectory_enterprise/Authenticator.py:60 +msgid "EDirectory Server IP or Hostname" +msgstr "EDirectory Server IP oder Hostname" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "Port" +msgstr "Port" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +msgid "Ldap port (389 for non ssl, 636 for ssl normally" +msgstr "LDAP-Port (389 für nicht Ssl, 636 für Ssl normalerweise" + +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "" +"If checked, will use a ssl connection to ldap (if port is 389, will use in " +"fact port 636)" +msgstr "" +"Wenn diese Option aktiviert ist, verwendet eine Ssl-Verbindung zum Ldap " +"(Wenn Port 389 ist, wird in Tatsache Port 636)" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Admin user" +msgstr "Admin-Benutzer" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Username with read privileges on the eDirectory" +msgstr "Benutzernamen mit lesen Berechtigungen für das eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:67 +msgid "eDirectory Authenticator" +msgstr "eDirectory Authenticator" + +#: auths/EDirectory_enterprise/Authenticator.py:69 +msgid "Authenticate against eDirectory" +msgstr "Authentifizieren gegen eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:323 +#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 +msgid "Ldap search base is incorrect" +msgstr "LDAP-Suche base ist falsch" + +#: auths/EDirectory_enterprise/Authenticator.py:328 +#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 +msgid "Ldap user class seems to be incorrect (no user found by that class)" +msgstr "" +"LDAP-Benutzerklasse scheint nicht korrekt (kein Benutzer gefunden durch " +"diese Klasse)" + +#: auths/EDirectory_enterprise/Authenticator.py:336 +#: auths/SimpleLDAP/Authenticator.py:384 +msgid "" +"Ldap user id attribute seems to be incorrect (no user found by that " +"attribute)" +msgstr "" +"LDAP-Benutzer-Id-Attribut scheint falsch (kein Benutzer gefunden damit -" +"Attribut)" + +#: auths/EDirectory_enterprise/Authenticator.py:344 +msgid "Expected group attribute " +msgstr "Erwartete Gruppenattribut " + +#: auths/EDirectory_enterprise/Authenticator.py:353 +msgid "" +"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" +msgstr "" +"LDAP-Benutzer Klasse oder Benutzer-Id-Attr ist vermutlich falsch (Ldap ist eine eDirectory?)" + #: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50 msgid "IP Authenticator" msgstr "IP-Authenticator" @@ -169,69 +418,14 @@ msgstr "Wenn diese Option aktiviert, wird der Host umgekehrte Dns sein." msgid "Internal structures seems ok" msgstr "Interne Strukturen scheint in Ordnung" -#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 -#: services/OVirt/OVirtProvider.py:92 -msgid "Host" -msgstr "Host" - #: auths/RegexLdap/Authenticator.py:49 msgid "Ldap Server Host" msgstr "LDAP-Server-Host" -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Port" -msgstr "Port" - -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Ldap port (389 for non ssl, 636 for ssl normally" -msgstr "LDAP-Port (389 für nicht Ssl, 636 für Ssl normalerweise" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "Use SSL" -msgstr "Verwendung SSL" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "" -"If checked, will use a ssl connection to ldap (if port is 389, will use in " -"fact port 636)" -msgstr "" -"Wenn diese Option aktiviert ist, verwendet eine Ssl-Verbindung zum Ldap " -"(Wenn Port 389 ist, wird in Tatsache Port 636)" - -#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 -msgid "Ldap User" -msgstr "LDAP-Benutzer" - #: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 msgid "Username with read privileges on the base selected" msgstr "Benutzernamen mit lesen Berechtigungen auf der Basis ausgewählt" -#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 -#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 -#: core/auths/BaseAuthenticator.py:136 -#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 -#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 -#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 -#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 -#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 -#: web/forms/LoginForm.py:70 -msgid "Password" -msgstr "Passwort" - -#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 -msgid "Password of the ldap user" -msgstr "Kennwort für den Ldap-Benutzer" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -#: services/OVirt/OVirtProvider.py:95 -msgid "Timeout" -msgstr "Timeout" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -msgid "Timeout in seconds of connection to LDAP" -msgstr "Timeout in Sekunden über LDAP-Verbindung" - #: auths/RegexLdap/Authenticator.py:55 auths/SimpleLDAP/Authenticator.py:55 msgid "Base" msgstr "Base" @@ -281,42 +475,6 @@ msgstr "Regex LDAP-Authenticator" msgid "Regular Expressions LDAP authenticator" msgstr "Reguläre Ausdrücke LDAP-Authentifizierungsserver" -#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 -#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64 -#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66 -#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63 -#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 -msgid "Username" -msgstr "Benutzername" - -#: auths/RegexLdap/Authenticator.py:74 auths/SimpleLDAP/Authenticator.py:75 -msgid "Group" -msgstr "Gruppe" - -#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 -msgid "Ldap connection error: " -msgstr "LDAP-Verbindungsfehler: " - -#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 -#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 -msgid "Username not found" -msgstr "Benutzername wurde nicht gefunden" - -#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 -#: auths/SimpleLDAP/Authenticator.py:342 -msgid "Too many results, be more specific" -msgstr "Zu viele Ergebnisse, sein mehr spezifisch" - -#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 -msgid "Ldap search base is incorrect" -msgstr "LDAP-Suche base ist falsch" - -#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 -msgid "Ldap user class seems to be incorrect (no user found by that class)" -msgstr "" -"LDAP-Benutzerklasse scheint nicht korrekt (kein Benutzer gefunden durch " -"diese Klasse)" - #: auths/RegexLdap/Authenticator.py:401 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " @@ -333,9 +491,116 @@ msgstr "" "LDAP Gruppe Id-Attribut scheint nicht korrekt (keine Gruppe gefunden, die -" "Attribut)" -#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 -msgid "Connection params seem correct, test was succesfully executed" -msgstr "Verbindung Params scheinen korrekt, Test wurde erfolgreich ausgeführt" +#: auths/SAML_enterprise/SAML.py:80 +msgid "SAML Authenticator" +msgstr "SAML Authenticator" + +#: auths/SAML_enterprise/SAML.py:92 +msgid "SAML (v2.0) Authenticator" +msgstr "SAML (v2. 0) Authenticator" + +#: auths/SAML_enterprise/SAML.py:111 templates/uds/internal_page.html:28 +msgid "User" +msgstr "Benutzer" + +#: auths/SAML_enterprise/SAML.py:120 +msgid "Private key" +msgstr "Der Private Schlüssel" + +#: auths/SAML_enterprise/SAML.py:121 +msgid "" +"Private key used for sign and encription, as generated in base 64 from " +"openssl" +msgstr "" +"Privater Schlüssel zum Zeichen und Encription, wie base-64 von generiert " +"OpenSSL" + +#: auths/SAML_enterprise/SAML.py:122 +msgid "Certificate" +msgstr "Zertifikat" + +#: auths/SAML_enterprise/SAML.py:123 +msgid "Server certificate (public), , as generated in base 64 from openssl" +msgstr "Server-Zertifikat als base-64 von Openssl erzeugte (öffentlich)," + +#: auths/SAML_enterprise/SAML.py:124 +msgid "IDP Metadata" +msgstr "IDP-Metadaten" + +#: auths/SAML_enterprise/SAML.py:125 +msgid "" +"You can enter here the URL or the IDP metadata or the metadata itself (xml)" +msgstr "" +"Sie können hier die URL oder die IDP-Metadaten oder die Metadaten selbst (Xml) eingeben." + +#: auths/SAML_enterprise/SAML.py:127 +msgid "Entity ID" +msgstr "Einheits-ID" + +#: auths/SAML_enterprise/SAML.py:128 +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "SP-ID Wenn leer, wird dies automatisch vom Server URL sein." + +#: auths/SAML_enterprise/SAML.py:130 +msgid "User name attrs" +msgstr "Benutzer Name attrs" + +#: auths/SAML_enterprise/SAML.py:131 +msgid "Fields from where to extract user name" +msgstr "Felder aus wo Sie Benutzernamen extrahieren" + +#: auths/SAML_enterprise/SAML.py:133 +msgid "Group name attrs" +msgstr "Gruppe Name attrs" + +#: auths/SAML_enterprise/SAML.py:134 +msgid "Fields from where to extract the groups" +msgstr "Felder von wo die Gruppen zu extrahieren" + +#: auths/SAML_enterprise/SAML.py:136 +msgid "Real name attrs" +msgstr "Richtiger Name attrs" + +#: auths/SAML_enterprise/SAML.py:137 +msgid "Fields from where to extract the real name" +msgstr "Felder aus wo man den richtigen Namen zu extrahieren" + +#: auths/SAML_enterprise/SAML.py:160 +msgid "" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"Server-Zertifikat sollte ein gültiger PEM (PEM-Zertifikate-beginnt mit---" +"BEGIN CERTIFICATE---)" + +#: auths/SAML_enterprise/SAML.py:165 +msgid "Invalid server certificate. " +msgstr "Ungültigen Serverzertifikats. " + +#: auths/SAML_enterprise/SAML.py:168 +msgid "" +"Private key should be a valid PEM (PEM private keys starts with -----BEGIN " +"RSA PRIVATE KEY-----" +msgstr "" +"Der Private Schlüssel sollte ein gültiger PEM (PEM private Schlüssel beginnt mit---BEGIN " +"RSA PRIVATE KEY---" + +#: auths/SAML_enterprise/SAML.py:197 +#, python-brace-format +msgid "Can't fetch url {0}: {1}" +msgstr "Kann nicht abgerufen werden Url {0}: {1}" + +#: auths/SAML_enterprise/SAML.py:208 +msgid " (obtained from URL)" +msgstr " (gewonnen von URL)" + +#: auths/SAML_enterprise/SAML.py:209 +msgid "XML do not seems valid for IDP Metadata " +msgstr "XML scheint nicht gültig für IDP-Metadaten " + +#: auths/SAML_enterprise/SAML.py:227 +msgid "Can't access idp metadata" +msgstr "Idp-Metadaten kann nicht zugegriffen werden." #: auths/Sample/SampleAuth.py:71 msgid "Sample Authenticator" @@ -397,24 +662,12 @@ msgstr "SimpleLDAP Authenticator" msgid "Simple LDAP authenticator" msgstr "Einfache LDAP-Authentifizierungsserver" -#: auths/SimpleLDAP/Authenticator.py:302 -msgid "Group not found" -msgstr "Gruppe nicht gefunden" - #: auths/SimpleLDAP/Authenticator.py:376 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "LDAP Gruppe Klasse scheint nicht korrekt (keine Gruppe gefunden durch diese " "Klasse)" -#: auths/SimpleLDAP/Authenticator.py:384 -msgid "" -"Ldap user id attribute seems to be incorrect (no user found by that " -"attribute)" -msgstr "" -"LDAP-Benutzer-Id-Attribut scheint falsch (kein Benutzer gefunden damit -" -"Attribut)" - #: auths/SimpleLDAP/Authenticator.py:401 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " @@ -634,6 +887,66 @@ msgstr "Belastung" msgid "Storage" msgstr "Speicher" +#: dispatchers/wyse_enterprise/views.py:111 +msgid "There are no authenticators available for login" +msgstr "Es gibt keine Authentifikatoren für login" + +#: dispatchers/wyse_enterprise/views.py:124 +#, python-brace-format +msgid "The authenticator {0} is not usable" +msgstr "Der Authentifikator {0} kann nicht verwendet werden" + +#: dispatchers/wyse_enterprise/views.py:131 xmlrpc/auths/AdminAuth.py:168 +msgid "Invalid credentials" +msgstr "Ungültiger Anmeldeinformationen" + +#: dispatchers/wyse_enterprise/views.py:139 +#, python-brace-format +msgid "The domain {0} does not exists" +msgstr "Die Domäne {0} ist nicht vorhanden" + +#: dispatchers/wyse_enterprise/views.py:200 +msgid "No services available" +msgstr "Keine Dienste zur Verfügung" + +#: dispatchers/wyse_enterprise/views.py:215 +#: dispatchers/wyse_enterprise/views.py:309 +msgid "Invalid session" +msgstr "Ungültige Sitzung" + +#: dispatchers/wyse_enterprise/views.py:219 +#: dispatchers/wyse_enterprise/views.py:313 +msgid "Invalid authorization" +msgstr "Ungültige Autorisierung" + +#: dispatchers/wyse_enterprise/views.py:230 +#: dispatchers/wyse_enterprise/views.py:319 +msgid "Invalid request" +msgstr "Ungültige Anforderung" + +#: dispatchers/wyse_enterprise/views.py:233 +#: dispatchers/wyse_enterprise/views.py:322 +msgid "Invalid credentials used" +msgstr "Ungültiger Anmeldeinformationen verwendet" + +#: dispatchers/wyse_enterprise/views.py:254 +#: dispatchers/wyse_enterprise/views.py:257 web/errors.py:62 +msgid "Service not found" +msgstr "-Dienst nicht gefunden" + +#: dispatchers/wyse_enterprise/views.py:271 web/errors.py:61 +msgid "Transport not found" +msgstr "Verkehr nicht gefunden" + +#: dispatchers/wyse_enterprise/views.py:275 +#: dispatchers/wyse_enterprise/views.py:282 +#: dispatchers/wyse_enterprise/views.py:287 +#: templates/uds/service_not_ready.html:6 +msgid "Service not ready at this moment. Please, try again in a while." +msgstr "" +"Service im Moment nicht bereit. Bitte, versuchen Sie es noch einmal in eine " +"Weile." + #: osmanagers/LinuxOsManager/LinuxOsManager.py:45 msgid "Linux OS Manager" msgstr "Linux OS Manager" @@ -686,6 +999,8 @@ msgstr "" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:32 #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "Domain" msgstr "Domäne" @@ -836,6 +1151,206 @@ msgstr "" "UDS Schauspieler für Windows-Rechner (wichtig! .Net Framework 3.5 " "erfordert SP1)" +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:51 +msgid "HyperV Cluster Linked Clone (Experimental)" +msgstr "Hyper-v Cluster verknüpften Klon (experimentell)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 +#: services/HyperV_enterprise/HyperVLinkedService.py:58 +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "Hyper-Dienste basierend auf Vorlagen und differenzielle Datenträger (experimentell)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 +#: services/HyperV_enterprise/HyperVLinkedService.py:75 +#: services/OVirt/OVirtLinkedService.py:77 +#: services/Vmware_enterprise/VCLinkedCloneService.py:72 +msgid "Number of desired machines to keep running waiting for a user" +msgstr "" +"Anzahl der gewünschten Maschinen warten für einen Benutzer ausgeführt wird" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 +#: services/HyperV_enterprise/HyperVLinkedService.py:81 +#: services/OVirt/OVirtLinkedService.py:83 +#: services/Vmware_enterprise/VCLinkedCloneService.py:74 +msgid "Number of desired machines to keep suspended waiting for use" +msgstr "" +"Anzahl der gewünschten Maschinen zu ausgesetzten Personen, die für die " +"Verwendung auf" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base Machine" +msgstr "Grundmaschine" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +msgid "Service base machine" +msgstr "Service-Grundmaschine" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:95 +#: services/HyperV_enterprise/HyperVLinkedService.py:98 +#: services/Vmware_enterprise/VCLinkedCloneService.py:38 +msgid "Network" +msgstr "Netzwerk" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:96 +#: services/HyperV_enterprise/HyperVLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:39 +msgid "" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Wenn mehr als 1 Schnittstelle im Computer gefunden wird, verwenden Sie eine in diesem Netzwerk als wichtigsten" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 +#: services/HyperV_enterprise/HyperVLinkedService.py:101 +#: services/OVirt/OVirtLinkedService.py:112 +#: services/Vmware_enterprise/VCLinkedCloneService.py:51 +msgid "Memory (Mb)" +msgstr "Speicher (Mb)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:99 +#: services/HyperV_enterprise/HyperVLinkedService.py:102 +#: services/Vmware_enterprise/VCLinkedCloneService.py:52 +msgid "Memory for machines deployed from this service" +msgstr "Speicher für Maschinen, die von diesem Dienst bereitgestellt" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 +#: services/HyperV_enterprise/HyperVLinkedService.py:103 +msgid "Datastore Drives" +msgstr "Datastore-Laufwerke" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 +#: services/HyperV_enterprise/HyperVLinkedService.py:104 +msgid "Datastores where to put incrementals & publications" +msgstr "Datastores wohin mit inkrementellen & Publikationen" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/OVirt/OVirtLinkedService.py:118 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Machine Names" +msgstr "Computernamen" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Base name for clones from this machine" +msgstr "Basisname für Clones von Maschine" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:103 +#: services/HyperV_enterprise/HyperVLinkedService.py:106 +#: services/OVirt/OVirtLinkedService.py:119 +#: services/Vmware_enterprise/VCLinkedCloneService.py:56 +msgid "Name Length" +msgstr "Länge des Dateinamens" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:104 +#: services/HyperV_enterprise/HyperVLinkedService.py:107 +#: services/OVirt/OVirtLinkedService.py:120 +#: services/Vmware_enterprise/VCLinkedCloneService.py:57 +msgid "Length of numeric part for the names of this machines (betwen 3 and 6" +msgstr "" +"Länge der numerische Teil für die Namen dieser Maschinen (zwischen 3 und 6" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 +#: services/HyperV_enterprise/HyperVLinkedService.py:119 +#: services/OVirt/OVirtLinkedService.py:143 +#: services/Vmware_enterprise/VCLinkedCloneService.py:95 +msgid "The length of basename plus length must not be greater than 15" +msgstr "Die Länge der Basename plus Länge darf nicht größer als 15 sein." + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:118 +#: services/HyperV_enterprise/HyperVLinkedService.py:121 +#: services/OVirt/OVirtLinkedService.py:145 +#: services/Vmware_enterprise/VCLinkedCloneService.py:97 +msgid "The machine name can't be only numbers" +msgstr "Der Computername kann nicht nur Zahlen sein." + +#: services/HyperV_enterprise/HyperVClusterProvider.py:64 +msgid "HyperV Cluster Provider" +msgstr "Hyper-v Cluster-Anbieter" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:68 +msgid "HyperV Cluster Service Provider" +msgstr "Hyper-v Cluster Service-Provider" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" +msgstr "Hyper-v Server IP oder Hostname (müssen erste WSMAN-Zugriff aktivieren)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +msgid "WSMan Port (normally 5985)" +msgstr "WSMan-Port (normalerweise 5985)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +msgid "User with valid privileges on HyperV Server" +msgstr "Benutzer mit gültigen Berechtigungen auf Hyper-v Server" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +msgid "Password of the user of HyperV" +msgstr "Passwort des Benutzers des Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +msgid "Timeout in seconds of connection to HyperV" +msgstr "Timeout in Sekunden der Verbindung zum Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:94 +#: services/HyperV_enterprise/HyperVProvider.py:86 +#: services/OVirt/OVirtProvider.py:96 +#: services/Vmware_enterprise/ServiceProviderVC.py:33 +msgid "Macs range" +msgstr "Mac-Bereich" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:95 +#: services/HyperV_enterprise/HyperVProvider.py:87 +#: services/OVirt/OVirtProvider.py:97 +msgid "Range of valids macs for created machines" +msgstr "Bereich von gilt Macs für erstellte Maschinen" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:132 +msgid "The selected server is not a cluster" +msgstr "Der ausgewählte Server ist keines Clusters" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:299 +#: services/HyperV_enterprise/HyperVProvider.py:249 +#: services/OVirt/OVirtProvider.py:399 +msgid "Connection test successful" +msgstr "Verbindungstest erfolgreich" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:300 +#: services/HyperV_enterprise/HyperVProvider.py:250 +#: services/OVirt/OVirtProvider.py:400 +#: services/Vmware_enterprise/ServiceProviderVC.py:120 +msgid "Connection failed. Check connection params" +msgstr "Verbindung ist fehlgeschlagen. Kontrollkästchen Verbindung params" + +#: services/HyperV_enterprise/HyperVClusterPublication.py:97 +#: services/HyperV_enterprise/HyperVPublication.py:96 +#: services/OVirt/OVirtPublication.py:85 +#, python-brace-format +msgid "UDS pub for {0} at {1}" +msgstr "UDS-Pub für {0} bei {1}" + +#: services/HyperV_enterprise/HyperVLinkedService.py:54 +msgid "HyperV Linked Clone (Experimental)" +msgstr "Hyper-v Linked Clone (experimentell)" + +#: services/HyperV_enterprise/HyperVProvider.py:62 +msgid "HyperV Platform Provider" +msgstr "Hyper-v-Plattform-Anbieter" + +#: services/HyperV_enterprise/HyperVProvider.py:66 +msgid "HyperV platform service provider" +msgstr "Hyper-v-Plattform-Service-provider" + #: services/OVirt/OVirtLinkedService.py:56 msgid "oVirt Linked Clone (Experimental)" msgstr "oVirt Linked Clone (experimentell)" @@ -844,25 +1359,6 @@ msgstr "oVirt Linked Clone (experimentell)" msgid "oVirt Services based on templates and COW (experimental)" msgstr "oVirt-basierten Services auf Vorlagen und Kuh (experimentell)" -#: services/OVirt/OVirtLinkedService.py:77 -msgid "Number of desired machines to keep running waiting for a user" -msgstr "" -"Anzahl der gewünschten Maschinen warten für einen Benutzer ausgeführt wird" - -#: services/OVirt/OVirtLinkedService.py:83 -msgid "Number of desired machines to keep suspended waiting for use" -msgstr "" -"Anzahl der gewünschten Maschinen zu ausgesetzten Personen, die für die " -"Verwendung auf" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Base Machine" -msgstr "Grundmaschine" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Service base machine" -msgstr "Service-Grundmaschine" - #: services/OVirt/OVirtLinkedService.py:100 msgid "Cluster" msgstr "Cluster" @@ -879,10 +1375,6 @@ msgstr "Datastore-Domain" msgid "Datastore domain where to publish and put incrementals" msgstr "Datastore Domäne wo zu veröffentlichen und inkrementelle Backups" -#: services/OVirt/OVirtLinkedService.py:112 -msgid "Memory (Mb)" -msgstr "Speicher (Mb)" - #: services/OVirt/OVirtLinkedService.py:113 msgid "Memory assigned to machines" msgstr "Speicher zugewiesen Maschinen" @@ -895,19 +1387,6 @@ msgstr "Speicher garantiert (Mb)" msgid "Physical memory guaranteed to machines" msgstr "Arbeitsspeicher garantiert Maschinen" -#: services/OVirt/OVirtLinkedService.py:118 -msgid "Machine Names" -msgstr "Computernamen" - -#: services/OVirt/OVirtLinkedService.py:119 -msgid "Name Length" -msgstr "Länge des Dateinamens" - -#: services/OVirt/OVirtLinkedService.py:120 -msgid "Length of numeric part for the names of this machines (betwen 3 and 6" -msgstr "" -"Länge der numerische Teil für die Namen dieser Maschinen (zwischen 3 und 6" - #: services/OVirt/OVirtLinkedService.py:122 msgid "Display" msgstr "Display" @@ -916,14 +1395,6 @@ msgstr "Display" msgid "Display type (only for administration pourposses)" msgstr "Displaytyp (nur für Verwaltung Pourposses)" -#: services/OVirt/OVirtLinkedService.py:143 -msgid "The length of basename plus length must not be greater than 15" -msgstr "Die Länge der Basename plus Länge darf nicht größer als 15 sein." - -#: services/OVirt/OVirtLinkedService.py:145 -msgid "The machine name can't be only numbers" -msgstr "Der Computername kann nicht nur Zahlen sein." - #: services/OVirt/OVirtProvider.py:73 msgid "oVirt Platform Provider" msgstr "oVirt Plattform-Anbieter" @@ -947,30 +1418,10 @@ msgid "Password of the user of oVirt" msgstr "Passwort des Benutzers des oVirt" #: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 msgid "Timeout in seconds of connection to VC" msgstr "Timeout in Sekunden der Verbindung zum VC" -#: services/OVirt/OVirtProvider.py:96 -msgid "Macs range" -msgstr "Mac-Bereich" - -#: services/OVirt/OVirtProvider.py:97 -msgid "Range of valids macs for created machines" -msgstr "Bereich von gilt Macs für erstellte Maschinen" - -#: services/OVirt/OVirtProvider.py:399 -msgid "Connection test successful" -msgstr "Verbindungstest erfolgreich" - -#: services/OVirt/OVirtProvider.py:400 -msgid "Connection failed. Check connection params" -msgstr "Verbindung ist fehlgeschlagen. Kontrollkästchen Verbindung params" - -#: services/OVirt/OVirtPublication.py:85 -#, python-brace-format -msgid "UDS pub for {0} at {1}" -msgstr "UDS-Pub für {0} bei {1}" - #: services/PhysicalMachines/IPMachineDeployed.py:57 msgid "IP " msgstr "IP " @@ -1089,6 +1540,121 @@ msgstr "L2-Cache für Blindelemente" msgid "List of names" msgstr "Liste der Namen" +#: services/Vmware_enterprise/Helpers.py:72 +msgid "Local" +msgstr "Lokale" + +#: services/Vmware_enterprise/Helpers.py:74 +msgid "Remote" +msgstr "Remote" + +#: services/Vmware_enterprise/PublicationVC.py:37 +msgid "Publication" +msgstr "Veröffentlichung" + +#: services/Vmware_enterprise/PublicationVC.py:38 +#, python-brace-format +msgid "UDS Publication for {0} created at {1}" +msgstr "UDS-Publikation für {0} erstellt am {1}" + +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "VMWare VC Server IP or Hostname" +msgstr "VMWare VC Server IP oder Hostname" + +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "VMWare VC Server Port (usually 443)" +msgstr "VMWare VC Server Port (in der Regel 443)" + +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +msgid "User with valid privileges on VC" +msgstr "Benutzer mit gültigen Berechtigungen für VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +msgid "Password of the user of the VC" +msgstr "Kennwort des Benutzers des VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:34 +msgid "" +"Range of valids macs for created machines. Must be inside " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Bereich von ungültigen Macs für erstellte Maschinen. Muss innerhalb " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" + +#: services/Vmware_enterprise/ServiceProviderVC.py:39 +msgid "VMWare Virtual Center Provider" +msgstr "VMWare Virtual Center-Anbieter" + +#: services/Vmware_enterprise/ServiceProviderVC.py:41 +msgid "Provides connection to Virtual Center Services" +msgstr "Stellt Verbindung zu Virtual-Center-Dienstleistungen" + +#: services/Vmware_enterprise/ServiceProviderVC.py:110 +msgid "Error testing connection" +msgstr "Fehler Test Verbindung" + +#: services/Vmware_enterprise/ServiceProviderVC.py:113 +msgid "VmwareVC Provider: " +msgstr "VmwareVC-Anbieter: " + +#: services/Vmware_enterprise/ServiceProviderVC.py:119 +msgid "Connection params ok" +msgstr "Verbindung Params ok" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:30 +msgid "Datacenter" +msgstr "Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:36 +msgid "Datacenter containing base machine" +msgstr "Enthaltenden Datacenter-Grundmaschine" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Pub. Resource Pool" +msgstr "Pub. Ressourcen-Pool" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Resource Pool where deploy clones" +msgstr "Ressourcen-Pool wo bereitstellen Klone" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Clones Folder" +msgstr "Klone Ordner" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Folder where deploy clones" +msgstr "Ordner wo bereitstellen Klone" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:42 +msgid "Resource Pool" +msgstr "Ressourcen-Pool" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:48 +msgid "Resource Pool containing base machine" +msgstr "Ressource Pool enthaltenden Grundmaschine" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base machine for this service" +msgstr "Basismaschine für diesen Dienst" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:53 +msgid "Datastores" +msgstr "Datastores" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:54 +msgid "Datastores where to put incrementals" +msgstr "Datastores wo Sie inkrementelle Backups" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:64 +msgid "VMWare Linked clone base" +msgstr "VMWare Linked Clone base" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:66 +msgid "" +"This service provides access to Linked Clones machines on a Virtual Center" +msgstr "" +"Dieser Service bietet Zugriff auf verknüpfte Klone Maschinen auf ein Virtual Center" + #: templates/404.html:3 templates/500.html:3 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -1149,10 +1715,6 @@ msgstr "IP" msgid "Transports" msgstr "Transporte" -#: templates/uds/internal_page.html:28 -msgid "User" -msgstr "Benutzer" - #: templates/uds/internal_page.html:34 templates/uds/prefs.html:12 #: templates/uds/html5/snippets/navbar.html:39 msgid "Preferences" @@ -1190,12 +1752,6 @@ msgstr "UDS-Benutzereinstellungen" msgid "Save Preferences" msgstr "Speichern Sie Einstellungen" -#: templates/uds/service_not_ready.html:6 -msgid "Service not ready at this moment. Please, try again in a while." -msgstr "" -"Service im Moment nicht bereit. Bitte, versuchen Sie es noch einmal in eine " -"Weile." - #: templates/uds/admin/snippets/navbar.html:6 #: templates/uds/html5/snippets/navbar.html:6 msgid "toggle navigation" @@ -1211,6 +1767,7 @@ msgid "Authenticators" msgstr "Authentifikatoren" #: templates/uds/admin/snippets/navbar.html:21 +#: templates/uds/admin/tmpl/connectivity.html:4 msgid "Connectivity" msgstr "Konnektivität" @@ -1222,11 +1779,11 @@ msgstr "Bereitgestellten Dienste" msgid "Configuration" msgstr "Konfiguration" -#: templates/uds/admin/snippets/navbar.html:56 +#: templates/uds/admin/snippets/navbar.html:57 msgid "Exit dashboard" msgstr "Ausfahrt dashboard" -#: templates/uds/admin/snippets/navbar.html:57 +#: templates/uds/admin/snippets/navbar.html:58 #: templates/uds/html5/snippets/navbar.html:47 msgid "logout" msgstr "Logout" @@ -1235,6 +1792,7 @@ msgstr "Logout" msgid "administration of authenticators" msgstr "Verwaltung von Authentifikatoren" +#: templates/uds/admin/tmpl/connectivity.html:4 #: templates/uds/admin/tmpl/dashboard.html:4 msgid "overview" msgstr "Übersicht" @@ -1369,13 +1927,19 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "Empty creds" msgstr "Leere creds" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "If checked, the credentials used to connect will be emtpy" msgstr "" "Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstellen " @@ -1383,7 +1947,10 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 #: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 -#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 msgid "If not empty, this username will be always used as credential" msgstr "" "Wenn nicht leer ist, dieser Benutzername wird immer als verwendet " @@ -1391,7 +1958,10 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 #: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 msgid "If not empty, this password will be always used as credential" msgstr "" "Wenn nicht leer ist, dieses Kennwort immer verwendet werden als " @@ -1399,6 +1969,8 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "" "If not empty, this domain will be always used as credential (used as DOMAIN" "\\user)" @@ -1505,11 +2077,13 @@ msgid "NX Transport for tunneled connection" msgstr "NX-Transport für getunnelte Verbindung" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "Tunnel server" msgstr "Tunnel-server" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "" "IP or Hostname of tunnel server send to client device (\"public\" ip) and " @@ -1519,11 +2093,13 @@ msgstr "" "(\"öffentliche\" IP-Adresse) und Port. (verwenden Sie HOST: PORT-Format)" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "Tunnel host check" msgstr "Tunnel Host-Prüfung" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "" "If not empty, this server will be used to check if service is running before " @@ -1534,6 +2110,7 @@ msgstr "" "Sie HOST: PORT-Format)" #: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75 +#: transports/RGS-enterprise/TRGSTransport.py:71 #: transports/TSNX/TSNXTransport.py:103 msgid "Must use HOST:PORT in Tunnel Server Field" msgstr "HOST: PORT muss in Feld der Tunnel-Server verwendet werden." @@ -1642,7 +2219,7 @@ msgstr "Remote Desktop-Protokoll" msgid "In order to use this service, you should first install CoRD." msgstr "Um diesen Dienst zu nutzen, sollten Sie zunächst Kabel installieren." -#: transports/RDP/web.py:85 +#: transports/RDP/web.py:85 transports/RGS-enterprise/web.py:83 msgid "You can obtain it from" msgstr "Erhalten Sie es aus" @@ -1650,18 +2227,122 @@ msgstr "Erhalten Sie es aus" msgid "CoRD Website" msgstr "CoRD-Website" +#: transports/RGS-enterprise/RGSTransport.py:34 +msgid "RGS Transport (direct)" +msgstr "RGS-Transport (direkt)" + +#: transports/RGS-enterprise/RGSTransport.py:36 +msgid "RGS Transport for direct connection" +msgstr "RGS-Transport für den direkten Anschluss" + +#: transports/RGS-enterprise/RGSTransport.py:45 +#: transports/RGS-enterprise/TRGSTransport.py:50 +msgid "Image quality" +msgstr "Bildqualität" + +#: transports/RGS-enterprise/RGSTransport.py:46 +#: transports/RGS-enterprise/TRGSTransport.py:51 +msgid "Quality of image codec (0-100)" +msgstr "Qualität der Image-Codec (0-100)" + +#: transports/RGS-enterprise/RGSTransport.py:47 +#: transports/RGS-enterprise/TRGSTransport.py:52 +msgid "Adjustable Quality" +msgstr "Einstellbare Qualität" + +#: transports/RGS-enterprise/RGSTransport.py:48 +#: transports/RGS-enterprise/TRGSTransport.py:53 +msgid "If checked, the image quality will be adjustable with bandwidth" +msgstr "Wenn diese Option aktiviert, wird die Bildqualität mit Bandbreite einstellbar sein" + +#: transports/RGS-enterprise/RGSTransport.py:49 +#: transports/RGS-enterprise/TRGSTransport.py:54 +msgid "Min. Adjustable Quality" +msgstr "Min. einstellbare Qualität" + +#: transports/RGS-enterprise/RGSTransport.py:50 +#: transports/RGS-enterprise/TRGSTransport.py:55 +msgid "" +"The lowest image quality applied to images to maintain the minimum update " +"rate." +msgstr "" +"Die niedrigste Bildqualität auf Bilder weiterhin das minimale Update angewendet " +"Rate." + +#: transports/RGS-enterprise/RGSTransport.py:51 +#: transports/RGS-enterprise/TRGSTransport.py:56 +msgid "Adjustable Frame Rate" +msgstr "Einstellbare Framerate" + +#: transports/RGS-enterprise/RGSTransport.py:52 +#: transports/RGS-enterprise/TRGSTransport.py:57 +msgid "Update rate threshold to begin adjusting image quality" +msgstr "Update Rate Schwelle zu beginnen, Anpassung der Bildqualität" + +#: transports/RGS-enterprise/RGSTransport.py:53 +#: transports/RGS-enterprise/TRGSTransport.py:58 +msgid "Match Local Resolution" +msgstr "Match Ortsauflösung" + +#: transports/RGS-enterprise/RGSTransport.py:54 +#: transports/RGS-enterprise/TRGSTransport.py:59 +msgid "" +"Change the Sender's resolution to match the Receiver's resolution when " +"connecting" +msgstr "" +"Auflösung des Absenders an den Empfänger Auflösung anpassen ändern Wenn " +"Herstellen einer Verbindung" + +#: transports/RGS-enterprise/RGSTransport.py:55 +#: transports/RGS-enterprise/TRGSTransport.py:60 +msgid "Redirect USB" +msgstr "Umleitung USB" + +#: transports/RGS-enterprise/RGSTransport.py:56 +#: transports/RGS-enterprise/TRGSTransport.py:61 +msgid "If checked, the USB will be redirected." +msgstr "Wenn diese Option aktiviert, werden die USB weitergeleitet." + +#: transports/RGS-enterprise/RGSTransport.py:57 +#: transports/RGS-enterprise/TRGSTransport.py:62 +msgid "Redirect Audio" +msgstr "Umleitung-Audio" + +#: transports/RGS-enterprise/RGSTransport.py:58 +#: transports/RGS-enterprise/TRGSTransport.py:63 +msgid "If checked, the Audio will be redirected." +msgstr "Wenn aktiviert, werden die Audiodaten weitergeleitet." + +#: transports/RGS-enterprise/RGSTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:64 +msgid "Redirect Mic" +msgstr "Umleitung Mic" + +#: transports/RGS-enterprise/RGSTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:65 +msgid "If checked, the Mic will be redirected." +msgstr "Wenn diese Option aktiviert, wird das Mikrofon umgeleitet." + +#: transports/RGS-enterprise/TRGSTransport.py:36 +msgid "RGS Transport (tunneled)" +msgstr "RGS-Transport (Tunneling)" + +#: transports/RGS-enterprise/TRGSTransport.py:38 +msgid "RGS Transport for tunneled connection" +msgstr "RGS-Transport für getunnelte Verbindung" + +#: transports/RGS-enterprise/web.py:82 +msgid "In order to use this service, you should first install RGS Receiver." +msgstr "Um diesen Service zu nutzen, sollten Sie zunächst RGS-Empfänger installieren." + +#: transports/RGS-enterprise/web.py:83 +msgid "HP Website" +msgstr "Website von HP" + #: web/errors.py:60 msgid "Unknown error" msgstr "Unbekannter Fehler" -#: web/errors.py:61 -msgid "Transport not found" -msgstr "Verkehr nicht gefunden" - -#: web/errors.py:62 -msgid "Service not found" -msgstr "-Dienst nicht gefunden" - #: web/errors.py:63 xmlrpc/auths/AdminAuth.py:182 #: xmlrpc/auths/AdminAuth.py:188 msgid "Access denied" @@ -1731,10 +2412,6 @@ msgstr "Anmeldeinformationen nicht mehr gültig" msgid "Administration" msgstr "Verwaltung" -#: xmlrpc/auths/AdminAuth.py:168 -msgid "Invalid credentials" -msgstr "Ungültiger Anmeldeinformationen" - #: xmlrpc/auths/Authenticators.py:107 msgid "Authenticator does not exists" msgstr "Authentifikator ist nicht vorhanden" diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo index 18143dc3b..5d5277acc 100644 Binary files a/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo and b/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo differ diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po index 87a724040..aeaf3378b 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:21+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: static/adm/js/gui-elements.js:7 +#: static/adm/js/gui-elements.js:33 msgid "Service Providers" msgstr "Service-Provider" -#: static/adm/js/gui-elements.js:81 -msgid "Connectivity" -msgstr "Konnektivität" - #: static/adm/js/gui.js:18 msgid "_MENU_ records per page" msgstr "_MENU_ Datensätze pro Seite" @@ -70,19 +66,19 @@ msgstr "Nächste" msgid "Previous" msgstr "Vorherige" -#: static/adm/js/gui.js:80 +#: static/adm/js/gui.js:75 msgid "Deployed services" msgstr "Bereitgestellten Dienste" -#: static/adm/js/gui.js:349 +#: static/adm/js/gui.js:360 msgid "Edit" msgstr "Bearbeiten" -#: static/adm/js/gui.js:358 +#: static/adm/js/gui.js:369 msgid "Delete" msgstr "Löschen" -#: static/adm/js/gui.js:367 +#: static/adm/js/gui.js:378 msgid "Refresh" msgstr "Aktualisieren" @@ -161,3 +157,7 @@ msgstr "November" #: static/adm/js/strftime.js:35 msgid "December" msgstr "Dezember" + +#: static/adm/js/tools.js:46 +msgid "Just a moment..." +msgstr "Einen Moment..." diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.mo b/server/src/uds/locale/es/LC_MESSAGES/django.mo index a6b8f7dde..c8040d336 100644 Binary files a/server/src/uds/locale/es/LC_MESSAGES/django.mo and b/server/src/uds/locale/es/LC_MESSAGES/django.mo differ diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.po b/server/src/uds/locale/es/LC_MESSAGES/django.po index 3a5ee1b84..867f77d11 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/django.po +++ b/server/src/uds/locale/es/LC_MESSAGES/django.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:20+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: 2013-04-22 06:24+0200\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -42,23 +42,23 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Lokalize 1.4\n" -#: REST/methods/authenticators.py:73 +#: REST/methods/authenticators.py:80 msgid "Current authenticators" msgstr "Autenticadores actuales" -#: REST/methods/authenticators.py:75 REST/methods/networks.py:68 +#: REST/methods/authenticators.py:82 REST/methods/networks.py:68 #: REST/methods/osmanagers.py:71 REST/methods/providers.py:69 #: REST/methods/transports.py:71 REST/methods/users.py:77 msgid "Name" msgstr "Nombre" -#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72 +#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72 #: REST/methods/providers.py:70 REST/methods/transports.py:72 #: REST/methods/users.py:78 msgid "Comments" msgstr "Comentarios" -#: REST/methods/authenticators.py:77 +#: REST/methods/authenticators.py:84 msgid "Users" msgstr "Usuarios" @@ -114,14 +114,265 @@ msgstr "estado" msgid "Last access" msgstr "Último acceso" -#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422 +#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422 msgid "Forbidden" msgstr "Prohibido" -#: admin/views.py:69 +#: admin/views.py:70 msgid "requested a template that do not exists" msgstr "solicitó una plantilla que no existe" +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +#: auths/EDirectory_enterprise/Authenticator.py:60 +#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +#: services/OVirt/OVirtProvider.py:92 +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "Host" +msgstr "Servidor " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +msgid "Active Directory Server IP or Hostname" +msgstr "Servidor de Active Directory IP o nombre de host" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "Use SSL" +msgstr "Usar SSL" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +msgid "If checked, will use a ssl connection to Active Directory" +msgstr "Si está marcada, utilizará una conexión ssl a Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility" +msgstr "Compatibilidad" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility of AD connection (Usually windows 2000 and later)" +msgstr "Compatibilidad de conexión AD (windows 2000 y versiones posteriores)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 +msgid "Ldap User" +msgstr "Usuario LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +msgid "" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" +msgstr "" +"Nombre de usuario con privilegios de lectura en la base seleccionada (uso USER@DOMAIN.Formulario de DOM " +"para esto)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/ActiveDirectory_enterprise/Authenticator.py:52 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 +#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 +#: core/auths/BaseAuthenticator.py:136 +#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 +#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 +#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70 +msgid "Password" +msgstr "Contraseña" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 +msgid "Password of the ldap user" +msgstr "Contraseña del usuario del ldap" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +#: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 +msgid "Timeout" +msgstr "Espera " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +msgid "Timeout in seconds of connection to LDAP" +msgstr "Tiempo de espera en segundos" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:37 +msgid "Active Directory Authenticator" +msgstr "Autenticador de Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:39 +msgid "Authenticate against Active Directory" +msgstr "Autenticar con Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:48 +#: auths/EDirectory_enterprise/Authenticator.py:77 +#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +#: services/OVirt/OVirtProvider.py:93 +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 +#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 +msgid "Username" +msgstr "Usuario" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:50 +#: auths/EDirectory_enterprise/Authenticator.py:79 +#: auths/RegexLdap/Authenticator.py:74 auths/SAML_enterprise/SAML.py:114 +#: auths/SimpleLDAP/Authenticator.py:75 +msgid "Group" +msgstr "Grupo" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:67 +#: auths/ActiveDirectory_enterprise/Authenticator.py:442 +msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" +msgstr "Debe especificar el nombre de usuario en el formulario USERNAME@DOMAIN.DOM" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:164 +#: auths/EDirectory_enterprise/Authenticator.py:123 +#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 +msgid "Ldap connection error: " +msgstr "Error de conexión al ldap: " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:344 +#: auths/ActiveDirectory_enterprise/Authenticator.py:390 +#: auths/EDirectory_enterprise/Authenticator.py:243 +#: auths/EDirectory_enterprise/Authenticator.py:286 +#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 +#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 +msgid "Username not found" +msgstr "Nombre de usuario no hallado" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:377 +#: auths/SimpleLDAP/Authenticator.py:302 +msgid "Group not found" +msgstr "Grupo no hallado" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:410 +#: auths/ActiveDirectory_enterprise/Authenticator.py:428 +#: auths/EDirectory_enterprise/Authenticator.py:303 +#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 +#: auths/SimpleLDAP/Authenticator.py:342 +msgid "Too many results, be more specific" +msgstr "Demasiados resultados, sea más específico" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:451 +msgid "Domain seems to be incorrect, please check it" +msgstr "Dominio parece ser incorrecta, por favor compruebe lo" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:456 +msgid "Ldap does not seem an Active Directory (do not have user objects)" +msgstr "LDAP no parece un Active Directory (no tienen los objetos de usuario)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:464 +msgid "Ldap does not seem an Active Directory (no not have group objects)" +msgstr "LDAP no parece un Active Directory (no tienen objetos de grupo)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:472 +msgid "" +"Ldap does not seem an Active Directory (do not have any user nor groups)" +msgstr "" +"LDAP no parece un Active Directory (no tienen ningún usuario ni grupos)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:477 +#: auths/EDirectory_enterprise/Authenticator.py:358 +#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 +msgid "Connection params seem correct, test was succesfully executed" +msgstr "" +"Los parámetros de conexión parecen correctos, la prueba fue ejecutado con " +"exito" + +#: auths/EDirectory_enterprise/Authenticator.py:60 +msgid "EDirectory Server IP or Hostname" +msgstr "EDirectory servidor IP o nombre de host" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "Port" +msgstr "Puerto" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +msgid "Ldap port (389 for non ssl, 636 for ssl normally" +msgstr "Puerto LDAP (389 para no SSL, 636 para ssl normalmente)" + +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "" +"If checked, will use a ssl connection to ldap (if port is 389, will use in " +"fact port 636)" +msgstr "" +"Si está activada, utilizará una conexión ssl con ldap (si el puerto es 389, " +"utilizará de hecho el Puerto 636)" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Admin user" +msgstr "Usuario admin" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Username with read privileges on the eDirectory" +msgstr "Nombre de usuario con privilegios de lectura en el eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:67 +msgid "eDirectory Authenticator" +msgstr "eDirectory autenticador" + +#: auths/EDirectory_enterprise/Authenticator.py:69 +msgid "Authenticate against eDirectory" +msgstr "Autenticar con eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:323 +#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 +msgid "Ldap search base is incorrect" +msgstr "La base de búsqueda ldap es incorrecta" + +#: auths/EDirectory_enterprise/Authenticator.py:328 +#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 +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:336 +#: auths/SimpleLDAP/Authenticator.py:384 +msgid "" +"Ldap user id attribute seems to be incorrect (no user found by that " +"attribute)" +msgstr "" +"El atributo de id de usuario de ldap parece ser incorrecto (ningún usuario " +"encontrado por atributo)" + +#: auths/EDirectory_enterprise/Authenticator.py:344 +msgid "Expected group attribute " +msgstr "Atributo de grupo esperados " + +#: auths/EDirectory_enterprise/Authenticator.py:353 +msgid "" +"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" +msgstr "" +"LDAP usuario clase o usuario id attr es probablemente incorrecto (Ldap es un eDirectory?)" + #: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50 msgid "IP Authenticator" msgstr "Autenticador por IP" @@ -167,69 +418,14 @@ msgstr "Si está activado, el nombre de host será resuelto de forma inversa" msgid "Internal structures seems ok" msgstr "Las estructuras internas parecen correctas" -#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 -#: services/OVirt/OVirtProvider.py:92 -msgid "Host" -msgstr "Servidor " - #: auths/RegexLdap/Authenticator.py:49 msgid "Ldap Server Host" msgstr "Servidor de LDAP" -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Port" -msgstr "Puerto" - -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Ldap port (389 for non ssl, 636 for ssl normally" -msgstr "Puerto LDAP (389 para no SSL, 636 para ssl normalmente)" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "Use SSL" -msgstr "Usar SSL" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "" -"If checked, will use a ssl connection to ldap (if port is 389, will use in " -"fact port 636)" -msgstr "" -"Si está activada, utilizará una conexión ssl con ldap (si el puerto es 389, " -"utilizará de hecho el Puerto 636)" - -#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 -msgid "Ldap User" -msgstr "Usuario LDAP" - #: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 msgid "Username with read privileges on the base selected" msgstr "Usuario con privilegios de lectura en la base elegida" -#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 -#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 -#: core/auths/BaseAuthenticator.py:136 -#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 -#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 -#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 -#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 -#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 -#: web/forms/LoginForm.py:70 -msgid "Password" -msgstr "Contraseña" - -#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 -msgid "Password of the ldap user" -msgstr "Contraseña del usuario del ldap" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -#: services/OVirt/OVirtProvider.py:95 -msgid "Timeout" -msgstr "Espera " - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -msgid "Timeout in seconds of connection to LDAP" -msgstr "Tiempo de espera en segundos" - #: auths/RegexLdap/Authenticator.py:55 auths/SimpleLDAP/Authenticator.py:55 msgid "Base" msgstr "Base" @@ -280,42 +476,6 @@ msgstr "Autenticador Regex LDAP" msgid "Regular Expressions LDAP authenticator" msgstr "Autenticador LDAP de expresiones regulares" -#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 -#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64 -#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66 -#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63 -#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 -msgid "Username" -msgstr "Usuario" - -#: auths/RegexLdap/Authenticator.py:74 auths/SimpleLDAP/Authenticator.py:75 -msgid "Group" -msgstr "Grupo" - -#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 -msgid "Ldap connection error: " -msgstr "Error de conexión al ldap: " - -#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 -#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 -msgid "Username not found" -msgstr "Nombre de usuario no hallado" - -#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 -#: auths/SimpleLDAP/Authenticator.py:342 -msgid "Too many results, be more specific" -msgstr "Demasiados resultados, sea más específico" - -#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 -msgid "Ldap search base is incorrect" -msgstr "La base de búsqueda ldap es incorrecta" - -#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 -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/RegexLdap/Authenticator.py:401 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " @@ -332,11 +492,116 @@ msgstr "" "Atributo de id de grupo ldap parece ser incorrecto (ningún grupo encontrado " "por atributo)" -#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 -msgid "Connection params seem correct, test was succesfully executed" +#: auths/SAML_enterprise/SAML.py:80 +msgid "SAML Authenticator" +msgstr "SAML autenticador" + +#: auths/SAML_enterprise/SAML.py:92 +msgid "SAML (v2.0) Authenticator" +msgstr "SAML (v2.0) autenticador" + +#: auths/SAML_enterprise/SAML.py:111 templates/uds/internal_page.html:28 +msgid "User" +msgstr "Usuario" + +#: auths/SAML_enterprise/SAML.py:120 +msgid "Private key" +msgstr "Clave privada" + +#: auths/SAML_enterprise/SAML.py:121 +msgid "" +"Private key used for sign and encription, as generated in base 64 from " +"openssl" msgstr "" -"Los parámetros de conexión parecen correctos, la prueba fue ejecutado con " -"exito" +"Clave privada utilizado para firmar y encriptación, generadas en base 64 de " +"OpenSSL" + +#: auths/SAML_enterprise/SAML.py:122 +msgid "Certificate" +msgstr "Certificado" + +#: auths/SAML_enterprise/SAML.py:123 +msgid "Server certificate (public), , as generated in base 64 from openssl" +msgstr "Certificado del servidor (público), como generados en base 64 de openssl" + +#: auths/SAML_enterprise/SAML.py:124 +msgid "IDP Metadata" +msgstr "IDP metadatos" + +#: auths/SAML_enterprise/SAML.py:125 +msgid "" +"You can enter here the URL or the IDP metadata or the metadata itself (xml)" +msgstr "" +"Aquí puede introducir la URL o los metadatos IDP o los metadatos de sí mismo (xml)" + +#: auths/SAML_enterprise/SAML.py:127 +msgid "Entity ID" +msgstr "ID de entidad" + +#: auths/SAML_enterprise/SAML.py:128 +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "ID del SP. Si deja en blanco, este será generadas automáticamente desde la dirección URL del servidor" + +#: auths/SAML_enterprise/SAML.py:130 +msgid "User name attrs" +msgstr "Usuario nombre attrs" + +#: auths/SAML_enterprise/SAML.py:131 +msgid "Fields from where to extract user name" +msgstr "Campos de donde extraer el nombre de usuario" + +#: auths/SAML_enterprise/SAML.py:133 +msgid "Group name attrs" +msgstr "Grupo nombre attrs" + +#: auths/SAML_enterprise/SAML.py:134 +msgid "Fields from where to extract the groups" +msgstr "Campos de donde extraer los grupos" + +#: auths/SAML_enterprise/SAML.py:136 +msgid "Real name attrs" +msgstr "Nombre real attrs" + +#: auths/SAML_enterprise/SAML.py:137 +msgid "Fields from where to extract the real name" +msgstr "Campos de donde extraer el nombre real" + +#: auths/SAML_enterprise/SAML.py:160 +msgid "" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"Certificado del servidor debe ser un PEM válido (PEM certificados comienza con---" +"BEGIN CERTIFICADO---)" + +#: auths/SAML_enterprise/SAML.py:165 +msgid "Invalid server certificate. " +msgstr "Certificado de servidor no válido. " + +#: auths/SAML_enterprise/SAML.py:168 +msgid "" +"Private key should be a valid PEM (PEM private keys starts with -----BEGIN " +"RSA PRIVATE KEY-----" +msgstr "" +"Clave privada debe ser un PEM válido (PEM claves privadas comienza con---BEGIN " +"CLAVE PRIVADA RSA---" + +#: auths/SAML_enterprise/SAML.py:197 +#, python-brace-format +msgid "Can't fetch url {0}: {1}" +msgstr "No se puede buscar url {0}: {1}" + +#: auths/SAML_enterprise/SAML.py:208 +msgid " (obtained from URL)" +msgstr " (Obtenido de URL)" + +#: auths/SAML_enterprise/SAML.py:209 +msgid "XML do not seems valid for IDP Metadata " +msgstr "XML no parece válido para metadatos de IDP " + +#: auths/SAML_enterprise/SAML.py:227 +msgid "Can't access idp metadata" +msgstr "No puede acceder a metadatos de idp" #: auths/Sample/SampleAuth.py:71 msgid "Sample Authenticator" @@ -398,24 +663,12 @@ msgstr "Autenticador LDAP Simple" msgid "Simple LDAP authenticator" msgstr "Autenticador LDAP Simple" -#: auths/SimpleLDAP/Authenticator.py:302 -msgid "Group not found" -msgstr "Grupo no hallado" - #: auths/SimpleLDAP/Authenticator.py:376 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "La clase de grupo LDAP parece ser incorrecta (ningún grupo encontrado por " "esa clase)" -#: auths/SimpleLDAP/Authenticator.py:384 -msgid "" -"Ldap user id attribute seems to be incorrect (no user found by that " -"attribute)" -msgstr "" -"El atributo de id de usuario de ldap parece ser incorrecto (ningún usuario " -"encontrado por atributo)" - #: auths/SimpleLDAP/Authenticator.py:401 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " @@ -631,6 +884,66 @@ msgstr "Carga" msgid "Storage" msgstr "Almacenamiento de información" +#: dispatchers/wyse_enterprise/views.py:111 +msgid "There are no authenticators available for login" +msgstr "No hay ningún autenticadores disponibles para inicio de sesión" + +#: dispatchers/wyse_enterprise/views.py:124 +#, python-brace-format +msgid "The authenticator {0} is not usable" +msgstr "El autenticador {0} no es usable" + +#: dispatchers/wyse_enterprise/views.py:131 xmlrpc/auths/AdminAuth.py:168 +msgid "Invalid credentials" +msgstr "Credenciales Invalidas" + +#: dispatchers/wyse_enterprise/views.py:139 +#, python-brace-format +msgid "The domain {0} does not exists" +msgstr "No existe el dominio {0}" + +#: dispatchers/wyse_enterprise/views.py:200 +msgid "No services available" +msgstr "No hay servicios disponibles" + +#: dispatchers/wyse_enterprise/views.py:215 +#: dispatchers/wyse_enterprise/views.py:309 +msgid "Invalid session" +msgstr "Sesión no válida" + +#: dispatchers/wyse_enterprise/views.py:219 +#: dispatchers/wyse_enterprise/views.py:313 +msgid "Invalid authorization" +msgstr "Autorización no válido" + +#: dispatchers/wyse_enterprise/views.py:230 +#: dispatchers/wyse_enterprise/views.py:319 +msgid "Invalid request" +msgstr "Solicitud inválida" + +#: dispatchers/wyse_enterprise/views.py:233 +#: dispatchers/wyse_enterprise/views.py:322 +msgid "Invalid credentials used" +msgstr "Credenciales no válidas usadas" + +#: dispatchers/wyse_enterprise/views.py:254 +#: dispatchers/wyse_enterprise/views.py:257 web/errors.py:62 +msgid "Service not found" +msgstr "Servicio no hallado" + +#: dispatchers/wyse_enterprise/views.py:271 web/errors.py:61 +msgid "Transport not found" +msgstr "Transporte no hallado" + +#: dispatchers/wyse_enterprise/views.py:275 +#: dispatchers/wyse_enterprise/views.py:282 +#: dispatchers/wyse_enterprise/views.py:287 +#: templates/uds/service_not_ready.html:6 +msgid "Service not ready at this moment. Please, try again in a while." +msgstr "" +"El servicio no está disponible en estos momentos. Por favor, intentelo de " +"nuevo pasado unos instantes." + #: osmanagers/LinuxOsManager/LinuxOsManager.py:45 msgid "Linux OS Manager" msgstr "Gestor de S.O. Linux" @@ -680,6 +993,8 @@ msgstr "Gestor de s.o. para controlar maquinas windows con dominio." #: osmanagers/WindowsOsManager/WinDomainOsManager.py:32 #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "Domain" msgstr "Dominio" @@ -829,6 +1144,203 @@ msgstr "" "Actor para las máquinas Windows (Importante!!! Requiere tener .net " "framework 3.5 sp1)" +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:51 +msgid "HyperV Cluster Linked Clone (Experimental)" +msgstr "Cluster HyperV ligado clon (Experimental)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 +#: services/HyperV_enterprise/HyperVLinkedService.py:58 +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "Hiper servicios basados en plantillas y diferenciales discos (experimentales)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 +#: services/HyperV_enterprise/HyperVLinkedService.py:75 +#: services/OVirt/OVirtLinkedService.py:77 +#: services/Vmware_enterprise/VCLinkedCloneService.py:72 +msgid "Number of desired machines to keep running waiting for a user" +msgstr "Número de máquinas a manatener en ejecución esperando a un usuario" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 +#: services/HyperV_enterprise/HyperVLinkedService.py:81 +#: services/OVirt/OVirtLinkedService.py:83 +#: services/Vmware_enterprise/VCLinkedCloneService.py:74 +msgid "Number of desired machines to keep suspended waiting for use" +msgstr "Número de maquinas a mantener suspendidas esperando asignación" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base Machine" +msgstr "Máquina de base" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +msgid "Service base machine" +msgstr "Máquina de base para el servicio" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:95 +#: services/HyperV_enterprise/HyperVLinkedService.py:98 +#: services/Vmware_enterprise/VCLinkedCloneService.py:38 +msgid "Network" +msgstr "Red" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:96 +#: services/HyperV_enterprise/HyperVLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:39 +msgid "" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Si más de una interfaz se encuentra en la máquina, utilice uno de esta red como principal" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 +#: services/HyperV_enterprise/HyperVLinkedService.py:101 +#: services/OVirt/OVirtLinkedService.py:112 +#: services/Vmware_enterprise/VCLinkedCloneService.py:51 +msgid "Memory (Mb)" +msgstr "Memoria (Mb)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:99 +#: services/HyperV_enterprise/HyperVLinkedService.py:102 +#: services/Vmware_enterprise/VCLinkedCloneService.py:52 +msgid "Memory for machines deployed from this service" +msgstr "Memoria para máquinas desplegada desde este servicio" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 +#: services/HyperV_enterprise/HyperVLinkedService.py:103 +msgid "Datastore Drives" +msgstr "Unidades de almacén de datos" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 +#: services/HyperV_enterprise/HyperVLinkedService.py:104 +msgid "Datastores where to put incrementals & publications" +msgstr "Almacenes de datos dónde poner los backups incrementales & publicaciones" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/OVirt/OVirtLinkedService.py:118 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Machine Names" +msgstr "Nombres de máquinas" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Base name for clones from this machine" +msgstr "Nombre base de clones de esta máquina" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:103 +#: services/HyperV_enterprise/HyperVLinkedService.py:106 +#: services/OVirt/OVirtLinkedService.py:119 +#: services/Vmware_enterprise/VCLinkedCloneService.py:56 +msgid "Name Length" +msgstr "Longitud del nombre" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:104 +#: services/HyperV_enterprise/HyperVLinkedService.py:107 +#: services/OVirt/OVirtLinkedService.py:120 +#: services/Vmware_enterprise/VCLinkedCloneService.py:57 +msgid "Length of numeric part for the names of this machines (betwen 3 and 6" +msgstr "" +"Longitud de la parte numérica de los nombres de esta maquinaria (entre 3 y 6" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 +#: services/HyperV_enterprise/HyperVLinkedService.py:119 +#: services/OVirt/OVirtLinkedService.py:143 +#: services/Vmware_enterprise/VCLinkedCloneService.py:95 +msgid "The length of basename plus length must not be greater than 15" +msgstr "La longitud de basename más longitud no debe ser superior a 15" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:118 +#: services/HyperV_enterprise/HyperVLinkedService.py:121 +#: services/OVirt/OVirtLinkedService.py:145 +#: services/Vmware_enterprise/VCLinkedCloneService.py:97 +msgid "The machine name can't be only numbers" +msgstr "El nombre del equipo no puede ser sólo números" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:64 +msgid "HyperV Cluster Provider" +msgstr "Cluster HyperV proveedor" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:68 +msgid "HyperV Cluster Service Provider" +msgstr "Proveedor de servicios de clúster HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" +msgstr "HyperV servidor IP o nombre de host (debe permitir el acceso WSMAN primera)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +msgid "WSMan Port (normally 5985)" +msgstr "Puerto de WSMan (normalmente 5985)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +msgid "User with valid privileges on HyperV Server" +msgstr "Usuario con privilegios válidos en servidor HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +msgid "Password of the user of HyperV" +msgstr "Contraseña del usuario de HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +msgid "Timeout in seconds of connection to HyperV" +msgstr "Tiempo de espera en segundos de conexión a HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:94 +#: services/HyperV_enterprise/HyperVProvider.py:86 +#: services/OVirt/OVirtProvider.py:96 +#: services/Vmware_enterprise/ServiceProviderVC.py:33 +msgid "Macs range" +msgstr "Rango de Macs" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:95 +#: services/HyperV_enterprise/HyperVProvider.py:87 +#: services/OVirt/OVirtProvider.py:97 +msgid "Range of valids macs for created machines" +msgstr "Rango válido de macs para las máquinas creadas" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:132 +msgid "The selected server is not a cluster" +msgstr "El servidor seleccionado no es un clúster" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:299 +#: services/HyperV_enterprise/HyperVProvider.py:249 +#: services/OVirt/OVirtProvider.py:399 +msgid "Connection test successful" +msgstr "Test de conexión correcto" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:300 +#: services/HyperV_enterprise/HyperVProvider.py:250 +#: services/OVirt/OVirtProvider.py:400 +#: services/Vmware_enterprise/ServiceProviderVC.py:120 +msgid "Connection failed. Check connection params" +msgstr "La conexión ha fallado. Compruebe los parámetros." + +#: services/HyperV_enterprise/HyperVClusterPublication.py:97 +#: services/HyperV_enterprise/HyperVPublication.py:96 +#: services/OVirt/OVirtPublication.py:85 +#, python-brace-format +msgid "UDS pub for {0} at {1}" +msgstr "Publicación de UDS para {0} en {1}" + +#: services/HyperV_enterprise/HyperVLinkedService.py:54 +msgid "HyperV Linked Clone (Experimental)" +msgstr "HyperV vinculado clon (Experimental)" + +#: services/HyperV_enterprise/HyperVProvider.py:62 +msgid "HyperV Platform Provider" +msgstr "Proveedor de plataformas HyperV" + +#: services/HyperV_enterprise/HyperVProvider.py:66 +msgid "HyperV platform service provider" +msgstr "Proveedor de servicios de plataforma HyperV" + #: services/OVirt/OVirtLinkedService.py:56 msgid "oVirt Linked Clone (Experimental)" msgstr "Clon enlazado de ovirt (Experimental)" @@ -837,22 +1349,6 @@ msgstr "Clon enlazado de ovirt (Experimental)" msgid "oVirt Services based on templates and COW (experimental)" msgstr "Servicios oVirt basados en plantillas y COW (Experimental)" -#: services/OVirt/OVirtLinkedService.py:77 -msgid "Number of desired machines to keep running waiting for a user" -msgstr "Número de máquinas a manatener en ejecución esperando a un usuario" - -#: services/OVirt/OVirtLinkedService.py:83 -msgid "Number of desired machines to keep suspended waiting for use" -msgstr "Número de maquinas a mantener suspendidas esperando asignación" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Base Machine" -msgstr "Máquina de base" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Service base machine" -msgstr "Máquina de base para el servicio" - #: services/OVirt/OVirtLinkedService.py:100 msgid "Cluster" msgstr "Cluster" @@ -869,10 +1365,6 @@ msgstr "Almacenamiento" msgid "Datastore domain where to publish and put incrementals" msgstr "Almacenamiento donde colocar los incrementales y las publicaciones" -#: services/OVirt/OVirtLinkedService.py:112 -msgid "Memory (Mb)" -msgstr "Memoria (Mb)" - #: services/OVirt/OVirtLinkedService.py:113 msgid "Memory assigned to machines" msgstr "Memoria asignada a las máquinas" @@ -885,19 +1377,6 @@ msgstr "Memoria Garantizada (Mb)" msgid "Physical memory guaranteed to machines" msgstr "Memoria física garantizada a las máquinas" -#: services/OVirt/OVirtLinkedService.py:118 -msgid "Machine Names" -msgstr "Nombres de máquinas" - -#: services/OVirt/OVirtLinkedService.py:119 -msgid "Name Length" -msgstr "Longitud del nombre" - -#: services/OVirt/OVirtLinkedService.py:120 -msgid "Length of numeric part for the names of this machines (betwen 3 and 6" -msgstr "" -"Longitud de la parte numérica de los nombres de esta maquinaria (entre 3 y 6" - #: services/OVirt/OVirtLinkedService.py:122 msgid "Display" msgstr "Pantalla" @@ -906,14 +1385,6 @@ msgstr "Pantalla" msgid "Display type (only for administration pourposses)" msgstr "Tipo de pantalla (solo para la administración)" -#: services/OVirt/OVirtLinkedService.py:143 -msgid "The length of basename plus length must not be greater than 15" -msgstr "La longitud de basename más longitud no debe ser superior a 15" - -#: services/OVirt/OVirtLinkedService.py:145 -msgid "The machine name can't be only numbers" -msgstr "El nombre del equipo no puede ser sólo números" - #: services/OVirt/OVirtProvider.py:73 msgid "oVirt Platform Provider" msgstr "Proveedor para la plataforma oVirt" @@ -935,30 +1406,10 @@ msgid "Password of the user of oVirt" msgstr "Contraseña del usuario de oVirt" #: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 msgid "Timeout in seconds of connection to VC" msgstr "Timeout en segundos" -#: services/OVirt/OVirtProvider.py:96 -msgid "Macs range" -msgstr "Rango de Macs" - -#: services/OVirt/OVirtProvider.py:97 -msgid "Range of valids macs for created machines" -msgstr "Rango válido de macs para las máquinas creadas" - -#: services/OVirt/OVirtProvider.py:399 -msgid "Connection test successful" -msgstr "Test de conexión correcto" - -#: services/OVirt/OVirtProvider.py:400 -msgid "Connection failed. Check connection params" -msgstr "La conexión ha fallado. Compruebe los parámetros." - -#: services/OVirt/OVirtPublication.py:85 -#, python-brace-format -msgid "UDS pub for {0} at {1}" -msgstr "Publicación de UDS para {0} en {1}" - #: services/PhysicalMachines/IPMachineDeployed.py:57 msgid "IP " msgstr "IP " @@ -1075,6 +1526,121 @@ msgstr "Caché L2 para maniquí elementos" msgid "List of names" msgstr "Lista de nombres" +#: services/Vmware_enterprise/Helpers.py:72 +msgid "Local" +msgstr "Locales" + +#: services/Vmware_enterprise/Helpers.py:74 +msgid "Remote" +msgstr "Control remoto" + +#: services/Vmware_enterprise/PublicationVC.py:37 +msgid "Publication" +msgstr "Publicación" + +#: services/Vmware_enterprise/PublicationVC.py:38 +#, python-brace-format +msgid "UDS Publication for {0} created at {1}" +msgstr "Publicación de UDS para {0} creado en {1}" + +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "VMWare VC Server IP or Hostname" +msgstr "VMWare Server VC IP o nombre de host" + +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "VMWare VC Server Port (usually 443)" +msgstr "Puerto del servidor VMWare VC (generalmente 443)" + +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +msgid "User with valid privileges on VC" +msgstr "Usuario con privilegios válidos en VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +msgid "Password of the user of the VC" +msgstr "Contraseña del usuario de la VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:34 +msgid "" +"Range of valids macs for created machines. Must be inside " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gama de macs válidos para máquinas creadas. Debe estar dentro " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" + +#: services/Vmware_enterprise/ServiceProviderVC.py:39 +msgid "VMWare Virtual Center Provider" +msgstr "VMWare Virtual Center proveedor" + +#: services/Vmware_enterprise/ServiceProviderVC.py:41 +msgid "Provides connection to Virtual Center Services" +msgstr "Proporciona conexión a los servicios de Centro Virtual" + +#: services/Vmware_enterprise/ServiceProviderVC.py:110 +msgid "Error testing connection" +msgstr "Conexión de prueba de error" + +#: services/Vmware_enterprise/ServiceProviderVC.py:113 +msgid "VmwareVC Provider: " +msgstr "VmwareVC proveedor: " + +#: services/Vmware_enterprise/ServiceProviderVC.py:119 +msgid "Connection params ok" +msgstr "Conexión params ok" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:30 +msgid "Datacenter" +msgstr "Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:36 +msgid "Datacenter containing base machine" +msgstr "Máquina de base que contenga Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Pub. Resource Pool" +msgstr "Pub. Fondo de recursos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Resource Pool where deploy clones" +msgstr "Agrupación de recursos donde desplegar clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Clones Folder" +msgstr "Carpeta de clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Folder where deploy clones" +msgstr "Carpeta donde desplegar clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:42 +msgid "Resource Pool" +msgstr "Fondo de recursos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:48 +msgid "Resource Pool containing base machine" +msgstr "Máquina base contenedora de recurso piscina" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base machine for this service" +msgstr "Máquina base para este servicio" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:53 +msgid "Datastores" +msgstr "Almacenes de datos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:54 +msgid "Datastores where to put incrementals" +msgstr "Almacenes de datos dónde poner los backups incrementales" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:64 +msgid "VMWare Linked clone base" +msgstr "VMWare vinculado base clon" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:66 +msgid "" +"This service provides access to Linked Clones machines on a Virtual Center" +msgstr "" +"Este servicio proporciona acceso a máquinas de Clones enlazados en un Centro Virtual" + #: templates/404.html:3 templates/500.html:3 msgid "Page not found" msgstr "Página no encontrada" @@ -1135,10 +1701,6 @@ msgstr "IP" msgid "Transports" msgstr "Transportes" -#: templates/uds/internal_page.html:28 -msgid "User" -msgstr "Usuario" - #: templates/uds/internal_page.html:34 templates/uds/prefs.html:12 #: templates/uds/html5/snippets/navbar.html:39 msgid "Preferences" @@ -1176,12 +1738,6 @@ msgstr "UDS Preferencias de usuario " msgid "Save Preferences" msgstr "Guardar Preferencias" -#: templates/uds/service_not_ready.html:6 -msgid "Service not ready at this moment. Please, try again in a while." -msgstr "" -"El servicio no está disponible en estos momentos. Por favor, intentelo de " -"nuevo pasado unos instantes." - #: templates/uds/admin/snippets/navbar.html:6 #: templates/uds/html5/snippets/navbar.html:6 msgid "toggle navigation" @@ -1197,6 +1753,7 @@ msgid "Authenticators" msgstr "Autenticadores" #: templates/uds/admin/snippets/navbar.html:21 +#: templates/uds/admin/tmpl/connectivity.html:4 msgid "Connectivity" msgstr "Conectividad" @@ -1208,11 +1765,11 @@ msgstr "Servicios desplegados" msgid "Configuration" msgstr "Configuración" -#: templates/uds/admin/snippets/navbar.html:56 +#: templates/uds/admin/snippets/navbar.html:57 msgid "Exit dashboard" msgstr "Tablero de salida" -#: templates/uds/admin/snippets/navbar.html:57 +#: templates/uds/admin/snippets/navbar.html:58 #: templates/uds/html5/snippets/navbar.html:47 msgid "logout" msgstr "logout" @@ -1221,6 +1778,7 @@ msgstr "logout" msgid "administration of authenticators" msgstr "Administración de autenticadores" +#: templates/uds/admin/tmpl/connectivity.html:4 #: templates/uds/admin/tmpl/dashboard.html:4 msgid "overview" msgstr "Resumen" @@ -1355,32 +1913,46 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "Empty creds" msgstr "Sin credenciales" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "If checked, the credentials used to connect will be emtpy" msgstr "" "Si está activada, las credenciales utilizadas para conectar estarán vacías" #: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 #: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 -#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 msgid "If not empty, this username will be always used as credential" msgstr "" "Si no está vacio, este nombre de usuario será utilizado como credencial fija" #: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 #: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 msgid "If not empty, this password will be always used as credential" msgstr "Si no está vacio, este password será utiizado como credencial fija" #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "" "If not empty, this domain will be always used as credential (used as DOMAIN" "\\user)" @@ -1487,11 +2059,13 @@ msgid "NX Transport for tunneled connection" msgstr "Transporte NX para conexión vía túnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "Tunnel server" msgstr "Servidor de túnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "" "IP or Hostname of tunnel server send to client device (\"public\" ip) and " @@ -1501,11 +2075,13 @@ msgstr "" "(ip \"pública\") y puerto. (utilice el formato HOST: puerto)" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "Tunnel host check" msgstr "Verificación de host de túnel" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "" "If not empty, this server will be used to check if service is running before " @@ -1515,6 +2091,7 @@ msgstr "" "ejecuta antes de asignarle al usuario. (utilice el formato HOST: puerto)" #: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75 +#: transports/RGS-enterprise/TRGSTransport.py:71 #: transports/TSNX/TSNXTransport.py:103 msgid "Must use HOST:PORT in Tunnel Server Field" msgstr "Debe utilizar HOST: puerto en el campo servidor de túnel" @@ -1620,7 +2197,7 @@ msgstr "Protocolo de Escritorio remoto (RDP)" msgid "In order to use this service, you should first install CoRD." msgstr "Para poder utilizar este servicio, primero debe instalar CoRD." -#: transports/RDP/web.py:85 +#: transports/RDP/web.py:85 transports/RGS-enterprise/web.py:83 msgid "You can obtain it from" msgstr "Puede obtenerlo de" @@ -1628,18 +2205,122 @@ msgstr "Puede obtenerlo de" msgid "CoRD Website" msgstr "Sitio Web de CoRD" +#: transports/RGS-enterprise/RGSTransport.py:34 +msgid "RGS Transport (direct)" +msgstr "RGS transporte (directo)" + +#: transports/RGS-enterprise/RGSTransport.py:36 +msgid "RGS Transport for direct connection" +msgstr "RGS transporte para la conexión directa" + +#: transports/RGS-enterprise/RGSTransport.py:45 +#: transports/RGS-enterprise/TRGSTransport.py:50 +msgid "Image quality" +msgstr "Calidad de imagen" + +#: transports/RGS-enterprise/RGSTransport.py:46 +#: transports/RGS-enterprise/TRGSTransport.py:51 +msgid "Quality of image codec (0-100)" +msgstr "Calidad del codec de imagen (0-100)" + +#: transports/RGS-enterprise/RGSTransport.py:47 +#: transports/RGS-enterprise/TRGSTransport.py:52 +msgid "Adjustable Quality" +msgstr "Calidad ajustable" + +#: transports/RGS-enterprise/RGSTransport.py:48 +#: transports/RGS-enterprise/TRGSTransport.py:53 +msgid "If checked, the image quality will be adjustable with bandwidth" +msgstr "Si está marcada, la calidad de imagen será ajustable con ancho de banda" + +#: transports/RGS-enterprise/RGSTransport.py:49 +#: transports/RGS-enterprise/TRGSTransport.py:54 +msgid "Min. Adjustable Quality" +msgstr "Calidad ajustable min." + +#: transports/RGS-enterprise/RGSTransport.py:50 +#: transports/RGS-enterprise/TRGSTransport.py:55 +msgid "" +"The lowest image quality applied to images to maintain the minimum update " +"rate." +msgstr "" +"La menor calidad de imagen aplicada a las imágenes para mantener la actualización mínima " +"tasa." + +#: transports/RGS-enterprise/RGSTransport.py:51 +#: transports/RGS-enterprise/TRGSTransport.py:56 +msgid "Adjustable Frame Rate" +msgstr "Velocidad de fotogramas ajustable" + +#: transports/RGS-enterprise/RGSTransport.py:52 +#: transports/RGS-enterprise/TRGSTransport.py:57 +msgid "Update rate threshold to begin adjusting image quality" +msgstr "Umbral de tasa de actualización para comenzar a ajustar la calidad de imagen" + +#: transports/RGS-enterprise/RGSTransport.py:53 +#: transports/RGS-enterprise/TRGSTransport.py:58 +msgid "Match Local Resolution" +msgstr "Resolución Local del partido" + +#: transports/RGS-enterprise/RGSTransport.py:54 +#: transports/RGS-enterprise/TRGSTransport.py:59 +msgid "" +"Change the Sender's resolution to match the Receiver's resolution when " +"connecting" +msgstr "" +"Cambiar la resolución del remitente hasta la resolución del receptor cuando " +"conexión" + +#: transports/RGS-enterprise/RGSTransport.py:55 +#: transports/RGS-enterprise/TRGSTransport.py:60 +msgid "Redirect USB" +msgstr "Redirección USB" + +#: transports/RGS-enterprise/RGSTransport.py:56 +#: transports/RGS-enterprise/TRGSTransport.py:61 +msgid "If checked, the USB will be redirected." +msgstr "Si está marcada, el USB será redirigido." + +#: transports/RGS-enterprise/RGSTransport.py:57 +#: transports/RGS-enterprise/TRGSTransport.py:62 +msgid "Redirect Audio" +msgstr "Redirigir Audio" + +#: transports/RGS-enterprise/RGSTransport.py:58 +#: transports/RGS-enterprise/TRGSTransport.py:63 +msgid "If checked, the Audio will be redirected." +msgstr "Si está marcada, el Audio será redirigido." + +#: transports/RGS-enterprise/RGSTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:64 +msgid "Redirect Mic" +msgstr "Redirigir Mic" + +#: transports/RGS-enterprise/RGSTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:65 +msgid "If checked, the Mic will be redirected." +msgstr "Si está marcada, el micrófono será redirigido." + +#: transports/RGS-enterprise/TRGSTransport.py:36 +msgid "RGS Transport (tunneled)" +msgstr "RGS transporte (túnel)" + +#: transports/RGS-enterprise/TRGSTransport.py:38 +msgid "RGS Transport for tunneled connection" +msgstr "RGS transporte para la conexión de túnel" + +#: transports/RGS-enterprise/web.py:82 +msgid "In order to use this service, you should first install RGS Receiver." +msgstr "Para poder utilizar este servicio, usted debe instalar primero RGS receptor." + +#: transports/RGS-enterprise/web.py:83 +msgid "HP Website" +msgstr "Página Web de HP" + #: web/errors.py:60 msgid "Unknown error" msgstr "Error desconocido" -#: web/errors.py:61 -msgid "Transport not found" -msgstr "Transporte no hallado" - -#: web/errors.py:62 -msgid "Service not found" -msgstr "Servicio no hallado" - #: web/errors.py:63 xmlrpc/auths/AdminAuth.py:182 #: xmlrpc/auths/AdminAuth.py:188 msgid "Access denied" @@ -1711,10 +2392,6 @@ msgstr "Las credenciales ya no son válidas" msgid "Administration" msgstr "Administración" -#: xmlrpc/auths/AdminAuth.py:168 -msgid "Invalid credentials" -msgstr "Credenciales Invalidas" - #: xmlrpc/auths/Authenticators.py:107 msgid "Authenticator does not exists" msgstr "El autenticador no existe" diff --git a/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo index 1148695f7..6dd28c80c 100644 Binary files a/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo and b/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo differ diff --git a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po index 6f194c046..cab259af1 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:21+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: static/adm/js/gui-elements.js:7 +#: static/adm/js/gui-elements.js:33 msgid "Service Providers" msgstr "Proveedores de servicios" -#: static/adm/js/gui-elements.js:81 -msgid "Connectivity" -msgstr "Conectividad" - #: static/adm/js/gui.js:18 msgid "_MENU_ records per page" msgstr "Registros _MENU_ por página" @@ -70,19 +66,19 @@ msgstr "Próxima" msgid "Previous" msgstr "Anterior" -#: static/adm/js/gui.js:80 +#: static/adm/js/gui.js:75 msgid "Deployed services" msgstr "Servicios desplegados" -#: static/adm/js/gui.js:349 +#: static/adm/js/gui.js:360 msgid "Edit" msgstr "Editar" -#: static/adm/js/gui.js:358 +#: static/adm/js/gui.js:369 msgid "Delete" msgstr "Borrar" -#: static/adm/js/gui.js:367 +#: static/adm/js/gui.js:378 msgid "Refresh" msgstr "Actualización" @@ -161,3 +157,7 @@ msgstr "Noviembre" #: static/adm/js/strftime.js:35 msgid "December" msgstr "Diciembre" + +#: static/adm/js/tools.js:46 +msgid "Just a moment..." +msgstr "Un momento..." diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.mo b/server/src/uds/locale/fr/LC_MESSAGES/django.mo index a3f006c85..6a70275a2 100644 Binary files a/server/src/uds/locale/fr/LC_MESSAGES/django.mo and b/server/src/uds/locale/fr/LC_MESSAGES/django.mo differ diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.po b/server/src/uds/locale/fr/LC_MESSAGES/django.po index 2dccee346..3a509021b 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/django.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/django.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:20+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,23 +42,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: REST/methods/authenticators.py:73 +#: REST/methods/authenticators.py:80 msgid "Current authenticators" msgstr "Authentificateurs actuels" -#: REST/methods/authenticators.py:75 REST/methods/networks.py:68 +#: REST/methods/authenticators.py:82 REST/methods/networks.py:68 #: REST/methods/osmanagers.py:71 REST/methods/providers.py:69 #: REST/methods/transports.py:71 REST/methods/users.py:77 msgid "Name" msgstr "Nom" -#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72 +#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72 #: REST/methods/providers.py:70 REST/methods/transports.py:72 #: REST/methods/users.py:78 msgid "Comments" msgstr "Commentaires" -#: REST/methods/authenticators.py:77 +#: REST/methods/authenticators.py:84 msgid "Users" msgstr "Utilisateurs" @@ -114,14 +114,264 @@ msgstr "État" msgid "Last access" msgstr "Dernier accès" -#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422 +#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422 msgid "Forbidden" msgstr "Interdit" -#: admin/views.py:69 +#: admin/views.py:70 msgid "requested a template that do not exists" msgstr "demandé un modèle qui ne sont pas existe" +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +#: auths/EDirectory_enterprise/Authenticator.py:60 +#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +#: services/OVirt/OVirtProvider.py:92 +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "Host" +msgstr "Serveur" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +msgid "Active Directory Server IP or Hostname" +msgstr "Active Directory Server IP ou nom d'hôte" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "Use SSL" +msgstr "Utiliser SSL" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +msgid "If checked, will use a ssl connection to Active Directory" +msgstr "Si cochée, utilise une connexion ssl vers Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility" +msgstr "Compatibilité" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility of AD connection (Usually windows 2000 and later)" +msgstr "Compatibilité de connexion AD (généralement windows 2000 et versions ultérieures)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 +msgid "Ldap User" +msgstr "Utilisateur LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +msgid "" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" +msgstr "" +"Nom d'utilisateur avec des privilèges de lecture sur la base sélectionnée (utilisation USER@DOMAIN.Forme de DOM " +"pour cela)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/ActiveDirectory_enterprise/Authenticator.py:52 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 +#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 +#: core/auths/BaseAuthenticator.py:136 +#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 +#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 +#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70 +msgid "Password" +msgstr "Mot de passe" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 +msgid "Password of the ldap user" +msgstr "Mot de passe de l'utilisateur ldap" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +#: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 +msgid "Timeout" +msgstr "Temporisation" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +msgid "Timeout in seconds of connection to LDAP" +msgstr "Délai en secondes de la connexion à LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:37 +msgid "Active Directory Authenticator" +msgstr "Authentificateur de Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:39 +msgid "Authenticate against Active Directory" +msgstr "S'authentifier sur Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:48 +#: auths/EDirectory_enterprise/Authenticator.py:77 +#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +#: services/OVirt/OVirtProvider.py:93 +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 +#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:50 +#: auths/EDirectory_enterprise/Authenticator.py:79 +#: auths/RegexLdap/Authenticator.py:74 auths/SAML_enterprise/SAML.py:114 +#: auths/SimpleLDAP/Authenticator.py:75 +msgid "Group" +msgstr "Groupe" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:67 +#: auths/ActiveDirectory_enterprise/Authenticator.py:442 +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:164 +#: auths/EDirectory_enterprise/Authenticator.py:123 +#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 +msgid "Ldap connection error: " +msgstr "Erreur de connexion LDAP : " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:344 +#: auths/ActiveDirectory_enterprise/Authenticator.py:390 +#: auths/EDirectory_enterprise/Authenticator.py:243 +#: auths/EDirectory_enterprise/Authenticator.py:286 +#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 +#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 +msgid "Username not found" +msgstr "Nom d'utilisateur introuvable" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:377 +#: auths/SimpleLDAP/Authenticator.py:302 +msgid "Group not found" +msgstr "Groupe introuvable" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:410 +#: auths/ActiveDirectory_enterprise/Authenticator.py:428 +#: auths/EDirectory_enterprise/Authenticator.py:303 +#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 +#: auths/SimpleLDAP/Authenticator.py:342 +msgid "Too many results, be more specific" +msgstr "Trop de résultats, être plus spécifique" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:451 +msgid "Domain seems to be incorrect, please check it" +msgstr "Domaine semble être incorrect, veuillez bien consulter le" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:456 +msgid "Ldap does not seem an Active Directory (do not have user objects)" +msgstr "LDAP ne semble pas un serveur Active Directory (n'ont pas les objets utilisateur)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:464 +msgid "Ldap does not seem an Active Directory (no not have group objects)" +msgstr "LDAP ne semble pas un serveur Active Directory (ne pas ont des objets de groupe)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:472 +msgid "" +"Ldap does not seem an Active Directory (do not have any user nor groups)" +msgstr "" +"LDAP ne semble pas un serveur Active Directory (n'ont pas l'utilisateur ou groupes)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:477 +#: auths/EDirectory_enterprise/Authenticator.py:358 +#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 +msgid "Connection params seem correct, test was succesfully executed" +msgstr "" +"Connexion params semblent correctes, le test a été correctement exécutée" + +#: auths/EDirectory_enterprise/Authenticator.py:60 +msgid "EDirectory Server IP or Hostname" +msgstr "Serveur EDirectory IP ou nom d'hôte" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "Port" +msgstr "Port" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +msgid "Ldap port (389 for non ssl, 636 for ssl normally" +msgstr "Port LDAP (389 non SSL, 636 pour ssl normalement" + +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "" +"If checked, will use a ssl connection to ldap (if port is 389, will use in " +"fact port 636)" +msgstr "" +"Si cochée, utilise une connexion ssl à ldap (si le port est 389, utilisera " +"dans port de fait 636)" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Admin user" +msgstr "Utilisateur admin" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Username with read privileges on the eDirectory" +msgstr "Nom d'utilisateur avec des privilèges de lecture sur l'eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:67 +msgid "eDirectory Authenticator" +msgstr "eDirectory authentificateur" + +#: auths/EDirectory_enterprise/Authenticator.py:69 +msgid "Authenticate against eDirectory" +msgstr "S'authentifier auprès d'eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:323 +#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 +msgid "Ldap search base is incorrect" +msgstr "Base de recherche LDAP est incorrect" + +#: auths/EDirectory_enterprise/Authenticator.py:328 +#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 +msgid "Ldap user class seems to be incorrect (no user found by that class)" +msgstr "" +"Classe d'utilisateur LDAP semble incorrect (aucun utilisateur ne trouvé par " +"cette classe)" + +#: auths/EDirectory_enterprise/Authenticator.py:336 +#: auths/SimpleLDAP/Authenticator.py:384 +msgid "" +"Ldap user id attribute seems to be incorrect (no user found by that " +"attribute)" +msgstr "" +"Attribut d'id utilisateur LDAP semble incorrect (aucun utilisateur ne " +"trouvée par qui attribut)" + +#: auths/EDirectory_enterprise/Authenticator.py:344 +msgid "Expected group attribute " +msgstr "Attribut groupe attendue " + +#: auths/EDirectory_enterprise/Authenticator.py:353 +msgid "" +"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" +msgstr "" +"LDAP user class ou utilisateur id attr est probablement faux (Ldap est un eDirectory?)" + #: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50 msgid "IP Authenticator" msgstr "Authentificateur IP" @@ -167,70 +417,15 @@ msgstr "S'il est activé, l'hôte sera dns inversée" msgid "Internal structures seems ok" msgstr "Les structures internes semble ok" -#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 -#: services/OVirt/OVirtProvider.py:92 -msgid "Host" -msgstr "Serveur" - #: auths/RegexLdap/Authenticator.py:49 msgid "Ldap Server Host" msgstr "Hôte du serveur LDAP" -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Port" -msgstr "Port" - -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Ldap port (389 for non ssl, 636 for ssl normally" -msgstr "Port LDAP (389 non SSL, 636 pour ssl normalement" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "Use SSL" -msgstr "Utiliser SSL" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "" -"If checked, will use a ssl connection to ldap (if port is 389, will use in " -"fact port 636)" -msgstr "" -"Si cochée, utilise une connexion ssl à ldap (si le port est 389, utilisera " -"dans port de fait 636)" - -#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 -msgid "Ldap User" -msgstr "Utilisateur LDAP" - #: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 msgid "Username with read privileges on the base selected" msgstr "" "Nom d'utilisateur avec des privilèges de lecture sur la base sélectionnée" -#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 -#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 -#: core/auths/BaseAuthenticator.py:136 -#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 -#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 -#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 -#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 -#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 -#: web/forms/LoginForm.py:70 -msgid "Password" -msgstr "Mot de passe" - -#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 -msgid "Password of the ldap user" -msgstr "Mot de passe de l'utilisateur ldap" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -#: services/OVirt/OVirtProvider.py:95 -msgid "Timeout" -msgstr "Temporisation" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -msgid "Timeout in seconds of connection to LDAP" -msgstr "Délai en secondes de la connexion à LDAP" - #: auths/RegexLdap/Authenticator.py:55 auths/SimpleLDAP/Authenticator.py:55 msgid "Base" msgstr "Base" @@ -282,42 +477,6 @@ msgstr "Authentificateur LDAP Regex" msgid "Regular Expressions LDAP authenticator" msgstr "Authentificateur de LDAP d'Expressions régulière" -#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 -#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64 -#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66 -#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63 -#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 -msgid "Username" -msgstr "Nom d'utilisateur" - -#: auths/RegexLdap/Authenticator.py:74 auths/SimpleLDAP/Authenticator.py:75 -msgid "Group" -msgstr "Groupe" - -#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 -msgid "Ldap connection error: " -msgstr "Erreur de connexion LDAP : " - -#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 -#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 -msgid "Username not found" -msgstr "Nom d'utilisateur introuvable" - -#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 -#: auths/SimpleLDAP/Authenticator.py:342 -msgid "Too many results, be more specific" -msgstr "Trop de résultats, être plus spécifique" - -#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 -msgid "Ldap search base is incorrect" -msgstr "Base de recherche LDAP est incorrect" - -#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 -msgid "Ldap user class seems to be incorrect (no user found by that class)" -msgstr "" -"Classe d'utilisateur LDAP semble incorrect (aucun utilisateur ne trouvé par " -"cette classe)" - #: auths/RegexLdap/Authenticator.py:401 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " @@ -334,10 +493,116 @@ msgstr "" "Attribut d'id groupe LDAP semble incorrect (aucun groupe ne trouvée par qui " "attribut)" -#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 -msgid "Connection params seem correct, test was succesfully executed" +#: auths/SAML_enterprise/SAML.py:80 +msgid "SAML Authenticator" +msgstr "SAML authentificateur" + +#: auths/SAML_enterprise/SAML.py:92 +msgid "SAML (v2.0) Authenticator" +msgstr "SAML (v2.0) authentificateur" + +#: auths/SAML_enterprise/SAML.py:111 templates/uds/internal_page.html:28 +msgid "User" +msgstr "Utilisateur" + +#: auths/SAML_enterprise/SAML.py:120 +msgid "Private key" +msgstr "Clé privée" + +#: auths/SAML_enterprise/SAML.py:121 +msgid "" +"Private key used for sign and encription, as generated in base 64 from " +"openssl" msgstr "" -"Connexion params semblent correctes, le test a été correctement exécutée" +"Clé privée utilisée pour signe et encription, tel que généré en base 64 de " +"OpenSSL" + +#: auths/SAML_enterprise/SAML.py:122 +msgid "Certificate" +msgstr "Certificat" + +#: auths/SAML_enterprise/SAML.py:123 +msgid "Server certificate (public), , as generated in base 64 from openssl" +msgstr "Certificat serveur (public), comme généré en base 64 d'openssl" + +#: auths/SAML_enterprise/SAML.py:124 +msgid "IDP Metadata" +msgstr "Métadonnées de l'IDP" + +#: auths/SAML_enterprise/SAML.py:125 +msgid "" +"You can enter here the URL or the IDP metadata or the metadata itself (xml)" +msgstr "" +"Ici, vous pouvez entrer le URL ou les métadonnées d'IDP ou les métadonnées lui-même (xml)" + +#: auths/SAML_enterprise/SAML.py:127 +msgid "Entity ID" +msgstr "ID de l'entité" + +#: auths/SAML_enterprise/SAML.py:128 +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "ID de la SP. Si laissé vide, ce sera généré automatiquement des URL du serveur" + +#: auths/SAML_enterprise/SAML.py:130 +msgid "User name attrs" +msgstr "Utilisateur nom attrs" + +#: auths/SAML_enterprise/SAML.py:131 +msgid "Fields from where to extract user name" +msgstr "Champs d'où extraire le nom d'utilisateur" + +#: auths/SAML_enterprise/SAML.py:133 +msgid "Group name attrs" +msgstr "Groupe nom attrs" + +#: auths/SAML_enterprise/SAML.py:134 +msgid "Fields from where to extract the groups" +msgstr "Champs d'où extraire les groupes" + +#: auths/SAML_enterprise/SAML.py:136 +msgid "Real name attrs" +msgstr "De son vrai nom attrs" + +#: auths/SAML_enterprise/SAML.py:137 +msgid "Fields from where to extract the real name" +msgstr "Champs d'où extraire le nom réel" + +#: auths/SAML_enterprise/SAML.py:160 +msgid "" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"Certificat de serveur doit être un PEM valide (PEM certificats commence par---" +"BEGIN CERTIFICATE---)" + +#: auths/SAML_enterprise/SAML.py:165 +msgid "Invalid server certificate. " +msgstr "Certificat de serveur non valide. " + +#: auths/SAML_enterprise/SAML.py:168 +msgid "" +"Private key should be a valid PEM (PEM private keys starts with -----BEGIN " +"RSA PRIVATE KEY-----" +msgstr "" +"Clé privée doit être un PEM valide (PEM clés privées commence par---BEGIN " +"RSA PRIVATE KEY---" + +#: auths/SAML_enterprise/SAML.py:197 +#, python-brace-format +msgid "Can't fetch url {0}: {1}" +msgstr "Impossible d'extraire url {0}: {1}" + +#: auths/SAML_enterprise/SAML.py:208 +msgid " (obtained from URL)" +msgstr " (obtenu à partir d'URL)" + +#: auths/SAML_enterprise/SAML.py:209 +msgid "XML do not seems valid for IDP Metadata " +msgstr "XML semble pas valide pour les métadonnées de l'IDP " + +#: auths/SAML_enterprise/SAML.py:227 +msgid "Can't access idp metadata" +msgstr "Ne peut pas accéder aux métadonnées de l'idp" #: auths/Sample/SampleAuth.py:71 msgid "Sample Authenticator" @@ -399,24 +664,12 @@ msgstr "Authentificateur SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Simple authentificateur LDAP" -#: auths/SimpleLDAP/Authenticator.py:302 -msgid "Group not found" -msgstr "Groupe introuvable" - #: auths/SimpleLDAP/Authenticator.py:376 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "Classe de groupe LDAP semble incorrect (aucun groupe ne trouvée par cette " "classe)" -#: auths/SimpleLDAP/Authenticator.py:384 -msgid "" -"Ldap user id attribute seems to be incorrect (no user found by that " -"attribute)" -msgstr "" -"Attribut d'id utilisateur LDAP semble incorrect (aucun utilisateur ne " -"trouvée par qui attribut)" - #: auths/SimpleLDAP/Authenticator.py:401 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " @@ -634,6 +887,66 @@ msgstr "Charge" msgid "Storage" msgstr "Stockage" +#: dispatchers/wyse_enterprise/views.py:111 +msgid "There are no authenticators available for login" +msgstr "Il n'existe aucun authentificateurs pour connexion" + +#: dispatchers/wyse_enterprise/views.py:124 +#, python-brace-format +msgid "The authenticator {0} is not usable" +msgstr "L'authentificateur {0} n'est pas utilisable" + +#: dispatchers/wyse_enterprise/views.py:131 xmlrpc/auths/AdminAuth.py:168 +msgid "Invalid credentials" +msgstr "Informations d'identification non valides" + +#: dispatchers/wyse_enterprise/views.py:139 +#, python-brace-format +msgid "The domain {0} does not exists" +msgstr "Le domaine {0} n'existe pas" + +#: dispatchers/wyse_enterprise/views.py:200 +msgid "No services available" +msgstr "Aucun service disponible" + +#: dispatchers/wyse_enterprise/views.py:215 +#: dispatchers/wyse_enterprise/views.py:309 +msgid "Invalid session" +msgstr "Session invalide" + +#: dispatchers/wyse_enterprise/views.py:219 +#: dispatchers/wyse_enterprise/views.py:313 +msgid "Invalid authorization" +msgstr "Autorisation non valide" + +#: dispatchers/wyse_enterprise/views.py:230 +#: dispatchers/wyse_enterprise/views.py:319 +msgid "Invalid request" +msgstr "Requête non valide" + +#: dispatchers/wyse_enterprise/views.py:233 +#: dispatchers/wyse_enterprise/views.py:322 +msgid "Invalid credentials used" +msgstr "Informations d'identification non valides utilisées" + +#: dispatchers/wyse_enterprise/views.py:254 +#: dispatchers/wyse_enterprise/views.py:257 web/errors.py:62 +msgid "Service not found" +msgstr "Service introuvable" + +#: dispatchers/wyse_enterprise/views.py:271 web/errors.py:61 +msgid "Transport not found" +msgstr "Transport introuvable" + +#: dispatchers/wyse_enterprise/views.py:275 +#: dispatchers/wyse_enterprise/views.py:282 +#: dispatchers/wyse_enterprise/views.py:287 +#: templates/uds/service_not_ready.html:6 +msgid "Service not ready at this moment. Please, try again in a while." +msgstr "" +"Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau de " +"temps en temps." + #: osmanagers/LinuxOsManager/LinuxOsManager.py:45 msgid "Linux OS Manager" msgstr "Gestionnaire de système d'exploitation Linux" @@ -686,6 +999,8 @@ msgstr "" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:32 #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "Domain" msgstr "Domaine" @@ -835,6 +1150,205 @@ msgstr "" "Acteur de l'UDS pour machines windows (Important!! Nécessite le .net " "framework 3.5 SP1)" +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:51 +msgid "HyperV Cluster Linked Clone (Experimental)" +msgstr "Cluster HyperV lié Clone (expérimental)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 +#: services/HyperV_enterprise/HyperVLinkedService.py:58 +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "Hyper Services basés sur des modèles et des disques différentiels (expérimentales)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 +#: services/HyperV_enterprise/HyperVLinkedService.py:75 +#: services/OVirt/OVirtLinkedService.py:77 +#: services/Vmware_enterprise/VCLinkedCloneService.py:72 +msgid "Number of desired machines to keep running waiting for a user" +msgstr "Nombre de machines désirés de courir d'attente pour un utilisateur." + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 +#: services/HyperV_enterprise/HyperVLinkedService.py:81 +#: services/OVirt/OVirtLinkedService.py:83 +#: services/Vmware_enterprise/VCLinkedCloneService.py:74 +msgid "Number of desired machines to keep suspended waiting for use" +msgstr "" +"Nombre de machines désirés pour garder suspendu en attente pour utilisation" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base Machine" +msgstr "Machine de base" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +msgid "Service base machine" +msgstr "Machine de base de service" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:95 +#: services/HyperV_enterprise/HyperVLinkedService.py:98 +#: services/Vmware_enterprise/VCLinkedCloneService.py:38 +msgid "Network" +msgstr "Réseau" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:96 +#: services/HyperV_enterprise/HyperVLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:39 +msgid "" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Si plus d'une interface se trouve dans la machine, utiliser un sur ce réseau comme principal" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 +#: services/HyperV_enterprise/HyperVLinkedService.py:101 +#: services/OVirt/OVirtLinkedService.py:112 +#: services/Vmware_enterprise/VCLinkedCloneService.py:51 +msgid "Memory (Mb)" +msgstr "Mémoire (Mb)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:99 +#: services/HyperV_enterprise/HyperVLinkedService.py:102 +#: services/Vmware_enterprise/VCLinkedCloneService.py:52 +msgid "Memory for machines deployed from this service" +msgstr "Mémoire pour ordinateurs déployés de ce service" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 +#: services/HyperV_enterprise/HyperVLinkedService.py:103 +msgid "Datastore Drives" +msgstr "Lecteurs de magasin de données" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 +#: services/HyperV_enterprise/HyperVLinkedService.py:104 +msgid "Datastores where to put incrementals & publications" +msgstr "Entrepôts de données où mettre les sauvegardes incrémentielles & publications" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/OVirt/OVirtLinkedService.py:118 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Machine Names" +msgstr "Noms de machine" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Base name for clones from this machine" +msgstr "Nom de base des clones de cette machine" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:103 +#: services/HyperV_enterprise/HyperVLinkedService.py:106 +#: services/OVirt/OVirtLinkedService.py:119 +#: services/Vmware_enterprise/VCLinkedCloneService.py:56 +msgid "Name Length" +msgstr "Longueur du nom" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:104 +#: services/HyperV_enterprise/HyperVLinkedService.py:107 +#: services/OVirt/OVirtLinkedService.py:120 +#: services/Vmware_enterprise/VCLinkedCloneService.py:57 +msgid "Length of numeric part for the names of this machines (betwen 3 and 6" +msgstr "" +"Longueur de la partie numérique pour les noms de ces machines (images 3 et 6" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 +#: services/HyperV_enterprise/HyperVLinkedService.py:119 +#: services/OVirt/OVirtLinkedService.py:143 +#: services/Vmware_enterprise/VCLinkedCloneService.py:95 +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" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:118 +#: services/HyperV_enterprise/HyperVLinkedService.py:121 +#: services/OVirt/OVirtLinkedService.py:145 +#: services/Vmware_enterprise/VCLinkedCloneService.py:97 +msgid "The machine name can't be only numbers" +msgstr "Nom de l'ordinateur ne peut pas être uniquement des nombres" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:64 +msgid "HyperV Cluster Provider" +msgstr "Fournisseur de Cluster HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:68 +msgid "HyperV Cluster Service Provider" +msgstr "Fournisseur de Service de Cluster HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" +msgstr "HyperV serveur IP ou nom d'hôte (doit permettre l'accès WSMAN première)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +msgid "WSMan Port (normally 5985)" +msgstr "WSMan Port (normalement 5985)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +msgid "User with valid privileges on HyperV Server" +msgstr "Utilisateur avec des privilèges valides sur serveur HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +msgid "Password of the user of HyperV" +msgstr "Mot de passe de l'utilisateur de HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +msgid "Timeout in seconds of connection to HyperV" +msgstr "Délai d'attente en secondes de connexion pour HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:94 +#: services/HyperV_enterprise/HyperVProvider.py:86 +#: services/OVirt/OVirtProvider.py:96 +#: services/Vmware_enterprise/ServiceProviderVC.py:33 +msgid "Macs range" +msgstr "Gamme Mac" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:95 +#: services/HyperV_enterprise/HyperVProvider.py:87 +#: services/OVirt/OVirtProvider.py:97 +msgid "Range of valids macs for created machines" +msgstr "Gamme de Mac valides pour les machines créés" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:132 +msgid "The selected server is not a cluster" +msgstr "Le serveur sélectionné n'est pas un cluster" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:299 +#: services/HyperV_enterprise/HyperVProvider.py:249 +#: services/OVirt/OVirtProvider.py:399 +msgid "Connection test successful" +msgstr "Test de connexion réussie" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:300 +#: services/HyperV_enterprise/HyperVProvider.py:250 +#: services/OVirt/OVirtProvider.py:400 +#: services/Vmware_enterprise/ServiceProviderVC.py:120 +msgid "Connection failed. Check connection params" +msgstr "Échec de la connexion. Vérifiez la connexion params" + +#: services/HyperV_enterprise/HyperVClusterPublication.py:97 +#: services/HyperV_enterprise/HyperVPublication.py:96 +#: services/OVirt/OVirtPublication.py:85 +#, python-brace-format +msgid "UDS pub for {0} at {1}" +msgstr "Pub UDS {0} sur {1}" + +#: services/HyperV_enterprise/HyperVLinkedService.py:54 +msgid "HyperV Linked Clone (Experimental)" +msgstr "HyperV Clone lié (expérimental)" + +#: services/HyperV_enterprise/HyperVProvider.py:62 +msgid "HyperV Platform Provider" +msgstr "Fournisseur de plates-formes HyperV" + +#: services/HyperV_enterprise/HyperVProvider.py:66 +msgid "HyperV platform service provider" +msgstr "Fournisseur de services de plate-forme HyperV" + #: services/OVirt/OVirtLinkedService.py:56 msgid "oVirt Linked Clone (Experimental)" msgstr "oVirt Linked Clone (expérimental)" @@ -843,23 +1357,6 @@ msgstr "oVirt Linked Clone (expérimental)" msgid "oVirt Services based on templates and COW (experimental)" msgstr "oVirt Services basés sur les modèles et la vache (expérimentale)" -#: services/OVirt/OVirtLinkedService.py:77 -msgid "Number of desired machines to keep running waiting for a user" -msgstr "Nombre de machines désirés de courir d'attente pour un utilisateur." - -#: services/OVirt/OVirtLinkedService.py:83 -msgid "Number of desired machines to keep suspended waiting for use" -msgstr "" -"Nombre de machines désirés pour garder suspendu en attente pour utilisation" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Base Machine" -msgstr "Machine de base" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Service base machine" -msgstr "Machine de base de service" - #: services/OVirt/OVirtLinkedService.py:100 msgid "Cluster" msgstr "Cluster" @@ -878,10 +1375,6 @@ msgstr "" "Domaine de magasin de données où les publier et de mettre des sauvegardes " "incrémentales" -#: services/OVirt/OVirtLinkedService.py:112 -msgid "Memory (Mb)" -msgstr "Mémoire (Mb)" - #: services/OVirt/OVirtLinkedService.py:113 msgid "Memory assigned to machines" msgstr "Mémoire attribuée aux machines" @@ -894,19 +1387,6 @@ msgstr "Mémoire garantie (Mb)" msgid "Physical memory guaranteed to machines" msgstr "Mémoire physique garantie aux machines" -#: services/OVirt/OVirtLinkedService.py:118 -msgid "Machine Names" -msgstr "Noms de machine" - -#: services/OVirt/OVirtLinkedService.py:119 -msgid "Name Length" -msgstr "Longueur du nom" - -#: services/OVirt/OVirtLinkedService.py:120 -msgid "Length of numeric part for the names of this machines (betwen 3 and 6" -msgstr "" -"Longueur de la partie numérique pour les noms de ces machines (images 3 et 6" - #: services/OVirt/OVirtLinkedService.py:122 msgid "Display" msgstr "Affichage" @@ -915,15 +1395,6 @@ msgstr "Affichage" msgid "Display type (only for administration pourposses)" msgstr "Type d'affichage (uniquement pour l'administration pourposses)" -#: services/OVirt/OVirtLinkedService.py:143 -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" - -#: services/OVirt/OVirtLinkedService.py:145 -msgid "The machine name can't be only numbers" -msgstr "Nom de l'ordinateur ne peut pas être uniquement des nombres" - #: services/OVirt/OVirtProvider.py:73 msgid "oVirt Platform Provider" msgstr "oVirt fournisseur de plate-forme" @@ -947,30 +1418,10 @@ msgid "Password of the user of oVirt" msgstr "Mot de passe de l'utilisateur d'oVirt" #: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 msgid "Timeout in seconds of connection to VC" msgstr "Délai en secondes de connexion à VC" -#: services/OVirt/OVirtProvider.py:96 -msgid "Macs range" -msgstr "Gamme Mac" - -#: services/OVirt/OVirtProvider.py:97 -msgid "Range of valids macs for created machines" -msgstr "Gamme de Mac valides pour les machines créés" - -#: services/OVirt/OVirtProvider.py:399 -msgid "Connection test successful" -msgstr "Test de connexion réussie" - -#: services/OVirt/OVirtProvider.py:400 -msgid "Connection failed. Check connection params" -msgstr "Échec de la connexion. Vérifiez la connexion params" - -#: services/OVirt/OVirtPublication.py:85 -#, python-brace-format -msgid "UDS pub for {0} at {1}" -msgstr "Pub UDS {0} sur {1}" - #: services/PhysicalMachines/IPMachineDeployed.py:57 msgid "IP " msgstr "IP " @@ -1087,6 +1538,121 @@ msgstr "Mémoire cache L2 de faux éléments" msgid "List of names" msgstr "Liste des noms" +#: services/Vmware_enterprise/Helpers.py:72 +msgid "Local" +msgstr "Local" + +#: services/Vmware_enterprise/Helpers.py:74 +msgid "Remote" +msgstr "Distance" + +#: services/Vmware_enterprise/PublicationVC.py:37 +msgid "Publication" +msgstr "Publication" + +#: services/Vmware_enterprise/PublicationVC.py:38 +#, python-brace-format +msgid "UDS Publication for {0} created at {1}" +msgstr "Publication UDS {0} créé à {1}" + +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "VMWare VC Server IP or Hostname" +msgstr "VMWare Server VC IP ou nom d'hôte" + +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "VMWare VC Server Port (usually 443)" +msgstr "Port du serveur VMWare VC (habituellement 443)" + +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +msgid "User with valid privileges on VC" +msgstr "Utilisateur avec des privilèges valides sur VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +msgid "Password of the user of the VC" +msgstr "Mot de passe de l'utilisateur de la CV" + +#: services/Vmware_enterprise/ServiceProviderVC.py:34 +msgid "" +"Range of valids macs for created machines. Must be inside " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gamme de valids Mac pour machines créées. Doit être à l'intérieur " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" + +#: services/Vmware_enterprise/ServiceProviderVC.py:39 +msgid "VMWare Virtual Center Provider" +msgstr "VMWare Virtual Center fournisseur" + +#: services/Vmware_enterprise/ServiceProviderVC.py:41 +msgid "Provides connection to Virtual Center Services" +msgstr "Fournit la connexion à des Services de centre virtuel" + +#: services/Vmware_enterprise/ServiceProviderVC.py:110 +msgid "Error testing connection" +msgstr "Erreur de connexion test" + +#: services/Vmware_enterprise/ServiceProviderVC.py:113 +msgid "VmwareVC Provider: " +msgstr "VmwareVC fournisseur : " + +#: services/Vmware_enterprise/ServiceProviderVC.py:119 +msgid "Connection params ok" +msgstr "Connexion params ok" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:30 +msgid "Datacenter" +msgstr "Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:36 +msgid "Datacenter containing base machine" +msgstr "Machine de base contenant Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Pub. Resource Pool" +msgstr "Pub. Liste des ressources" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Resource Pool where deploy clones" +msgstr "Liste des ressources où déployer des clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Clones Folder" +msgstr "Dossier de clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Folder where deploy clones" +msgstr "Dossier où déployer des clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:42 +msgid "Resource Pool" +msgstr "Liste des ressources" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:48 +msgid "Resource Pool containing base machine" +msgstr "Machine de base contenant de ressource Pool" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base machine for this service" +msgstr "Machine de base pour ce service" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:53 +msgid "Datastores" +msgstr "Entrepôts de données" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:54 +msgid "Datastores where to put incrementals" +msgstr "Entrepôts de données où mettre des sauvegardes incrémentales" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:64 +msgid "VMWare Linked clone base" +msgstr "Base de clone lié VMWare" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:66 +msgid "" +"This service provides access to Linked Clones machines on a Virtual Center" +msgstr "" +"Ce service donne accès aux machines de Clones liés sur un Virtual Center" + #: templates/404.html:3 templates/500.html:3 msgid "Page not found" msgstr "Page non trouvée" @@ -1147,10 +1713,6 @@ msgstr "IP" msgid "Transports" msgstr "Transports" -#: templates/uds/internal_page.html:28 -msgid "User" -msgstr "Utilisateur" - #: templates/uds/internal_page.html:34 templates/uds/prefs.html:12 #: templates/uds/html5/snippets/navbar.html:39 msgid "Preferences" @@ -1188,12 +1750,6 @@ msgstr "Préférences de l'utilisateur UDS" msgid "Save Preferences" msgstr "Enregistrer les préférences" -#: templates/uds/service_not_ready.html:6 -msgid "Service not ready at this moment. Please, try again in a while." -msgstr "" -"Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau de " -"temps en temps." - #: templates/uds/admin/snippets/navbar.html:6 #: templates/uds/html5/snippets/navbar.html:6 msgid "toggle navigation" @@ -1209,6 +1765,7 @@ msgid "Authenticators" msgstr "Authentificateurs" #: templates/uds/admin/snippets/navbar.html:21 +#: templates/uds/admin/tmpl/connectivity.html:4 msgid "Connectivity" msgstr "Connectivité" @@ -1220,11 +1777,11 @@ msgstr "Services déployés" msgid "Configuration" msgstr "Configuration" -#: templates/uds/admin/snippets/navbar.html:56 +#: templates/uds/admin/snippets/navbar.html:57 msgid "Exit dashboard" msgstr "Tableau de bord de sortie" -#: templates/uds/admin/snippets/navbar.html:57 +#: templates/uds/admin/snippets/navbar.html:58 #: templates/uds/html5/snippets/navbar.html:47 msgid "logout" msgstr "logout" @@ -1233,6 +1790,7 @@ msgstr "logout" msgid "administration of authenticators" msgstr "administration des authentificateurs" +#: templates/uds/admin/tmpl/connectivity.html:4 #: templates/uds/admin/tmpl/dashboard.html:4 msgid "overview" msgstr "vue d'ensemble" @@ -1367,13 +1925,19 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "Empty creds" msgstr "Références vide" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "If checked, the credentials used to connect will be emtpy" msgstr "" "Si coché, les informations d'identification utilisées pour se connecter sera " @@ -1381,7 +1945,10 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 #: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 -#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 msgid "If not empty, this username will be always used as credential" msgstr "" "Si ce n'est vide, ce nom d'utilisateur sera toujours utilisé comme des " @@ -1389,7 +1956,10 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 #: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 msgid "If not empty, this password will be always used as credential" msgstr "" "Si ce n'est vide, ce mot de passe sera toujours utilisé comme des titres de " @@ -1397,6 +1967,8 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "" "If not empty, this domain will be always used as credential (used as DOMAIN" "\\user)" @@ -1503,11 +2075,13 @@ msgid "NX Transport for tunneled connection" msgstr "Transport NX pour connexion tunnelée" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "Tunnel server" msgstr "Serveur de tunnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "" "IP or Hostname of tunnel server send to client device (\"public\" ip) and " @@ -1517,11 +2091,13 @@ msgstr "" "» ip) et port. (utilisez le format de l'hôte : PORT)" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "Tunnel host check" msgstr "Tunnel hôte cocher" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "" "If not empty, this server will be used to check if service is running before " @@ -1532,6 +2108,7 @@ msgstr "" "PORT)" #: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75 +#: transports/RGS-enterprise/TRGSTransport.py:71 #: transports/TSNX/TSNXTransport.py:103 msgid "Must use HOST:PORT in Tunnel Server Field" msgstr "Devez utiliser HOST : PORT dans le champ serveur Tunnel" @@ -1635,7 +2212,7 @@ msgstr "Protocole Bureau distant" msgid "In order to use this service, you should first install CoRD." msgstr "Afin d'utiliser ce service, vous devez d'abord installer cordon." -#: transports/RDP/web.py:85 +#: transports/RDP/web.py:85 transports/RGS-enterprise/web.py:83 msgid "You can obtain it from" msgstr "Vous pouvez l'obtenir de" @@ -1643,18 +2220,122 @@ msgstr "Vous pouvez l'obtenir de" msgid "CoRD Website" msgstr "Site Web du cordon" +#: transports/RGS-enterprise/RGSTransport.py:34 +msgid "RGS Transport (direct)" +msgstr "RGS Transport (direct)" + +#: transports/RGS-enterprise/RGSTransport.py:36 +msgid "RGS Transport for direct connection" +msgstr "RGS Transport pour une connexion directe" + +#: transports/RGS-enterprise/RGSTransport.py:45 +#: transports/RGS-enterprise/TRGSTransport.py:50 +msgid "Image quality" +msgstr "Qualité d'image" + +#: transports/RGS-enterprise/RGSTransport.py:46 +#: transports/RGS-enterprise/TRGSTransport.py:51 +msgid "Quality of image codec (0-100)" +msgstr "Qualité du codec d'image (0-100)" + +#: transports/RGS-enterprise/RGSTransport.py:47 +#: transports/RGS-enterprise/TRGSTransport.py:52 +msgid "Adjustable Quality" +msgstr "Qualité réglable" + +#: transports/RGS-enterprise/RGSTransport.py:48 +#: transports/RGS-enterprise/TRGSTransport.py:53 +msgid "If checked, the image quality will be adjustable with bandwidth" +msgstr "S'il est activé, la qualité d'image sera réglable avec bande passante" + +#: transports/RGS-enterprise/RGSTransport.py:49 +#: transports/RGS-enterprise/TRGSTransport.py:54 +msgid "Min. Adjustable Quality" +msgstr "Qualité réglable min." + +#: transports/RGS-enterprise/RGSTransport.py:50 +#: transports/RGS-enterprise/TRGSTransport.py:55 +msgid "" +"The lowest image quality applied to images to maintain the minimum update " +"rate." +msgstr "" +"La qualité d'image le plus bas appliquée aux images de maintenir la mise à jour minimale " +"Ravel" + +#: transports/RGS-enterprise/RGSTransport.py:51 +#: transports/RGS-enterprise/TRGSTransport.py:56 +msgid "Adjustable Frame Rate" +msgstr "Cadence réglable" + +#: transports/RGS-enterprise/RGSTransport.py:52 +#: transports/RGS-enterprise/TRGSTransport.py:57 +msgid "Update rate threshold to begin adjusting image quality" +msgstr "Seuil de taux de mise à jour pour commencer le réglage qualité de l'image" + +#: transports/RGS-enterprise/RGSTransport.py:53 +#: transports/RGS-enterprise/TRGSTransport.py:58 +msgid "Match Local Resolution" +msgstr "Adapter la résolution locale" + +#: transports/RGS-enterprise/RGSTransport.py:54 +#: transports/RGS-enterprise/TRGSTransport.py:59 +msgid "" +"Change the Sender's resolution to match the Receiver's resolution when " +"connecting" +msgstr "" +"Changer la résolution de l'expéditeur pour l'adapter résolution du récepteur lorsque " +"connexion" + +#: transports/RGS-enterprise/RGSTransport.py:55 +#: transports/RGS-enterprise/TRGSTransport.py:60 +msgid "Redirect USB" +msgstr "Redirection USB" + +#: transports/RGS-enterprise/RGSTransport.py:56 +#: transports/RGS-enterprise/TRGSTransport.py:61 +msgid "If checked, the USB will be redirected." +msgstr "Si cochée, l'USB sera redirigé." + +#: transports/RGS-enterprise/RGSTransport.py:57 +#: transports/RGS-enterprise/TRGSTransport.py:62 +msgid "Redirect Audio" +msgstr "Redirection Audio" + +#: transports/RGS-enterprise/RGSTransport.py:58 +#: transports/RGS-enterprise/TRGSTransport.py:63 +msgid "If checked, the Audio will be redirected." +msgstr "Si coché, le son sera redirigé." + +#: transports/RGS-enterprise/RGSTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:64 +msgid "Redirect Mic" +msgstr "Redirection Mic" + +#: transports/RGS-enterprise/RGSTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:65 +msgid "If checked, the Mic will be redirected." +msgstr "Si cochée, le micro sera redirigé." + +#: transports/RGS-enterprise/TRGSTransport.py:36 +msgid "RGS Transport (tunneled)" +msgstr "RGS Transport (tunnel)" + +#: transports/RGS-enterprise/TRGSTransport.py:38 +msgid "RGS Transport for tunneled connection" +msgstr "RGS Transport pour connexion par tunnel" + +#: transports/RGS-enterprise/web.py:82 +msgid "In order to use this service, you should first install RGS Receiver." +msgstr "Pour utiliser ce service, vous devez commencer par installer récepteur RGS." + +#: transports/RGS-enterprise/web.py:83 +msgid "HP Website" +msgstr "Site Web de HP" + #: web/errors.py:60 msgid "Unknown error" msgstr "Erreur inconnue" -#: web/errors.py:61 -msgid "Transport not found" -msgstr "Transport introuvable" - -#: web/errors.py:62 -msgid "Service not found" -msgstr "Service introuvable" - #: web/errors.py:63 xmlrpc/auths/AdminAuth.py:182 #: xmlrpc/auths/AdminAuth.py:188 msgid "Access denied" @@ -1725,10 +2406,6 @@ msgstr "Informations d'identification n'est plus valides" msgid "Administration" msgstr "Administration" -#: xmlrpc/auths/AdminAuth.py:168 -msgid "Invalid credentials" -msgstr "Informations d'identification non valides" - #: xmlrpc/auths/Authenticators.py:107 msgid "Authenticator does not exists" msgstr "Authentificateur n'existe pas" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo index 6e99e4d72..4412a3071 100644 Binary files a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo and b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo differ diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po index 4096fcc08..098fc6f3e 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:21+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: static/adm/js/gui-elements.js:7 +#: static/adm/js/gui-elements.js:33 msgid "Service Providers" msgstr "Fournisseurs de services" -#: static/adm/js/gui-elements.js:81 -msgid "Connectivity" -msgstr "Connectivité" - #: static/adm/js/gui.js:18 msgid "_MENU_ records per page" msgstr "Documents _MENU_ par page" @@ -70,19 +66,19 @@ msgstr "Prochaine" msgid "Previous" msgstr "Précédent" -#: static/adm/js/gui.js:80 +#: static/adm/js/gui.js:75 msgid "Deployed services" msgstr "Services déployés" -#: static/adm/js/gui.js:349 +#: static/adm/js/gui.js:360 msgid "Edit" msgstr "Edit" -#: static/adm/js/gui.js:358 +#: static/adm/js/gui.js:369 msgid "Delete" msgstr "Supprimer" -#: static/adm/js/gui.js:367 +#: static/adm/js/gui.js:378 msgid "Refresh" msgstr "Actualisation" @@ -161,3 +157,7 @@ msgstr "Novembre" #: static/adm/js/strftime.js:35 msgid "December" msgstr "Décembre" + +#: static/adm/js/tools.js:46 +msgid "Just a moment..." +msgstr "Un instant..." diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.mo b/server/src/uds/locale/it/LC_MESSAGES/django.mo index 4af52991c..a7d0afe7c 100644 Binary files a/server/src/uds/locale/it/LC_MESSAGES/django.mo and b/server/src/uds/locale/it/LC_MESSAGES/django.mo differ diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.po b/server/src/uds/locale/it/LC_MESSAGES/django.po index 77eacad93..b5414e8f4 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/django.po +++ b/server/src/uds/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:20+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,23 +18,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: REST/methods/authenticators.py:73 +#: REST/methods/authenticators.py:80 msgid "Current authenticators" msgstr "Autenticatori correnti" -#: REST/methods/authenticators.py:75 REST/methods/networks.py:68 +#: REST/methods/authenticators.py:82 REST/methods/networks.py:68 #: REST/methods/osmanagers.py:71 REST/methods/providers.py:69 #: REST/methods/transports.py:71 REST/methods/users.py:77 msgid "Name" msgstr "Nome" -#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72 +#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72 #: REST/methods/providers.py:70 REST/methods/transports.py:72 #: REST/methods/users.py:78 msgid "Comments" msgstr "Commenti" -#: REST/methods/authenticators.py:77 +#: REST/methods/authenticators.py:84 msgid "Users" msgstr "Utenti" @@ -90,14 +90,263 @@ msgstr "stato" msgid "Last access" msgstr "Ultimo accesso" -#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422 +#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422 msgid "Forbidden" msgstr "Vietato" -#: admin/views.py:69 +#: admin/views.py:70 msgid "requested a template that do not exists" msgstr "richiesto da un modello che non esiste" +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +#: auths/EDirectory_enterprise/Authenticator.py:60 +#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +#: services/OVirt/OVirtProvider.py:92 +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "Host" +msgstr "Host" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +msgid "Active Directory Server IP or Hostname" +msgstr "Active Directory Server IP o l'Hostname" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "Use SSL" +msgstr "Utilizzo SSL" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +msgid "If checked, will use a ssl connection to Active Directory" +msgstr "Se selezionata, utilizzerà una connessione ssl per Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility" +msgstr "Compatibilità" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility of AD connection (Usually windows 2000 and later)" +msgstr "Compatibilità di connessione AD (solitamente windows 2000 e versioni successive)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 +msgid "Ldap User" +msgstr "Utente LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +msgid "" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" +msgstr "" +"Nome utente con privilegi di lettura sulla base selezionato (uso USER@DOMAIN.Forma di DOM " +"per questo)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/ActiveDirectory_enterprise/Authenticator.py:52 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 +#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 +#: core/auths/BaseAuthenticator.py:136 +#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 +#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 +#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70 +msgid "Password" +msgstr "Password" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 +msgid "Password of the ldap user" +msgstr "Password dell'utente ldap" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +#: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 +msgid "Timeout" +msgstr "Timeout" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +msgid "Timeout in seconds of connection to LDAP" +msgstr "Timeout in secondi di connessione LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:37 +msgid "Active Directory Authenticator" +msgstr "Autenticatore di Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:39 +msgid "Authenticate against Active Directory" +msgstr "L'autenticazione in Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:48 +#: auths/EDirectory_enterprise/Authenticator.py:77 +#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +#: services/OVirt/OVirtProvider.py:93 +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 +#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 +msgid "Username" +msgstr "Nome utente" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:50 +#: auths/EDirectory_enterprise/Authenticator.py:79 +#: auths/RegexLdap/Authenticator.py:74 auths/SAML_enterprise/SAML.py:114 +#: auths/SimpleLDAP/Authenticator.py:75 +msgid "Group" +msgstr "Gruppo" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:67 +#: auths/ActiveDirectory_enterprise/Authenticator.py:442 +msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" +msgstr "Deve specificare il nome utente nella forma USERNAME@DOMAIN.DOM" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:164 +#: auths/EDirectory_enterprise/Authenticator.py:123 +#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 +msgid "Ldap connection error: " +msgstr "Errore di connessione LDAP: " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:344 +#: auths/ActiveDirectory_enterprise/Authenticator.py:390 +#: auths/EDirectory_enterprise/Authenticator.py:243 +#: auths/EDirectory_enterprise/Authenticator.py:286 +#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 +#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 +msgid "Username not found" +msgstr "Nome utente non trovato" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:377 +#: auths/SimpleLDAP/Authenticator.py:302 +msgid "Group not found" +msgstr "Gruppo non trovato" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:410 +#: auths/ActiveDirectory_enterprise/Authenticator.py:428 +#: auths/EDirectory_enterprise/Authenticator.py:303 +#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 +#: auths/SimpleLDAP/Authenticator.py:342 +msgid "Too many results, be more specific" +msgstr "Troppi risultati, essere più specifico" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:451 +msgid "Domain seems to be incorrect, please check it" +msgstr "Dominio sembra essere corretto, si prega di controllare" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:456 +msgid "Ldap does not seem an Active Directory (do not have user objects)" +msgstr "LDAP non sembra un'Active Directory (non hanno oggetti utente)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:464 +msgid "Ldap does not seem an Active Directory (no not have group objects)" +msgstr "LDAP non sembra un'Active Directory (no, non sono oggetti di gruppo)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:472 +msgid "" +"Ldap does not seem an Active Directory (do not have any user nor groups)" +msgstr "" +"LDAP non sembra un'Active Directory (non hanno alcun utente né gruppi)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:477 +#: auths/EDirectory_enterprise/Authenticator.py:358 +#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 +msgid "Connection params seem correct, test was succesfully executed" +msgstr "" +"Connessione params sembrano corretti, prova era stata correttamente eseguita" + +#: auths/EDirectory_enterprise/Authenticator.py:60 +msgid "EDirectory Server IP or Hostname" +msgstr "EDirectory Server IP o l'Hostname" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "Port" +msgstr "Porta" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +msgid "Ldap port (389 for non ssl, 636 for ssl normally" +msgstr "Porta LDAP (389 per non ssl, 636 per ssl normalmente" + +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "" +"If checked, will use a ssl connection to ldap (if port is 389, will use in " +"fact port 636)" +msgstr "" +"Se selezionata, utilizzerà una connessione ssl a ldap (se la porta è 389, si " +"usano in porta fatto 636)" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Admin user" +msgstr "Utente admin" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Username with read privileges on the eDirectory" +msgstr "Nome utente con privilegi di lettura La eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:67 +msgid "eDirectory Authenticator" +msgstr "eDirectory autenticatore" + +#: auths/EDirectory_enterprise/Authenticator.py:69 +msgid "Authenticate against eDirectory" +msgstr "Autenticare eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:323 +#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 +msgid "Ldap search base is incorrect" +msgstr "Base di ricerca LDAP non è corretto" + +#: auths/EDirectory_enterprise/Authenticator.py:328 +#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 +msgid "Ldap user class seems to be incorrect (no user found by that class)" +msgstr "" +"Classe utente LDAP sembra essere errata (nessun utente trovato di classe)" + +#: auths/EDirectory_enterprise/Authenticator.py:336 +#: auths/SimpleLDAP/Authenticator.py:384 +msgid "" +"Ldap user id attribute seems to be incorrect (no user found by that " +"attribute)" +msgstr "" +"Attributo id di utente LDAP sembra essere errata (nessun utente trovato di " +"che attributo)" + +#: auths/EDirectory_enterprise/Authenticator.py:344 +msgid "Expected group attribute " +msgstr "Attributo di gruppo previsto " + +#: auths/EDirectory_enterprise/Authenticator.py:353 +msgid "" +"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" +msgstr "" +"LDAP dell'utente utente o classe id attr è probabilmente sbagliato (Ldap è un eDirectory?)" + #: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50 msgid "IP Authenticator" msgstr "IP autenticatore" @@ -143,69 +392,14 @@ msgstr "Se selezionata, l'ospite sarà invertito dns" msgid "Internal structures seems ok" msgstr "Strutture interne sembra ok" -#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 -#: services/OVirt/OVirtProvider.py:92 -msgid "Host" -msgstr "Host" - #: auths/RegexLdap/Authenticator.py:49 msgid "Ldap Server Host" msgstr "Host del Server LDAP" -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Port" -msgstr "Porta" - -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Ldap port (389 for non ssl, 636 for ssl normally" -msgstr "Porta LDAP (389 per non ssl, 636 per ssl normalmente" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "Use SSL" -msgstr "Utilizzo SSL" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "" -"If checked, will use a ssl connection to ldap (if port is 389, will use in " -"fact port 636)" -msgstr "" -"Se selezionata, utilizzerà una connessione ssl a ldap (se la porta è 389, si " -"usano in porta fatto 636)" - -#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 -msgid "Ldap User" -msgstr "Utente LDAP" - #: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 msgid "Username with read privileges on the base selected" msgstr "Nome utente con privilegi di lettura sulla base selezionata" -#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 -#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 -#: core/auths/BaseAuthenticator.py:136 -#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 -#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 -#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 -#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 -#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 -#: web/forms/LoginForm.py:70 -msgid "Password" -msgstr "Password" - -#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 -msgid "Password of the ldap user" -msgstr "Password dell'utente ldap" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -#: services/OVirt/OVirtProvider.py:95 -msgid "Timeout" -msgstr "Timeout" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -msgid "Timeout in seconds of connection to LDAP" -msgstr "Timeout in secondi di connessione LDAP" - #: auths/RegexLdap/Authenticator.py:55 auths/SimpleLDAP/Authenticator.py:55 msgid "Base" msgstr "Base" @@ -255,41 +449,6 @@ msgstr "Regex LDAP autenticatore" msgid "Regular Expressions LDAP authenticator" msgstr "Autenticatore di LDAP di espressioni regolari" -#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 -#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64 -#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66 -#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63 -#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 -msgid "Username" -msgstr "Nome utente" - -#: auths/RegexLdap/Authenticator.py:74 auths/SimpleLDAP/Authenticator.py:75 -msgid "Group" -msgstr "Gruppo" - -#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 -msgid "Ldap connection error: " -msgstr "Errore di connessione LDAP: " - -#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 -#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 -msgid "Username not found" -msgstr "Nome utente non trovato" - -#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 -#: auths/SimpleLDAP/Authenticator.py:342 -msgid "Too many results, be more specific" -msgstr "Troppi risultati, essere più specifico" - -#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 -msgid "Ldap search base is incorrect" -msgstr "Base di ricerca LDAP non è corretto" - -#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 -msgid "Ldap user class seems to be incorrect (no user found by that class)" -msgstr "" -"Classe utente LDAP sembra essere errata (nessun utente trovato di classe)" - #: auths/RegexLdap/Authenticator.py:401 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " @@ -306,10 +465,116 @@ msgstr "" "Attributo id di gruppo LDAP sembra essere errata (nessun gruppo trovato di " "che attributo)" -#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 -msgid "Connection params seem correct, test was succesfully executed" +#: auths/SAML_enterprise/SAML.py:80 +msgid "SAML Authenticator" +msgstr "SAML autenticatore" + +#: auths/SAML_enterprise/SAML.py:92 +msgid "SAML (v2.0) Authenticator" +msgstr "SAML (v 2.0) autenticatore" + +#: auths/SAML_enterprise/SAML.py:111 templates/uds/internal_page.html:28 +msgid "User" +msgstr "Utente" + +#: auths/SAML_enterprise/SAML.py:120 +msgid "Private key" +msgstr "Chiave privata" + +#: auths/SAML_enterprise/SAML.py:121 +msgid "" +"Private key used for sign and encription, as generated in base 64 from " +"openssl" msgstr "" -"Connessione params sembrano corretti, prova era stata correttamente eseguita" +"Chiave privata utilizzata per segno ed encription, come generato in base 64 da " +"OpenSSL" + +#: auths/SAML_enterprise/SAML.py:122 +msgid "Certificate" +msgstr "Certificato" + +#: auths/SAML_enterprise/SAML.py:123 +msgid "Server certificate (public), , as generated in base 64 from openssl" +msgstr "Certificato server (pubblico), come generato in base 64 da openssl" + +#: auths/SAML_enterprise/SAML.py:124 +msgid "IDP Metadata" +msgstr "Metadati IDP" + +#: auths/SAML_enterprise/SAML.py:125 +msgid "" +"You can enter here the URL or the IDP metadata or the metadata itself (xml)" +msgstr "" +"Qui è possibile immettere l'URL o i metadati IDP o i metadati stesso (xml)" + +#: auths/SAML_enterprise/SAML.py:127 +msgid "Entity ID" +msgstr "ID entità" + +#: auths/SAML_enterprise/SAML.py:128 +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "ID della SP. Se lasciato vuoto, questo sarà generato automaticamente dal server URL" + +#: auths/SAML_enterprise/SAML.py:130 +msgid "User name attrs" +msgstr "Attrs nome utente" + +#: auths/SAML_enterprise/SAML.py:131 +msgid "Fields from where to extract user name" +msgstr "Campi da dove estrarre il nome utente" + +#: auths/SAML_enterprise/SAML.py:133 +msgid "Group name attrs" +msgstr "Gruppo nome attrs" + +#: auths/SAML_enterprise/SAML.py:134 +msgid "Fields from where to extract the groups" +msgstr "Campi da dove estrarre i gruppi" + +#: auths/SAML_enterprise/SAML.py:136 +msgid "Real name attrs" +msgstr "Vero nome attrs" + +#: auths/SAML_enterprise/SAML.py:137 +msgid "Fields from where to extract the real name" +msgstr "Campi da dove estrarre il vero nome" + +#: auths/SAML_enterprise/SAML.py:160 +msgid "" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"Certificato server dovrebbe essere un valido PEM (PEM certificati inizia con---" +"BEGIN CERTIFICATE---)" + +#: auths/SAML_enterprise/SAML.py:165 +msgid "Invalid server certificate. " +msgstr "Certificato del server non valido. " + +#: auths/SAML_enterprise/SAML.py:168 +msgid "" +"Private key should be a valid PEM (PEM private keys starts with -----BEGIN " +"RSA PRIVATE KEY-----" +msgstr "" +"Chiave privata deve essere un valido PEM (PEM chiavi private inizia con----BEGIN " +"CHIAVE PRIVATA RSA-" + +#: auths/SAML_enterprise/SAML.py:197 +#, python-brace-format +msgid "Can't fetch url {0}: {1}" +msgstr "Non è possibile recuperare l'url {0}: {1}" + +#: auths/SAML_enterprise/SAML.py:208 +msgid " (obtained from URL)" +msgstr " (ottenuto da URL)" + +#: auths/SAML_enterprise/SAML.py:209 +msgid "XML do not seems valid for IDP Metadata " +msgstr "XML non sembra valido per IDP metadati " + +#: auths/SAML_enterprise/SAML.py:227 +msgid "Can't access idp metadata" +msgstr "Non è possibile accedere ai metadati di idp" #: auths/Sample/SampleAuth.py:71 msgid "Sample Authenticator" @@ -371,23 +636,11 @@ msgstr "SimpleLDAP autenticatore" msgid "Simple LDAP authenticator" msgstr "Semplice autenticatore LDAP" -#: auths/SimpleLDAP/Authenticator.py:302 -msgid "Group not found" -msgstr "Gruppo non trovato" - #: auths/SimpleLDAP/Authenticator.py:376 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "Classe gruppo LDAP sembra essere errata (nessun gruppo trovato di classe)" -#: auths/SimpleLDAP/Authenticator.py:384 -msgid "" -"Ldap user id attribute seems to be incorrect (no user found by that " -"attribute)" -msgstr "" -"Attributo id di utente LDAP sembra essere errata (nessun utente trovato di " -"che attributo)" - #: auths/SimpleLDAP/Authenticator.py:401 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " @@ -606,6 +859,66 @@ msgstr "Carico" msgid "Storage" msgstr "Archiviazione" +#: dispatchers/wyse_enterprise/views.py:111 +msgid "There are no authenticators available for login" +msgstr "Non sono disponibili per il login autenticatori" + +#: dispatchers/wyse_enterprise/views.py:124 +#, python-brace-format +msgid "The authenticator {0} is not usable" +msgstr "L'autenticatore {0} non è utilizzabile" + +#: dispatchers/wyse_enterprise/views.py:131 xmlrpc/auths/AdminAuth.py:168 +msgid "Invalid credentials" +msgstr "Credenziali non valide" + +#: dispatchers/wyse_enterprise/views.py:139 +#, python-brace-format +msgid "The domain {0} does not exists" +msgstr "Il dominio {0} non esiste" + +#: dispatchers/wyse_enterprise/views.py:200 +msgid "No services available" +msgstr "Nessun servizio disponibile" + +#: dispatchers/wyse_enterprise/views.py:215 +#: dispatchers/wyse_enterprise/views.py:309 +msgid "Invalid session" +msgstr "Sessione non valida" + +#: dispatchers/wyse_enterprise/views.py:219 +#: dispatchers/wyse_enterprise/views.py:313 +msgid "Invalid authorization" +msgstr "Autorizzazione non valida" + +#: dispatchers/wyse_enterprise/views.py:230 +#: dispatchers/wyse_enterprise/views.py:319 +msgid "Invalid request" +msgstr "Richiesta non valida" + +#: dispatchers/wyse_enterprise/views.py:233 +#: dispatchers/wyse_enterprise/views.py:322 +msgid "Invalid credentials used" +msgstr "Credenziali non valide usate" + +#: dispatchers/wyse_enterprise/views.py:254 +#: dispatchers/wyse_enterprise/views.py:257 web/errors.py:62 +msgid "Service not found" +msgstr "Servizio non trovato" + +#: dispatchers/wyse_enterprise/views.py:271 web/errors.py:61 +msgid "Transport not found" +msgstr "Trasporto non trovato" + +#: dispatchers/wyse_enterprise/views.py:275 +#: dispatchers/wyse_enterprise/views.py:282 +#: dispatchers/wyse_enterprise/views.py:287 +#: templates/uds/service_not_ready.html:6 +msgid "Service not ready at this moment. Please, try again in a while." +msgstr "" +"Servizio non pronta in questo momento. Per favore, provare nuovamente in un " +"istante." + #: osmanagers/LinuxOsManager/LinuxOsManager.py:45 msgid "Linux OS Manager" msgstr "Linux OS Manager" @@ -658,6 +971,8 @@ msgstr "" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:32 #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "Domain" msgstr "Dominio" @@ -808,6 +1123,204 @@ msgstr "" "UDS attore per macchine windows (importante!! Richiede .net framework 3.5 " "SP1)" +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:51 +msgid "HyperV Cluster Linked Clone (Experimental)" +msgstr "HyperV Cluster collegati Clone (sperimentale)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 +#: services/HyperV_enterprise/HyperVLinkedService.py:58 +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "Iper servizi basati su modelli e differenziale dischi (sperimentale)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 +#: services/HyperV_enterprise/HyperVLinkedService.py:75 +#: services/OVirt/OVirtLinkedService.py:77 +#: services/Vmware_enterprise/VCLinkedCloneService.py:72 +msgid "Number of desired machines to keep running waiting for a user" +msgstr "" +"Numero di macchine desiderate per continuare a correre in attesa di un utente" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 +#: services/HyperV_enterprise/HyperVLinkedService.py:81 +#: services/OVirt/OVirtLinkedService.py:83 +#: services/Vmware_enterprise/VCLinkedCloneService.py:74 +msgid "Number of desired machines to keep suspended waiting for use" +msgstr "Numero di macchine desiderati tenere sospeso in attesa di utilizzo" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base Machine" +msgstr "Macchina base" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +msgid "Service base machine" +msgstr "Macchina base servizio" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:95 +#: services/HyperV_enterprise/HyperVLinkedService.py:98 +#: services/Vmware_enterprise/VCLinkedCloneService.py:38 +msgid "Network" +msgstr "Rete" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:96 +#: services/HyperV_enterprise/HyperVLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:39 +msgid "" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Se più di 1 interfaccia si trova in macchina, utilizzare uno su questa rete come principale" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 +#: services/HyperV_enterprise/HyperVLinkedService.py:101 +#: services/OVirt/OVirtLinkedService.py:112 +#: services/Vmware_enterprise/VCLinkedCloneService.py:51 +msgid "Memory (Mb)" +msgstr "Memoria (Mb)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:99 +#: services/HyperV_enterprise/HyperVLinkedService.py:102 +#: services/Vmware_enterprise/VCLinkedCloneService.py:52 +msgid "Memory for machines deployed from this service" +msgstr "Memoria per macchine distribuite da questo servizio" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 +#: services/HyperV_enterprise/HyperVLinkedService.py:103 +msgid "Datastore Drives" +msgstr "Archivio dati unità" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 +#: services/HyperV_enterprise/HyperVLinkedService.py:104 +msgid "Datastores where to put incrementals & publications" +msgstr "Datastore dove mettere incrementali & pubblicazioni" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/OVirt/OVirtLinkedService.py:118 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Machine Names" +msgstr "Nomi della macchina" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Base name for clones from this machine" +msgstr "Nome di base per i cloni da questa macchina" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:103 +#: services/HyperV_enterprise/HyperVLinkedService.py:106 +#: services/OVirt/OVirtLinkedService.py:119 +#: services/Vmware_enterprise/VCLinkedCloneService.py:56 +msgid "Name Length" +msgstr "Lunghezza del nome" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:104 +#: services/HyperV_enterprise/HyperVLinkedService.py:107 +#: services/OVirt/OVirtLinkedService.py:120 +#: services/Vmware_enterprise/VCLinkedCloneService.py:57 +msgid "Length of numeric part for the names of this machines (betwen 3 and 6" +msgstr "" +"Lunghezza della parte numerica per i nomi di questa macchine (tra 3 e 6" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 +#: services/HyperV_enterprise/HyperVLinkedService.py:119 +#: services/OVirt/OVirtLinkedService.py:143 +#: services/Vmware_enterprise/VCLinkedCloneService.py:95 +msgid "The length of basename plus length must not be greater than 15" +msgstr "La lunghezza di basename più lunghezza non deve essere maggiore di 15" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:118 +#: services/HyperV_enterprise/HyperVLinkedService.py:121 +#: services/OVirt/OVirtLinkedService.py:145 +#: services/Vmware_enterprise/VCLinkedCloneService.py:97 +msgid "The machine name can't be only numbers" +msgstr "Il nome del computer non può essere solo numeri" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:64 +msgid "HyperV Cluster Provider" +msgstr "HyperV Cluster Provider" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:68 +msgid "HyperV Cluster Service Provider" +msgstr "HyperV Cluster Service Provider" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" +msgstr "HyperV Server IP o l'Hostname (necessario abilitare l'accesso prima di WS-Management)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +msgid "WSMan Port (normally 5985)" +msgstr "Porto di WS-Management (normalmente 5985)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +msgid "User with valid privileges on HyperV Server" +msgstr "Utente con privilegi di validi sul HyperV Server" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +msgid "Password of the user of HyperV" +msgstr "Password dell'utente di HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +msgid "Timeout in seconds of connection to HyperV" +msgstr "Timeout in secondi di connessione per HyperV" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:94 +#: services/HyperV_enterprise/HyperVProvider.py:86 +#: services/OVirt/OVirtProvider.py:96 +#: services/Vmware_enterprise/ServiceProviderVC.py:33 +msgid "Macs range" +msgstr "Gamma di Mac" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:95 +#: services/HyperV_enterprise/HyperVProvider.py:87 +#: services/OVirt/OVirtProvider.py:97 +msgid "Range of valids macs for created machines" +msgstr "Gamma di Mac valida per macchine creati" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:132 +msgid "The selected server is not a cluster" +msgstr "Il server selezionato non è un cluster" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:299 +#: services/HyperV_enterprise/HyperVProvider.py:249 +#: services/OVirt/OVirtProvider.py:399 +msgid "Connection test successful" +msgstr "Test di connessione riuscita" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:300 +#: services/HyperV_enterprise/HyperVProvider.py:250 +#: services/OVirt/OVirtProvider.py:400 +#: services/Vmware_enterprise/ServiceProviderVC.py:120 +msgid "Connection failed. Check connection params" +msgstr "Connessione non riuscita. Controllare la connessione params" + +#: services/HyperV_enterprise/HyperVClusterPublication.py:97 +#: services/HyperV_enterprise/HyperVPublication.py:96 +#: services/OVirt/OVirtPublication.py:85 +#, python-brace-format +msgid "UDS pub for {0} at {1}" +msgstr "Pub UDS per {0} in {1}" + +#: services/HyperV_enterprise/HyperVLinkedService.py:54 +msgid "HyperV Linked Clone (Experimental)" +msgstr "HyperV Clone collegato (sperimentale)" + +#: services/HyperV_enterprise/HyperVProvider.py:62 +msgid "HyperV Platform Provider" +msgstr "Fornitore di piattaforma HyperV" + +#: services/HyperV_enterprise/HyperVProvider.py:66 +msgid "HyperV platform service provider" +msgstr "Fornitore di servizi di piattaforma HyperV" + #: services/OVirt/OVirtLinkedService.py:56 msgid "oVirt Linked Clone (Experimental)" msgstr "oVirt Linked Clone (sperimentale)" @@ -816,23 +1329,6 @@ msgstr "oVirt Linked Clone (sperimentale)" msgid "oVirt Services based on templates and COW (experimental)" msgstr "oVirt servizi basati su modelli e vacca (sperimentale)" -#: services/OVirt/OVirtLinkedService.py:77 -msgid "Number of desired machines to keep running waiting for a user" -msgstr "" -"Numero di macchine desiderate per continuare a correre in attesa di un utente" - -#: services/OVirt/OVirtLinkedService.py:83 -msgid "Number of desired machines to keep suspended waiting for use" -msgstr "Numero di macchine desiderati tenere sospeso in attesa di utilizzo" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Base Machine" -msgstr "Macchina base" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Service base machine" -msgstr "Macchina base servizio" - #: services/OVirt/OVirtLinkedService.py:100 msgid "Cluster" msgstr "Cluster" @@ -849,10 +1345,6 @@ msgstr "Archivio dati dominio" msgid "Datastore domain where to publish and put incrementals" msgstr "Archivio dati dominio dove pubblicare e mettere incrementali" -#: services/OVirt/OVirtLinkedService.py:112 -msgid "Memory (Mb)" -msgstr "Memoria (Mb)" - #: services/OVirt/OVirtLinkedService.py:113 msgid "Memory assigned to machines" msgstr "Memoria assegnato alle macchine" @@ -865,19 +1357,6 @@ msgstr "Memoria garantita (Mb)" msgid "Physical memory guaranteed to machines" msgstr "Memoria fisica garantita per macchine" -#: services/OVirt/OVirtLinkedService.py:118 -msgid "Machine Names" -msgstr "Nomi della macchina" - -#: services/OVirt/OVirtLinkedService.py:119 -msgid "Name Length" -msgstr "Lunghezza del nome" - -#: services/OVirt/OVirtLinkedService.py:120 -msgid "Length of numeric part for the names of this machines (betwen 3 and 6" -msgstr "" -"Lunghezza della parte numerica per i nomi di questa macchine (tra 3 e 6" - #: services/OVirt/OVirtLinkedService.py:122 msgid "Display" msgstr "Visualizzazione" @@ -886,14 +1365,6 @@ msgstr "Visualizzazione" msgid "Display type (only for administration pourposses)" msgstr "Tipo di display (solo per pourposses di amministrazione)" -#: services/OVirt/OVirtLinkedService.py:143 -msgid "The length of basename plus length must not be greater than 15" -msgstr "La lunghezza di basename più lunghezza non deve essere maggiore di 15" - -#: services/OVirt/OVirtLinkedService.py:145 -msgid "The machine name can't be only numbers" -msgstr "Il nome del computer non può essere solo numeri" - #: services/OVirt/OVirtProvider.py:73 msgid "oVirt Platform Provider" msgstr "oVirt fornitore di piattaforma" @@ -916,30 +1387,10 @@ msgid "Password of the user of oVirt" msgstr "Password dell'utente di oVirt" #: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 msgid "Timeout in seconds of connection to VC" msgstr "Timeout in secondi di connessione a VC" -#: services/OVirt/OVirtProvider.py:96 -msgid "Macs range" -msgstr "Gamma di Mac" - -#: services/OVirt/OVirtProvider.py:97 -msgid "Range of valids macs for created machines" -msgstr "Gamma di Mac valida per macchine creati" - -#: services/OVirt/OVirtProvider.py:399 -msgid "Connection test successful" -msgstr "Test di connessione riuscita" - -#: services/OVirt/OVirtProvider.py:400 -msgid "Connection failed. Check connection params" -msgstr "Connessione non riuscita. Controllare la connessione params" - -#: services/OVirt/OVirtPublication.py:85 -#, python-brace-format -msgid "UDS pub for {0} at {1}" -msgstr "Pub UDS per {0} in {1}" - #: services/PhysicalMachines/IPMachineDeployed.py:57 msgid "IP " msgstr "IP " @@ -1056,6 +1507,121 @@ msgstr "Cache L2 per elementi fittizi" msgid "List of names" msgstr "Elenco dei nomi" +#: services/Vmware_enterprise/Helpers.py:72 +msgid "Local" +msgstr "Locale" + +#: services/Vmware_enterprise/Helpers.py:74 +msgid "Remote" +msgstr "Remoto" + +#: services/Vmware_enterprise/PublicationVC.py:37 +msgid "Publication" +msgstr "Pubblicazione" + +#: services/Vmware_enterprise/PublicationVC.py:38 +#, python-brace-format +msgid "UDS Publication for {0} created at {1}" +msgstr "Pubblicazione di UDS per {0} creato in {1}" + +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "VMWare VC Server IP or Hostname" +msgstr "VMWare Server VC IP o l'Hostname" + +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "VMWare VC Server Port (usually 443)" +msgstr "VC VMWare Server Port (solitamente 443)" + +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +msgid "User with valid privileges on VC" +msgstr "Utente con privilegi validi su VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +msgid "Password of the user of the VC" +msgstr "Password dell'utente di VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:34 +msgid "" +"Range of valids macs for created machines. Must be inside " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gamma di Mac valida per macchine creati. Deve essere all'interno " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" + +#: services/Vmware_enterprise/ServiceProviderVC.py:39 +msgid "VMWare Virtual Center Provider" +msgstr "VMWare Virtual Center Provider" + +#: services/Vmware_enterprise/ServiceProviderVC.py:41 +msgid "Provides connection to Virtual Center Services" +msgstr "Fornisce connessione virtuale centro servizi" + +#: services/Vmware_enterprise/ServiceProviderVC.py:110 +msgid "Error testing connection" +msgstr "Errore test connessione" + +#: services/Vmware_enterprise/ServiceProviderVC.py:113 +msgid "VmwareVC Provider: " +msgstr "VmwareVC Provider: " + +#: services/Vmware_enterprise/ServiceProviderVC.py:119 +msgid "Connection params ok" +msgstr "Connessione params ok" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:30 +msgid "Datacenter" +msgstr "Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:36 +msgid "Datacenter containing base machine" +msgstr "Macchina di base contenente datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Pub. Resource Pool" +msgstr "Pub. Pool di risorse" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Resource Pool where deploy clones" +msgstr "Pool di risorse dove distribuire cloni" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Clones Folder" +msgstr "Cartella di cloni" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Folder where deploy clones" +msgstr "Cartella dove distribuire cloni" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:42 +msgid "Resource Pool" +msgstr "Pool di risorse" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:48 +msgid "Resource Pool containing base machine" +msgstr "Macchina base contenente risorse piscina" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base machine for this service" +msgstr "Macchina base per questo servizio" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:53 +msgid "Datastores" +msgstr "Datastore" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:54 +msgid "Datastores where to put incrementals" +msgstr "Datastore dove mettere incrementali" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:64 +msgid "VMWare Linked clone base" +msgstr "Base di clone collegato VMWare" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:66 +msgid "" +"This service provides access to Linked Clones machines on a Virtual Center" +msgstr "" +"Questo servizio fornisce l'accesso alle macchine collegate cloni su un Virtual Center" + #: templates/404.html:3 templates/500.html:3 msgid "Page not found" msgstr "Pagina non trovata" @@ -1115,10 +1681,6 @@ msgstr "IP" msgid "Transports" msgstr "Trasporti" -#: templates/uds/internal_page.html:28 -msgid "User" -msgstr "Utente" - #: templates/uds/internal_page.html:34 templates/uds/prefs.html:12 #: templates/uds/html5/snippets/navbar.html:39 msgid "Preferences" @@ -1156,12 +1718,6 @@ msgstr "UDS preferenze utente" msgid "Save Preferences" msgstr "Salva preferenze" -#: templates/uds/service_not_ready.html:6 -msgid "Service not ready at this moment. Please, try again in a while." -msgstr "" -"Servizio non pronta in questo momento. Per favore, provare nuovamente in un " -"istante." - #: templates/uds/admin/snippets/navbar.html:6 #: templates/uds/html5/snippets/navbar.html:6 msgid "toggle navigation" @@ -1177,6 +1733,7 @@ msgid "Authenticators" msgstr "Autenticatori" #: templates/uds/admin/snippets/navbar.html:21 +#: templates/uds/admin/tmpl/connectivity.html:4 msgid "Connectivity" msgstr "Connettività" @@ -1188,11 +1745,11 @@ msgstr "Servizi distribuiti" msgid "Configuration" msgstr "Configurazione" -#: templates/uds/admin/snippets/navbar.html:56 +#: templates/uds/admin/snippets/navbar.html:57 msgid "Exit dashboard" msgstr "Cruscotto di uscita" -#: templates/uds/admin/snippets/navbar.html:57 +#: templates/uds/admin/snippets/navbar.html:58 #: templates/uds/html5/snippets/navbar.html:47 msgid "logout" msgstr "logout" @@ -1201,6 +1758,7 @@ msgstr "logout" msgid "administration of authenticators" msgstr "amministrazione di autenticatori" +#: templates/uds/admin/tmpl/connectivity.html:4 #: templates/uds/admin/tmpl/dashboard.html:4 msgid "overview" msgstr "Panoramica" @@ -1335,31 +1893,45 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "Empty creds" msgstr "Vuoto creds" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "If checked, the credentials used to connect will be emtpy" msgstr "Se selezionata, le credenziali utilizzate per connettersi sarà emtpy" #: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 #: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 -#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 msgid "If not empty, this username will be always used as credential" msgstr "" "Se non vuota, questo nome utente verrà sempre utilizzato come credenziale" #: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 #: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 msgid "If not empty, this password will be always used as credential" msgstr "Se non vuota, questa password verrà sempre utilizzata come credenziale" #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "" "If not empty, this domain will be always used as credential (used as DOMAIN" "\\user)" @@ -1466,11 +2038,13 @@ msgid "NX Transport for tunneled connection" msgstr "Trasporto di NX per connessione con tunnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "Tunnel server" msgstr "Server per il tunnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "" "IP or Hostname of tunnel server send to client device (\"public\" ip) and " @@ -1480,11 +2054,13 @@ msgstr "" "\"pubblico\") e porto. (utilizzare il formato HOST: PORT)" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "Tunnel host check" msgstr "Controllo host tunnel" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "" "If not empty, this server will be used to check if service is running before " @@ -1495,6 +2071,7 @@ msgstr "" "PORT)" #: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75 +#: transports/RGS-enterprise/TRGSTransport.py:71 #: transports/TSNX/TSNXTransport.py:103 msgid "Must use HOST:PORT in Tunnel Server Field" msgstr "Necessario utilizzare HOST: porta nel campo Server di Tunnel" @@ -1599,7 +2176,7 @@ msgid "In order to use this service, you should first install CoRD." msgstr "" "Per poter utilizzare questo servizio, è necessario prima installare cavo." -#: transports/RDP/web.py:85 +#: transports/RDP/web.py:85 transports/RGS-enterprise/web.py:83 msgid "You can obtain it from" msgstr "Si può ottenere da" @@ -1607,18 +2184,122 @@ msgstr "Si può ottenere da" msgid "CoRD Website" msgstr "Sito Web di cavo" +#: transports/RGS-enterprise/RGSTransport.py:34 +msgid "RGS Transport (direct)" +msgstr "RGS trasporto (diretto)" + +#: transports/RGS-enterprise/RGSTransport.py:36 +msgid "RGS Transport for direct connection" +msgstr "RGS trasporto per connessione diretta" + +#: transports/RGS-enterprise/RGSTransport.py:45 +#: transports/RGS-enterprise/TRGSTransport.py:50 +msgid "Image quality" +msgstr "Qualità dell'immagine" + +#: transports/RGS-enterprise/RGSTransport.py:46 +#: transports/RGS-enterprise/TRGSTransport.py:51 +msgid "Quality of image codec (0-100)" +msgstr "Qualità del codec immagine (0-100)" + +#: transports/RGS-enterprise/RGSTransport.py:47 +#: transports/RGS-enterprise/TRGSTransport.py:52 +msgid "Adjustable Quality" +msgstr "Qualità regolabili" + +#: transports/RGS-enterprise/RGSTransport.py:48 +#: transports/RGS-enterprise/TRGSTransport.py:53 +msgid "If checked, the image quality will be adjustable with bandwidth" +msgstr "Se selezionata, la qualità dell'immagine sarà regolabile con larghezza di banda" + +#: transports/RGS-enterprise/RGSTransport.py:49 +#: transports/RGS-enterprise/TRGSTransport.py:54 +msgid "Min. Adjustable Quality" +msgstr "Qualità regolabile min." + +#: transports/RGS-enterprise/RGSTransport.py:50 +#: transports/RGS-enterprise/TRGSTransport.py:55 +msgid "" +"The lowest image quality applied to images to maintain the minimum update " +"rate." +msgstr "" +"La qualità d'immagine più bassa applicata alle immagini per mantenere l'aggiornamento minimo " +"tasso." + +#: transports/RGS-enterprise/RGSTransport.py:51 +#: transports/RGS-enterprise/TRGSTransport.py:56 +msgid "Adjustable Frame Rate" +msgstr "Frequenza fotogrammi regolabile" + +#: transports/RGS-enterprise/RGSTransport.py:52 +#: transports/RGS-enterprise/TRGSTransport.py:57 +msgid "Update rate threshold to begin adjusting image quality" +msgstr "Soglia tasso di aggiornamento per iniziare a regolare la qualità dell'immagine" + +#: transports/RGS-enterprise/RGSTransport.py:53 +#: transports/RGS-enterprise/TRGSTransport.py:58 +msgid "Match Local Resolution" +msgstr "Risoluzione locale partita" + +#: transports/RGS-enterprise/RGSTransport.py:54 +#: transports/RGS-enterprise/TRGSTransport.py:59 +msgid "" +"Change the Sender's resolution to match the Receiver's resolution when " +"connecting" +msgstr "" +"Cambiare risoluzione del mittente per abbinare la risoluzione del ricevitore quando " +"collegamento" + +#: transports/RGS-enterprise/RGSTransport.py:55 +#: transports/RGS-enterprise/TRGSTransport.py:60 +msgid "Redirect USB" +msgstr "Reindirizzare USB" + +#: transports/RGS-enterprise/RGSTransport.py:56 +#: transports/RGS-enterprise/TRGSTransport.py:61 +msgid "If checked, the USB will be redirected." +msgstr "Se selezionata, verrà reindirizzato l'USB." + +#: transports/RGS-enterprise/RGSTransport.py:57 +#: transports/RGS-enterprise/TRGSTransport.py:62 +msgid "Redirect Audio" +msgstr "Reindirizzamento Audio" + +#: transports/RGS-enterprise/RGSTransport.py:58 +#: transports/RGS-enterprise/TRGSTransport.py:63 +msgid "If checked, the Audio will be redirected." +msgstr "Se selezionata, l'Audio verrà reindirizzato." + +#: transports/RGS-enterprise/RGSTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:64 +msgid "Redirect Mic" +msgstr "Reindirizzare Mic" + +#: transports/RGS-enterprise/RGSTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:65 +msgid "If checked, the Mic will be redirected." +msgstr "Se selezionata, verrà reindirizzato il Mic." + +#: transports/RGS-enterprise/TRGSTransport.py:36 +msgid "RGS Transport (tunneled)" +msgstr "RGS trasporto (con tunnel)" + +#: transports/RGS-enterprise/TRGSTransport.py:38 +msgid "RGS Transport for tunneled connection" +msgstr "RGS trasporto per connessione con tunnel" + +#: transports/RGS-enterprise/web.py:82 +msgid "In order to use this service, you should first install RGS Receiver." +msgstr "Per poter utilizzare questo servizio, è necessario prima installare RGS ricevitore." + +#: transports/RGS-enterprise/web.py:83 +msgid "HP Website" +msgstr "Sito Web HP" + #: web/errors.py:60 msgid "Unknown error" msgstr "Errore sconosciuto" -#: web/errors.py:61 -msgid "Transport not found" -msgstr "Trasporto non trovato" - -#: web/errors.py:62 -msgid "Service not found" -msgstr "Servizio non trovato" - #: web/errors.py:63 xmlrpc/auths/AdminAuth.py:182 #: xmlrpc/auths/AdminAuth.py:188 msgid "Access denied" @@ -1690,10 +2371,6 @@ msgstr "Credenziali non sono più valide" msgid "Administration" msgstr "Amministrazione" -#: xmlrpc/auths/AdminAuth.py:168 -msgid "Invalid credentials" -msgstr "Credenziali non valide" - #: xmlrpc/auths/Authenticators.py:107 msgid "Authenticator does not exists" msgstr "Autenticatore non esiste" diff --git a/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo index ac988e59e..f3d169b0b 100644 Binary files a/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo and b/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo differ diff --git a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po index 5a723612f..c4c2ee671 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:21+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: static/adm/js/gui-elements.js:7 +#: static/adm/js/gui-elements.js:33 msgid "Service Providers" msgstr "Fornitori di servizi" -#: static/adm/js/gui-elements.js:81 -msgid "Connectivity" -msgstr "Connettività" - #: static/adm/js/gui.js:18 msgid "_MENU_ records per page" msgstr "Record _MENU_ per pagina" @@ -70,19 +66,19 @@ msgstr "Prossimo" msgid "Previous" msgstr "Precedente" -#: static/adm/js/gui.js:80 +#: static/adm/js/gui.js:75 msgid "Deployed services" msgstr "Servizi distribuiti" -#: static/adm/js/gui.js:349 +#: static/adm/js/gui.js:360 msgid "Edit" msgstr "Modifica" -#: static/adm/js/gui.js:358 +#: static/adm/js/gui.js:369 msgid "Delete" msgstr "Eliminare" -#: static/adm/js/gui.js:367 +#: static/adm/js/gui.js:378 msgid "Refresh" msgstr "Aggiornamento" @@ -161,3 +157,7 @@ msgstr "Novembre" #: static/adm/js/strftime.js:35 msgid "December" msgstr "Dicembre" + +#: static/adm/js/tools.js:46 +msgid "Just a moment..." +msgstr "Solo un momento..." diff --git a/server/src/uds/locale/pt/LC_MESSAGES/django.mo b/server/src/uds/locale/pt/LC_MESSAGES/django.mo index 2d16e0dc1..64638fc25 100644 Binary files a/server/src/uds/locale/pt/LC_MESSAGES/django.mo and b/server/src/uds/locale/pt/LC_MESSAGES/django.mo differ diff --git a/server/src/uds/locale/pt/LC_MESSAGES/django.po b/server/src/uds/locale/pt/LC_MESSAGES/django.po index 036d5dff4..e5b1e8f51 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/django.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:20+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,23 +18,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: REST/methods/authenticators.py:73 +#: REST/methods/authenticators.py:80 msgid "Current authenticators" msgstr "Autenticadores atuais" -#: REST/methods/authenticators.py:75 REST/methods/networks.py:68 +#: REST/methods/authenticators.py:82 REST/methods/networks.py:68 #: REST/methods/osmanagers.py:71 REST/methods/providers.py:69 #: REST/methods/transports.py:71 REST/methods/users.py:77 msgid "Name" msgstr "Nome" -#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72 +#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72 #: REST/methods/providers.py:70 REST/methods/transports.py:72 #: REST/methods/users.py:78 msgid "Comments" msgstr "Comentários" -#: REST/methods/authenticators.py:77 +#: REST/methods/authenticators.py:84 msgid "Users" msgstr "Usuários" @@ -90,14 +90,263 @@ msgstr "Estado" msgid "Last access" msgstr "Último acesso" -#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422 +#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422 msgid "Forbidden" msgstr "Proibido" -#: admin/views.py:69 +#: admin/views.py:70 msgid "requested a template that do not exists" msgstr "solicitado um modelo que não existe" +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +#: auths/EDirectory_enterprise/Authenticator.py:60 +#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +#: services/OVirt/OVirtProvider.py:92 +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "Host" +msgstr "Host" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:29 +msgid "Active Directory Server IP or Hostname" +msgstr "Active Directory Server IP ou nome do host" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "Use SSL" +msgstr "Uso SSL" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:30 +msgid "If checked, will use a ssl connection to Active Directory" +msgstr "Se marcada, usará uma conexão ssl para o Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility" +msgstr "Compatibilidade" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:31 +msgid "Compatibility of AD connection (Usually windows 2000 and later)" +msgstr "Compatibilidade de conexão AD (geralmente windows 2000 e posterior)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 +msgid "Ldap User" +msgstr "Usuário LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:33 +msgid "" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" +msgstr "" +"Nome de usuário com privilégios de leitura da base selecionada (uso USER@DOMAIN.Formulário de DOM " +"para isso)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/ActiveDirectory_enterprise/Authenticator.py:52 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 +#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 +#: core/auths/BaseAuthenticator.py:136 +#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 +#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 +#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70 +msgid "Password" +msgstr "Senha" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:34 +#: auths/EDirectory_enterprise/Authenticator.py:64 +#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 +msgid "Password of the ldap user" +msgstr "Senha do usuário ldap" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +#: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 +msgid "Timeout" +msgstr "Tempo limite" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:35 +#: auths/EDirectory_enterprise/Authenticator.py:65 +#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 +msgid "Timeout in seconds of connection to LDAP" +msgstr "Tempo limite em segundos de conexão para LDAP" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:37 +msgid "Active Directory Authenticator" +msgstr "Autenticador do Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:39 +msgid "Authenticate against Active Directory" +msgstr "Autenticar no Active Directory" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:48 +#: auths/EDirectory_enterprise/Authenticator.py:77 +#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +#: services/OVirt/OVirtProvider.py:93 +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 +#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 +msgid "Username" +msgstr "Nome de usuário" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:50 +#: auths/EDirectory_enterprise/Authenticator.py:79 +#: auths/RegexLdap/Authenticator.py:74 auths/SAML_enterprise/SAML.py:114 +#: auths/SimpleLDAP/Authenticator.py:75 +msgid "Group" +msgstr "Grupo" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:67 +#: auths/ActiveDirectory_enterprise/Authenticator.py:442 +msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" +msgstr "Deve especificar o nome de usuário na forma USERNAME@DOMAIN.DOM" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:164 +#: auths/EDirectory_enterprise/Authenticator.py:123 +#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 +msgid "Ldap connection error: " +msgstr "Erro de conexão LDAP: " + +#: auths/ActiveDirectory_enterprise/Authenticator.py:344 +#: auths/ActiveDirectory_enterprise/Authenticator.py:390 +#: auths/EDirectory_enterprise/Authenticator.py:243 +#: auths/EDirectory_enterprise/Authenticator.py:286 +#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 +#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 +msgid "Username not found" +msgstr "Nome de usuário não encontrado" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:377 +#: auths/SimpleLDAP/Authenticator.py:302 +msgid "Group not found" +msgstr "Grupo não encontrado" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:410 +#: auths/ActiveDirectory_enterprise/Authenticator.py:428 +#: auths/EDirectory_enterprise/Authenticator.py:303 +#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 +#: auths/SimpleLDAP/Authenticator.py:342 +msgid "Too many results, be more specific" +msgstr "Muitos resultados, seja mais específico" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:451 +msgid "Domain seems to be incorrect, please check it" +msgstr "Domínio parece ser incorreta, por favor verifique-" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:456 +msgid "Ldap does not seem an Active Directory (do not have user objects)" +msgstr "Não parece um Active Directory LDAP (não têm objetos de usuário)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:464 +msgid "Ldap does not seem an Active Directory (no not have group objects)" +msgstr "Não parece um Active Directory LDAP (não não têm objetos de grupo)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:472 +msgid "" +"Ldap does not seem an Active Directory (do not have any user nor groups)" +msgstr "" +"Não parece um Active Directory LDAP (não tem nenhum usuário ou grupos)" + +#: auths/ActiveDirectory_enterprise/Authenticator.py:477 +#: auths/EDirectory_enterprise/Authenticator.py:358 +#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 +msgid "Connection params seem correct, test was succesfully executed" +msgstr "Conexão params parecer corretas, teste foi com êxito executado" + +#: auths/EDirectory_enterprise/Authenticator.py:60 +msgid "EDirectory Server IP or Hostname" +msgstr "EDirectory Server IP ou nome do host" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "Port" +msgstr "Porto" + +#: auths/EDirectory_enterprise/Authenticator.py:61 +#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 +msgid "Ldap port (389 for non ssl, 636 for ssl normally" +msgstr "Porta LDAP (389 para não ssl, 636 para ssl normalmente" + +#: auths/EDirectory_enterprise/Authenticator.py:62 +#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 +msgid "" +"If checked, will use a ssl connection to ldap (if port is 389, will use in " +"fact port 636)" +msgstr "" +"Se marcada, usará uma conexão ssl para ldap (se a porta é 389, usar em porta " +"de fato 636)" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Admin user" +msgstr "Usuário admin" + +#: auths/EDirectory_enterprise/Authenticator.py:63 +msgid "Username with read privileges on the eDirectory" +msgstr "Nome de usuário com privilégios de leitura sobre o eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:67 +msgid "eDirectory Authenticator" +msgstr "eDirectory autenticador" + +#: auths/EDirectory_enterprise/Authenticator.py:69 +msgid "Authenticate against eDirectory" +msgstr "Autenticar no eDirectory" + +#: auths/EDirectory_enterprise/Authenticator.py:323 +#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 +msgid "Ldap search base is incorrect" +msgstr "Base de pesquisa LDAP está incorreta" + +#: auths/EDirectory_enterprise/Authenticator.py:328 +#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 +msgid "Ldap user class seems to be incorrect (no user found by that class)" +msgstr "" +"Classe de usuário LDAP parece ser incorreto (nenhum usuário encontrado por " +"essa classe)" + +#: auths/EDirectory_enterprise/Authenticator.py:336 +#: auths/SimpleLDAP/Authenticator.py:384 +msgid "" +"Ldap user id attribute seems to be incorrect (no user found by that " +"attribute)" +msgstr "" +"Atributo de id de usuário LDAP parece ser incorreto (nenhum usuário " +"encontrado por isso atributo)" + +#: auths/EDirectory_enterprise/Authenticator.py:344 +msgid "Expected group attribute " +msgstr "Atributo esperado grupo " + +#: auths/EDirectory_enterprise/Authenticator.py:353 +msgid "" +"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" +msgstr "" +"LDAP usuário classe ou usuário id attr provavelmente está errado (Ldap é do eDirectory?)" + #: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50 msgid "IP Authenticator" msgstr "Autenticador IP" @@ -143,69 +392,14 @@ msgstr "Se marcada, o host será invertida dns" msgid "Internal structures seems ok" msgstr "Estruturas internas parece ok" -#: auths/RegexLdap/Authenticator.py:49 auths/SimpleLDAP/Authenticator.py:49 -#: services/OVirt/OVirtProvider.py:92 -msgid "Host" -msgstr "Host" - #: auths/RegexLdap/Authenticator.py:49 msgid "Ldap Server Host" msgstr "Host do servidor LDAP" -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Port" -msgstr "Porto" - -#: auths/RegexLdap/Authenticator.py:50 auths/SimpleLDAP/Authenticator.py:50 -msgid "Ldap port (389 for non ssl, 636 for ssl normally" -msgstr "Porta LDAP (389 para não ssl, 636 para ssl normalmente" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "Use SSL" -msgstr "Uso SSL" - -#: auths/RegexLdap/Authenticator.py:51 auths/SimpleLDAP/Authenticator.py:51 -msgid "" -"If checked, will use a ssl connection to ldap (if port is 389, will use in " -"fact port 636)" -msgstr "" -"Se marcada, usará uma conexão ssl para ldap (se a porta é 389, usar em porta " -"de fato 636)" - -#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 -msgid "Ldap User" -msgstr "Usuário LDAP" - #: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52 msgid "Username with read privileges on the base selected" msgstr "Nome de usuário com privilégios de leitura da base selecionada" -#: auths/RegexLdap/Authenticator.py:53 auths/RegexLdap/Authenticator.py:76 -#: auths/SimpleLDAP/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:77 -#: core/auths/BaseAuthenticator.py:136 -#: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 -#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30 -#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131 -#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 -#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 -#: web/forms/LoginForm.py:70 -msgid "Password" -msgstr "Senha" - -#: auths/RegexLdap/Authenticator.py:53 auths/SimpleLDAP/Authenticator.py:53 -msgid "Password of the ldap user" -msgstr "Senha do usuário ldap" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -#: services/OVirt/OVirtProvider.py:95 -msgid "Timeout" -msgstr "Tempo limite" - -#: auths/RegexLdap/Authenticator.py:54 auths/SimpleLDAP/Authenticator.py:54 -msgid "Timeout in seconds of connection to LDAP" -msgstr "Tempo limite em segundos de conexão para LDAP" - #: auths/RegexLdap/Authenticator.py:55 auths/SimpleLDAP/Authenticator.py:55 msgid "Base" msgstr "Base" @@ -256,42 +450,6 @@ msgstr "Autenticador de Regex LDAP" msgid "Regular Expressions LDAP authenticator" msgstr "Autenticador de LDAP de expressões regular" -#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73 -#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64 -#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66 -#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63 -#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69 -msgid "Username" -msgstr "Nome de usuário" - -#: auths/RegexLdap/Authenticator.py:74 auths/SimpleLDAP/Authenticator.py:75 -msgid "Group" -msgstr "Grupo" - -#: auths/RegexLdap/Authenticator.py:226 auths/SimpleLDAP/Authenticator.py:158 -msgid "Ldap connection error: " -msgstr "Erro de conexão LDAP: " - -#: auths/RegexLdap/Authenticator.py:303 auths/RegexLdap/Authenticator.py:346 -#: auths/SimpleLDAP/Authenticator.py:269 auths/SimpleLDAP/Authenticator.py:313 -msgid "Username not found" -msgstr "Nome de usuário não encontrado" - -#: auths/RegexLdap/Authenticator.py:367 auths/SimpleLDAP/Authenticator.py:328 -#: auths/SimpleLDAP/Authenticator.py:342 -msgid "Too many results, be more specific" -msgstr "Muitos resultados, seja mais específico" - -#: auths/RegexLdap/Authenticator.py:387 auths/SimpleLDAP/Authenticator.py:363 -msgid "Ldap search base is incorrect" -msgstr "Base de pesquisa LDAP está incorreta" - -#: auths/RegexLdap/Authenticator.py:392 auths/SimpleLDAP/Authenticator.py:368 -msgid "Ldap user class seems to be incorrect (no user found by that class)" -msgstr "" -"Classe de usuário LDAP parece ser incorreto (nenhum usuário encontrado por " -"essa classe)" - #: auths/RegexLdap/Authenticator.py:401 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " @@ -308,9 +466,116 @@ msgstr "" "Atributo de id de grupo LDAP parece ser incorreto (nenhum grupo encontrado " "por isso atributo)" -#: auths/RegexLdap/Authenticator.py:428 auths/SimpleLDAP/Authenticator.py:423 -msgid "Connection params seem correct, test was succesfully executed" -msgstr "Conexão params parecer corretas, teste foi com êxito executado" +#: auths/SAML_enterprise/SAML.py:80 +msgid "SAML Authenticator" +msgstr "Autenticador SAML" + +#: auths/SAML_enterprise/SAML.py:92 +msgid "SAML (v2.0) Authenticator" +msgstr "SAML (v 2.0) autenticador" + +#: auths/SAML_enterprise/SAML.py:111 templates/uds/internal_page.html:28 +msgid "User" +msgstr "Usuário" + +#: auths/SAML_enterprise/SAML.py:120 +msgid "Private key" +msgstr "Chave privada" + +#: auths/SAML_enterprise/SAML.py:121 +msgid "" +"Private key used for sign and encription, as generated in base 64 from " +"openssl" +msgstr "" +"A chave privada usada para sinal e encription, conforme gerado em base 64 de " +"OpenSSL" + +#: auths/SAML_enterprise/SAML.py:122 +msgid "Certificate" +msgstr "Certificado" + +#: auths/SAML_enterprise/SAML.py:123 +msgid "Server certificate (public), , as generated in base 64 from openssl" +msgstr "Certificado de servidor (público), como gerado em base 64 de openssl" + +#: auths/SAML_enterprise/SAML.py:124 +msgid "IDP Metadata" +msgstr "Metadados do IDP" + +#: auths/SAML_enterprise/SAML.py:125 +msgid "" +"You can enter here the URL or the IDP metadata or the metadata itself (xml)" +msgstr "" +"Você pode entrar aqui a URL ou os metadados do IDP ou os metadados em si (xml)" + +#: auths/SAML_enterprise/SAML.py:127 +msgid "Entity ID" +msgstr "ID da entidade" + +#: auths/SAML_enterprise/SAML.py:128 +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "ID do SP. Se deixado em branco, este será gerado automaticamente do servidor URL" + +#: auths/SAML_enterprise/SAML.py:130 +msgid "User name attrs" +msgstr "Auditoria de nome de usuário" + +#: auths/SAML_enterprise/SAML.py:131 +msgid "Fields from where to extract user name" +msgstr "Campos de onde extrair o nome de usuário" + +#: auths/SAML_enterprise/SAML.py:133 +msgid "Group name attrs" +msgstr "Grupo nome attrs" + +#: auths/SAML_enterprise/SAML.py:134 +msgid "Fields from where to extract the groups" +msgstr "Campos de onde extrair os grupos" + +#: auths/SAML_enterprise/SAML.py:136 +msgid "Real name attrs" +msgstr "Nome verdadeiro attrs" + +#: auths/SAML_enterprise/SAML.py:137 +msgid "Fields from where to extract the real name" +msgstr "Campos de onde extrair o verdadeiro nome" + +#: auths/SAML_enterprise/SAML.py:160 +msgid "" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"Certificado de servidor deve ser um válido PEM (certificados PEM começa com--" +"CERTIFICADO DE BEGIN--)" + +#: auths/SAML_enterprise/SAML.py:165 +msgid "Invalid server certificate. " +msgstr "Certificado de servidor inválido. " + +#: auths/SAML_enterprise/SAML.py:168 +msgid "" +"Private key should be a valid PEM (PEM private keys starts with -----BEGIN " +"RSA PRIVATE KEY-----" +msgstr "" +"A chave privada deve ser um válido PEM (PEM chaves privadas começa com---BEGIN " +"RSA PRIVATE KEY--" + +#: auths/SAML_enterprise/SAML.py:197 +#, python-brace-format +msgid "Can't fetch url {0}: {1}" +msgstr "Não pode buscar url {0}: {1}" + +#: auths/SAML_enterprise/SAML.py:208 +msgid " (obtained from URL)" +msgstr " (obtido da URL)" + +#: auths/SAML_enterprise/SAML.py:209 +msgid "XML do not seems valid for IDP Metadata " +msgstr "XML não parece válido para metadados do IDP " + +#: auths/SAML_enterprise/SAML.py:227 +msgid "Can't access idp metadata" +msgstr "Não é possível acessar os metadados do idp" #: auths/Sample/SampleAuth.py:71 msgid "Sample Authenticator" @@ -372,24 +637,12 @@ msgstr "Autenticador de SimpleLDAP" msgid "Simple LDAP authenticator" msgstr "Autenticador LDAP simples" -#: auths/SimpleLDAP/Authenticator.py:302 -msgid "Group not found" -msgstr "Grupo não encontrado" - #: auths/SimpleLDAP/Authenticator.py:376 msgid "Ldap group class seems to be incorrect (no group found by that class)" msgstr "" "Classe do grupo LDAP parece ser incorreto (nenhum grupo encontrado por essa " "classe)" -#: auths/SimpleLDAP/Authenticator.py:384 -msgid "" -"Ldap user id attribute seems to be incorrect (no user found by that " -"attribute)" -msgstr "" -"Atributo de id de usuário LDAP parece ser incorreto (nenhum usuário " -"encontrado por isso atributo)" - #: auths/SimpleLDAP/Authenticator.py:401 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " @@ -606,6 +859,66 @@ msgstr "Carga" msgid "Storage" msgstr "Armazenamento" +#: dispatchers/wyse_enterprise/views.py:111 +msgid "There are no authenticators available for login" +msgstr "Não há nenhum autenticadores disponível para login" + +#: dispatchers/wyse_enterprise/views.py:124 +#, python-brace-format +msgid "The authenticator {0} is not usable" +msgstr "O autenticador {0} não é utilizável" + +#: dispatchers/wyse_enterprise/views.py:131 xmlrpc/auths/AdminAuth.py:168 +msgid "Invalid credentials" +msgstr "Credenciais inválidas" + +#: dispatchers/wyse_enterprise/views.py:139 +#, python-brace-format +msgid "The domain {0} does not exists" +msgstr "O domínio {0} não existe" + +#: dispatchers/wyse_enterprise/views.py:200 +msgid "No services available" +msgstr "Nenhum serviço disponível" + +#: dispatchers/wyse_enterprise/views.py:215 +#: dispatchers/wyse_enterprise/views.py:309 +msgid "Invalid session" +msgstr "Sessão inválida" + +#: dispatchers/wyse_enterprise/views.py:219 +#: dispatchers/wyse_enterprise/views.py:313 +msgid "Invalid authorization" +msgstr "Autorização inválida" + +#: dispatchers/wyse_enterprise/views.py:230 +#: dispatchers/wyse_enterprise/views.py:319 +msgid "Invalid request" +msgstr "Pedido inválido" + +#: dispatchers/wyse_enterprise/views.py:233 +#: dispatchers/wyse_enterprise/views.py:322 +msgid "Invalid credentials used" +msgstr "Inválido credenciais usadas" + +#: dispatchers/wyse_enterprise/views.py:254 +#: dispatchers/wyse_enterprise/views.py:257 web/errors.py:62 +msgid "Service not found" +msgstr "Serviço não encontrado" + +#: dispatchers/wyse_enterprise/views.py:271 web/errors.py:61 +msgid "Transport not found" +msgstr "Transporte não encontrado" + +#: dispatchers/wyse_enterprise/views.py:275 +#: dispatchers/wyse_enterprise/views.py:282 +#: dispatchers/wyse_enterprise/views.py:287 +#: templates/uds/service_not_ready.html:6 +msgid "Service not ready at this moment. Please, try again in a while." +msgstr "" +"Serviço não está pronto, neste momento. Por favor, tente novamente em " +"instantes." + #: osmanagers/LinuxOsManager/LinuxOsManager.py:45 msgid "Linux OS Manager" msgstr "Gerente de sistema operacional Linux" @@ -657,6 +970,8 @@ msgstr "" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:32 #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "Domain" msgstr "Domínio" @@ -807,6 +1122,205 @@ msgstr "" "Ator de UDS para máquinas windows (importante!!!! Requer o .net framework " "3.5 SP1)" +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:51 +msgid "HyperV Cluster Linked Clone (Experimental)" +msgstr "Cluster Hyper-v ligada Clone (Experimental)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 +#: services/HyperV_enterprise/HyperVLinkedService.py:58 +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "Hiper serviços baseados em modelos e discos diferenciais (experimentais)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 +#: services/HyperV_enterprise/HyperVLinkedService.py:75 +#: services/OVirt/OVirtLinkedService.py:77 +#: services/Vmware_enterprise/VCLinkedCloneService.py:72 +msgid "Number of desired machines to keep running waiting for a user" +msgstr "" +"Número de máquinas desejados para continuar funcionando à espera de um " +"usuário" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 +#: services/HyperV_enterprise/HyperVLinkedService.py:81 +#: services/OVirt/OVirtLinkedService.py:83 +#: services/Vmware_enterprise/VCLinkedCloneService.py:74 +msgid "Number of desired machines to keep suspended waiting for use" +msgstr "Número de máquinas desejados manter suspenso à espera de uso" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base Machine" +msgstr "Máquina base" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 +#: services/HyperV_enterprise/HyperVLinkedService.py:97 +#: services/OVirt/OVirtLinkedService.py:99 +msgid "Service base machine" +msgstr "Máquina base de serviço" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:95 +#: services/HyperV_enterprise/HyperVLinkedService.py:98 +#: services/Vmware_enterprise/VCLinkedCloneService.py:38 +msgid "Network" +msgstr "Rede" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:96 +#: services/HyperV_enterprise/HyperVLinkedService.py:99 +#: services/Vmware_enterprise/VCLinkedCloneService.py:39 +msgid "" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Se mais de 1 relação encontra-se na máquina, utilize um nesta rede como principal" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 +#: services/HyperV_enterprise/HyperVLinkedService.py:101 +#: services/OVirt/OVirtLinkedService.py:112 +#: services/Vmware_enterprise/VCLinkedCloneService.py:51 +msgid "Memory (Mb)" +msgstr "Memória (Mb)" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:99 +#: services/HyperV_enterprise/HyperVLinkedService.py:102 +#: services/Vmware_enterprise/VCLinkedCloneService.py:52 +msgid "Memory for machines deployed from this service" +msgstr "Memória para máquinas implantado a partir deste serviço" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 +#: services/HyperV_enterprise/HyperVLinkedService.py:103 +msgid "Datastore Drives" +msgstr "Unidades de armazenamento de dados" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 +#: services/HyperV_enterprise/HyperVLinkedService.py:104 +msgid "Datastores where to put incrementals & publications" +msgstr "Armazenamentos de dados onde colocar incrementais & publicações" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/OVirt/OVirtLinkedService.py:118 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Machine Names" +msgstr "Nomes de máquina" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 +#: services/HyperV_enterprise/HyperVLinkedService.py:105 +#: services/Vmware_enterprise/VCLinkedCloneService.py:55 +msgid "Base name for clones from this machine" +msgstr "Nome de base para clones desta máquina" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:103 +#: services/HyperV_enterprise/HyperVLinkedService.py:106 +#: services/OVirt/OVirtLinkedService.py:119 +#: services/Vmware_enterprise/VCLinkedCloneService.py:56 +msgid "Name Length" +msgstr "Comprimento do nome do" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:104 +#: services/HyperV_enterprise/HyperVLinkedService.py:107 +#: services/OVirt/OVirtLinkedService.py:120 +#: services/Vmware_enterprise/VCLinkedCloneService.py:57 +msgid "Length of numeric part for the names of this machines (betwen 3 and 6" +msgstr "" +"Comprimento da parte numérica para os nomes desta máquinas (entre 3 e 6" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 +#: services/HyperV_enterprise/HyperVLinkedService.py:119 +#: services/OVirt/OVirtLinkedService.py:143 +#: services/Vmware_enterprise/VCLinkedCloneService.py:95 +msgid "The length of basename plus length must not be greater than 15" +msgstr "O comprimento de basename mais comprimento não deve ser superior a 15" + +#: services/HyperV_enterprise/HyperVClusterLinkedService.py:118 +#: services/HyperV_enterprise/HyperVLinkedService.py:121 +#: services/OVirt/OVirtLinkedService.py:145 +#: services/Vmware_enterprise/VCLinkedCloneService.py:97 +msgid "The machine name can't be only numbers" +msgstr "O nome da máquina não pode ser apenas números" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:64 +msgid "HyperV Cluster Provider" +msgstr "Provedor de Cluster Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:68 +msgid "HyperV Cluster Service Provider" +msgstr "Provedor de serviço de Cluster Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:89 +#: services/HyperV_enterprise/HyperVProvider.py:81 +msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" +msgstr "Hyper-v Server IP ou nome do host (habilite o primeiro acesso do WS-Management)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:90 +#: services/HyperV_enterprise/HyperVProvider.py:82 +msgid "WSMan Port (normally 5985)" +msgstr "WSMan Porto (normalmente 5985)" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:91 +#: services/HyperV_enterprise/HyperVProvider.py:83 +msgid "User with valid privileges on HyperV Server" +msgstr "Usuário com privilégios válidos no servidor Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:92 +#: services/HyperV_enterprise/HyperVProvider.py:84 +msgid "Password of the user of HyperV" +msgstr "Senha do usuário do Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:93 +#: services/HyperV_enterprise/HyperVProvider.py:85 +msgid "Timeout in seconds of connection to HyperV" +msgstr "Tempo limite em segundos de conexão com o Hyper-v" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:94 +#: services/HyperV_enterprise/HyperVProvider.py:86 +#: services/OVirt/OVirtProvider.py:96 +#: services/Vmware_enterprise/ServiceProviderVC.py:33 +msgid "Macs range" +msgstr "Gama de Macs" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:95 +#: services/HyperV_enterprise/HyperVProvider.py:87 +#: services/OVirt/OVirtProvider.py:97 +msgid "Range of valids macs for created machines" +msgstr "Gama de macs iríamos procurar para máquinas criadas" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:132 +msgid "The selected server is not a cluster" +msgstr "O servidor selecionado não é um cluster" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:299 +#: services/HyperV_enterprise/HyperVProvider.py:249 +#: services/OVirt/OVirtProvider.py:399 +msgid "Connection test successful" +msgstr "Teste de conexão bem sucedida" + +#: services/HyperV_enterprise/HyperVClusterProvider.py:300 +#: services/HyperV_enterprise/HyperVProvider.py:250 +#: services/OVirt/OVirtProvider.py:400 +#: services/Vmware_enterprise/ServiceProviderVC.py:120 +msgid "Connection failed. Check connection params" +msgstr "Falhado na conexão. Verifique a conexão params" + +#: services/HyperV_enterprise/HyperVClusterPublication.py:97 +#: services/HyperV_enterprise/HyperVPublication.py:96 +#: services/OVirt/OVirtPublication.py:85 +#, python-brace-format +msgid "UDS pub for {0} at {1}" +msgstr "Pub UDS por {0} em {1}" + +#: services/HyperV_enterprise/HyperVLinkedService.py:54 +msgid "HyperV Linked Clone (Experimental)" +msgstr "HyperV vinculado Clone (Experimental)" + +#: services/HyperV_enterprise/HyperVProvider.py:62 +msgid "HyperV Platform Provider" +msgstr "Provedor de plataforma do Hyper-v" + +#: services/HyperV_enterprise/HyperVProvider.py:66 +msgid "HyperV platform service provider" +msgstr "Provedor de serviços de plataforma do Hyper-v" + #: services/OVirt/OVirtLinkedService.py:56 msgid "oVirt Linked Clone (Experimental)" msgstr "oVirt Clone Linked (Experimental)" @@ -815,24 +1329,6 @@ msgstr "oVirt Clone Linked (Experimental)" msgid "oVirt Services based on templates and COW (experimental)" msgstr "oVirt serviços baseados em modelos e vaca (experimental)" -#: services/OVirt/OVirtLinkedService.py:77 -msgid "Number of desired machines to keep running waiting for a user" -msgstr "" -"Número de máquinas desejados para continuar funcionando à espera de um " -"usuário" - -#: services/OVirt/OVirtLinkedService.py:83 -msgid "Number of desired machines to keep suspended waiting for use" -msgstr "Número de máquinas desejados manter suspenso à espera de uso" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Base Machine" -msgstr "Máquina base" - -#: services/OVirt/OVirtLinkedService.py:99 -msgid "Service base machine" -msgstr "Máquina base de serviço" - #: services/OVirt/OVirtLinkedService.py:100 msgid "Cluster" msgstr "Cluster" @@ -850,10 +1346,6 @@ msgid "Datastore domain where to publish and put incrementals" msgstr "" "Armazenamento de dados domínio onde publicar e colocar backups incrementais" -#: services/OVirt/OVirtLinkedService.py:112 -msgid "Memory (Mb)" -msgstr "Memória (Mb)" - #: services/OVirt/OVirtLinkedService.py:113 msgid "Memory assigned to machines" msgstr "Memória atribuída às máquinas" @@ -866,19 +1358,6 @@ msgstr "Garantidas (Mb) de memória" msgid "Physical memory guaranteed to machines" msgstr "Memória física a garantia de máquinas" -#: services/OVirt/OVirtLinkedService.py:118 -msgid "Machine Names" -msgstr "Nomes de máquina" - -#: services/OVirt/OVirtLinkedService.py:119 -msgid "Name Length" -msgstr "Comprimento do nome do" - -#: services/OVirt/OVirtLinkedService.py:120 -msgid "Length of numeric part for the names of this machines (betwen 3 and 6" -msgstr "" -"Comprimento da parte numérica para os nomes desta máquinas (entre 3 e 6" - #: services/OVirt/OVirtLinkedService.py:122 msgid "Display" msgstr "Exposição" @@ -887,14 +1366,6 @@ msgstr "Exposição" msgid "Display type (only for administration pourposses)" msgstr "Tipo de exibição (somente para pourposses de administração)" -#: services/OVirt/OVirtLinkedService.py:143 -msgid "The length of basename plus length must not be greater than 15" -msgstr "O comprimento de basename mais comprimento não deve ser superior a 15" - -#: services/OVirt/OVirtLinkedService.py:145 -msgid "The machine name can't be only numbers" -msgstr "O nome da máquina não pode ser apenas números" - #: services/OVirt/OVirtProvider.py:73 msgid "oVirt Platform Provider" msgstr "oVirt provedor de plataforma" @@ -917,30 +1388,10 @@ msgid "Password of the user of oVirt" msgstr "Senha do usuário do oVirt" #: services/OVirt/OVirtProvider.py:95 +#: services/Vmware_enterprise/ServiceProviderVC.py:32 msgid "Timeout in seconds of connection to VC" msgstr "Tempo limite em segundos de conexão para VC" -#: services/OVirt/OVirtProvider.py:96 -msgid "Macs range" -msgstr "Gama de Macs" - -#: services/OVirt/OVirtProvider.py:97 -msgid "Range of valids macs for created machines" -msgstr "Gama de macs iríamos procurar para máquinas criadas" - -#: services/OVirt/OVirtProvider.py:399 -msgid "Connection test successful" -msgstr "Teste de conexão bem sucedida" - -#: services/OVirt/OVirtProvider.py:400 -msgid "Connection failed. Check connection params" -msgstr "Falhado na conexão. Verifique a conexão params" - -#: services/OVirt/OVirtPublication.py:85 -#, python-brace-format -msgid "UDS pub for {0} at {1}" -msgstr "Pub UDS por {0} em {1}" - #: services/PhysicalMachines/IPMachineDeployed.py:57 msgid "IP " msgstr "IP " @@ -1057,6 +1508,121 @@ msgstr "Cache L2 para elementos fictícios" msgid "List of names" msgstr "Lista de nomes" +#: services/Vmware_enterprise/Helpers.py:72 +msgid "Local" +msgstr "Local" + +#: services/Vmware_enterprise/Helpers.py:74 +msgid "Remote" +msgstr "Remoto" + +#: services/Vmware_enterprise/PublicationVC.py:37 +msgid "Publication" +msgstr "Publicação" + +#: services/Vmware_enterprise/PublicationVC.py:38 +#, python-brace-format +msgid "UDS Publication for {0} created at {1}" +msgstr "Publicação de UDS para {0} criada em {1}" + +#: services/Vmware_enterprise/ServiceProviderVC.py:28 +msgid "VMWare VC Server IP or Hostname" +msgstr "VMWare Server VC IP ou nome do host" + +#: services/Vmware_enterprise/ServiceProviderVC.py:29 +msgid "VMWare VC Server Port (usually 443)" +msgstr "Porta do servidor VMWare VC (geralmente 443)" + +#: services/Vmware_enterprise/ServiceProviderVC.py:30 +msgid "User with valid privileges on VC" +msgstr "Usuário com privilégios válidos em VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:31 +msgid "Password of the user of the VC" +msgstr "Senha do usuário do VC" + +#: services/Vmware_enterprise/ServiceProviderVC.py:34 +msgid "" +"Range of valids macs for created machines. Must be inside " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gama de macs iríamos procurar para máquinas criadas. Deve estar lá dentro " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" + +#: services/Vmware_enterprise/ServiceProviderVC.py:39 +msgid "VMWare Virtual Center Provider" +msgstr "VMWare Virtual Center provedor" + +#: services/Vmware_enterprise/ServiceProviderVC.py:41 +msgid "Provides connection to Virtual Center Services" +msgstr "Fornece a conexão ao Virtual Center serviços" + +#: services/Vmware_enterprise/ServiceProviderVC.py:110 +msgid "Error testing connection" +msgstr "Ligação de teste de erro" + +#: services/Vmware_enterprise/ServiceProviderVC.py:113 +msgid "VmwareVC Provider: " +msgstr "Provedor de VmwareVC: " + +#: services/Vmware_enterprise/ServiceProviderVC.py:119 +msgid "Connection params ok" +msgstr "Conexão params ok" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:30 +msgid "Datacenter" +msgstr "Datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:36 +msgid "Datacenter containing base machine" +msgstr "Máquina de base contendo datacenter" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Pub. Resource Pool" +msgstr "Pub. Pool de recursos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:40 +msgid "Resource Pool where deploy clones" +msgstr "Pool de recursos onde implantar clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Clones Folder" +msgstr "Pasta de clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:41 +msgid "Folder where deploy clones" +msgstr "Pasta onde implantar clones" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:42 +msgid "Resource Pool" +msgstr "Pool de recursos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:48 +msgid "Resource Pool containing base machine" +msgstr "Máquina contendo base Pool de recursos" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:50 +msgid "Base machine for this service" +msgstr "Máquina de base para este serviço" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:53 +msgid "Datastores" +msgstr "Armazenamentos de dados" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:54 +msgid "Datastores where to put incrementals" +msgstr "Armazenamentos de dados onde colocar backups incrementais" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:64 +msgid "VMWare Linked clone base" +msgstr "Base de clones vinculados da VMWare" + +#: services/Vmware_enterprise/VCLinkedCloneService.py:66 +msgid "" +"This service provides access to Linked Clones machines on a Virtual Center" +msgstr "" +"Este serviço fornece acesso a máquinas de Clones vinculados em um Virtual Center" + #: templates/404.html:3 templates/500.html:3 msgid "Page not found" msgstr "Página não encontrada" @@ -1117,10 +1683,6 @@ msgstr "IP" msgid "Transports" msgstr "Transportes" -#: templates/uds/internal_page.html:28 -msgid "User" -msgstr "Usuário" - #: templates/uds/internal_page.html:34 templates/uds/prefs.html:12 #: templates/uds/html5/snippets/navbar.html:39 msgid "Preferences" @@ -1158,12 +1720,6 @@ msgstr "Preferências do usuário UDS" msgid "Save Preferences" msgstr "Salvar preferências" -#: templates/uds/service_not_ready.html:6 -msgid "Service not ready at this moment. Please, try again in a while." -msgstr "" -"Serviço não está pronto, neste momento. Por favor, tente novamente em " -"instantes." - #: templates/uds/admin/snippets/navbar.html:6 #: templates/uds/html5/snippets/navbar.html:6 msgid "toggle navigation" @@ -1179,6 +1735,7 @@ msgid "Authenticators" msgstr "Autenticadores" #: templates/uds/admin/snippets/navbar.html:21 +#: templates/uds/admin/tmpl/connectivity.html:4 msgid "Connectivity" msgstr "Conectividade" @@ -1190,11 +1747,11 @@ msgstr "Serviços implantados" msgid "Configuration" msgstr "Configuração" -#: templates/uds/admin/snippets/navbar.html:56 +#: templates/uds/admin/snippets/navbar.html:57 msgid "Exit dashboard" msgstr "Painel de saída" -#: templates/uds/admin/snippets/navbar.html:57 +#: templates/uds/admin/snippets/navbar.html:58 #: templates/uds/html5/snippets/navbar.html:47 msgid "logout" msgstr "logout" @@ -1203,6 +1760,7 @@ msgstr "logout" msgid "administration of authenticators" msgstr "Administração de autenticadores" +#: templates/uds/admin/tmpl/connectivity.html:4 #: templates/uds/admin/tmpl/dashboard.html:4 msgid "overview" msgstr "Visão geral" @@ -1337,31 +1895,45 @@ msgstr "" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "Empty creds" msgstr "Creds vazio" #: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60 #: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58 -#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65 +#: transports/RDP/TSRDPTransport.py:62 +#: transports/RGS-enterprise/RGSTransport.py:41 +#: transports/RGS-enterprise/TRGSTransport.py:46 +#: transports/TSNX/TSNXTransport.py:65 msgid "If checked, the credentials used to connect will be emtpy" msgstr "Se marcada, as credenciais usadas para se conectar será vazio" #: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61 #: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59 -#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66 +#: transports/RDP/TSRDPTransport.py:63 +#: transports/RGS-enterprise/RGSTransport.py:42 +#: transports/RGS-enterprise/TRGSTransport.py:47 +#: transports/TSNX/TSNXTransport.py:66 msgid "If not empty, this username will be always used as credential" msgstr "" "Se não for vazio, este nome de utilizador será sempre usado como credencial" #: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62 #: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60 -#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67 +#: transports/RDP/TSRDPTransport.py:64 +#: transports/RGS-enterprise/RGSTransport.py:43 +#: transports/RGS-enterprise/TRGSTransport.py:48 +#: transports/TSNX/TSNXTransport.py:67 msgid "If not empty, this password will be always used as credential" msgstr "Se não for vazio, essa senha será sempre usada como credencial" #: transports/HTML5RDP/HTML5RDP.py:66 transports/RDP/RDPTransport.py:61 #: transports/RDP/TSRDPTransport.py:65 +#: transports/RGS-enterprise/RGSTransport.py:44 +#: transports/RGS-enterprise/TRGSTransport.py:49 msgid "" "If not empty, this domain will be always used as credential (used as DOMAIN" "\\user)" @@ -1468,11 +2040,13 @@ msgid "NX Transport for tunneled connection" msgstr "Transporte de NX para ligação em túnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "Tunnel server" msgstr "Servidor de túnel" #: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:43 #: transports/TSNX/TSNXTransport.py:62 msgid "" "IP or Hostname of tunnel server send to client device (\"public\" ip) and " @@ -1482,11 +2056,13 @@ msgstr "" "\"público\") e Port. (usar formato HOST: PORT)" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "Tunnel host check" msgstr "Seleção de anfitrião do túnel" #: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:44 #: transports/TSNX/TSNXTransport.py:63 msgid "" "If not empty, this server will be used to check if service is running before " @@ -1496,6 +2072,7 @@ msgstr "" "sendo executado antes atribuí-la ao usuário. (usar formato HOST: PORT)" #: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75 +#: transports/RGS-enterprise/TRGSTransport.py:71 #: transports/TSNX/TSNXTransport.py:103 msgid "Must use HOST:PORT in Tunnel Server Field" msgstr "Deve usar HOST: PORT no campo servidor de túnel" @@ -1597,7 +2174,7 @@ msgstr "Protocolo de área de trabalho remoto" msgid "In order to use this service, you should first install CoRD." msgstr "Para utilizar este serviço, você deve primeiro instalar o cabo." -#: transports/RDP/web.py:85 +#: transports/RDP/web.py:85 transports/RGS-enterprise/web.py:83 msgid "You can obtain it from" msgstr "Você pode obtê-lo de" @@ -1605,18 +2182,122 @@ msgstr "Você pode obtê-lo de" msgid "CoRD Website" msgstr "Site medula" +#: transports/RGS-enterprise/RGSTransport.py:34 +msgid "RGS Transport (direct)" +msgstr "RGS transporte (direto)" + +#: transports/RGS-enterprise/RGSTransport.py:36 +msgid "RGS Transport for direct connection" +msgstr "RGS transporte para conexão direta" + +#: transports/RGS-enterprise/RGSTransport.py:45 +#: transports/RGS-enterprise/TRGSTransport.py:50 +msgid "Image quality" +msgstr "Qualidade de imagem" + +#: transports/RGS-enterprise/RGSTransport.py:46 +#: transports/RGS-enterprise/TRGSTransport.py:51 +msgid "Quality of image codec (0-100)" +msgstr "Qualidade de codec de imagem (0-100)" + +#: transports/RGS-enterprise/RGSTransport.py:47 +#: transports/RGS-enterprise/TRGSTransport.py:52 +msgid "Adjustable Quality" +msgstr "Qualidade ajustável" + +#: transports/RGS-enterprise/RGSTransport.py:48 +#: transports/RGS-enterprise/TRGSTransport.py:53 +msgid "If checked, the image quality will be adjustable with bandwidth" +msgstr "Se marcada, a qualidade da imagem será ajustável com largura de banda" + +#: transports/RGS-enterprise/RGSTransport.py:49 +#: transports/RGS-enterprise/TRGSTransport.py:54 +msgid "Min. Adjustable Quality" +msgstr "Min. qualidade ajustável" + +#: transports/RGS-enterprise/RGSTransport.py:50 +#: transports/RGS-enterprise/TRGSTransport.py:55 +msgid "" +"The lowest image quality applied to images to maintain the minimum update " +"rate." +msgstr "" +"A qualidade de imagem mais baixa aplicada às imagens para manter a atualização mínima " +"taxa." + +#: transports/RGS-enterprise/RGSTransport.py:51 +#: transports/RGS-enterprise/TRGSTransport.py:56 +msgid "Adjustable Frame Rate" +msgstr "Taxa de Frame ajustável" + +#: transports/RGS-enterprise/RGSTransport.py:52 +#: transports/RGS-enterprise/TRGSTransport.py:57 +msgid "Update rate threshold to begin adjusting image quality" +msgstr "Limite de taxa de atualização para começar a ajustar a qualidade da imagem" + +#: transports/RGS-enterprise/RGSTransport.py:53 +#: transports/RGS-enterprise/TRGSTransport.py:58 +msgid "Match Local Resolution" +msgstr "Resolução Local de partida" + +#: transports/RGS-enterprise/RGSTransport.py:54 +#: transports/RGS-enterprise/TRGSTransport.py:59 +msgid "" +"Change the Sender's resolution to match the Receiver's resolution when " +"connecting" +msgstr "" +"Alterar a resolução do remetente para coincidir com a resolução do receptor quando " +"Conectando-se" + +#: transports/RGS-enterprise/RGSTransport.py:55 +#: transports/RGS-enterprise/TRGSTransport.py:60 +msgid "Redirect USB" +msgstr "Redirecionar USB" + +#: transports/RGS-enterprise/RGSTransport.py:56 +#: transports/RGS-enterprise/TRGSTransport.py:61 +msgid "If checked, the USB will be redirected." +msgstr "Se marcada, o USB será redirecionado." + +#: transports/RGS-enterprise/RGSTransport.py:57 +#: transports/RGS-enterprise/TRGSTransport.py:62 +msgid "Redirect Audio" +msgstr "Redirecionamento de áudio" + +#: transports/RGS-enterprise/RGSTransport.py:58 +#: transports/RGS-enterprise/TRGSTransport.py:63 +msgid "If checked, the Audio will be redirected." +msgstr "Se marcada, o áudio será redirecionado." + +#: transports/RGS-enterprise/RGSTransport.py:59 +#: transports/RGS-enterprise/TRGSTransport.py:64 +msgid "Redirect Mic" +msgstr "Redirecionar Mic" + +#: transports/RGS-enterprise/RGSTransport.py:60 +#: transports/RGS-enterprise/TRGSTransport.py:65 +msgid "If checked, the Mic will be redirected." +msgstr "Se marcada, o Mic será redirecionado." + +#: transports/RGS-enterprise/TRGSTransport.py:36 +msgid "RGS Transport (tunneled)" +msgstr "RGS transporte (um túnel)" + +#: transports/RGS-enterprise/TRGSTransport.py:38 +msgid "RGS Transport for tunneled connection" +msgstr "RGS transporte para ligação em túnel" + +#: transports/RGS-enterprise/web.py:82 +msgid "In order to use this service, you should first install RGS Receiver." +msgstr "Para utilizar este serviço, você deve primeiro instalar receptor RGS." + +#: transports/RGS-enterprise/web.py:83 +msgid "HP Website" +msgstr "Site da HP" + #: web/errors.py:60 msgid "Unknown error" msgstr "Erro desconhecido" -#: web/errors.py:61 -msgid "Transport not found" -msgstr "Transporte não encontrado" - -#: web/errors.py:62 -msgid "Service not found" -msgstr "Serviço não encontrado" - #: web/errors.py:63 xmlrpc/auths/AdminAuth.py:182 #: xmlrpc/auths/AdminAuth.py:188 msgid "Access denied" @@ -1687,10 +2368,6 @@ msgstr "Não é mais válidas credenciais" msgid "Administration" msgstr "Administração" -#: xmlrpc/auths/AdminAuth.py:168 -msgid "Invalid credentials" -msgstr "Credenciais inválidas" - #: xmlrpc/auths/Authenticators.py:107 msgid "Authenticator does not exists" msgstr "Autenticador não existe" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo index d0f64af2e..4c2e67d32 100644 Binary files a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo and b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo differ diff --git a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po index b7fc4ac0e..bcb1e8d47 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-11-17 04:21+0100\n" +"POT-Creation-Date: 2013-11-20 04:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: static/adm/js/gui-elements.js:7 +#: static/adm/js/gui-elements.js:33 msgid "Service Providers" msgstr "Prestadores de serviços" -#: static/adm/js/gui-elements.js:81 -msgid "Connectivity" -msgstr "Conectividade" - #: static/adm/js/gui.js:18 msgid "_MENU_ records per page" msgstr "Registros _MENU_ por página" @@ -70,19 +66,19 @@ msgstr "Próxima" msgid "Previous" msgstr "Anterior" -#: static/adm/js/gui.js:80 +#: static/adm/js/gui.js:75 msgid "Deployed services" msgstr "Serviços implantados" -#: static/adm/js/gui.js:349 +#: static/adm/js/gui.js:360 msgid "Edit" msgstr "Editar" -#: static/adm/js/gui.js:358 +#: static/adm/js/gui.js:369 msgid "Delete" msgstr "Excluir" -#: static/adm/js/gui.js:367 +#: static/adm/js/gui.js:378 msgid "Refresh" msgstr "Atualização" @@ -161,3 +157,7 @@ msgstr "Novembro" #: static/adm/js/strftime.js:35 msgid "December" msgstr "Dezembro de" + +#: static/adm/js/tools.js:46 +msgid "Just a moment..." +msgstr "Só um momento..." diff --git a/server/src/uds/static/adm/js/api.js b/server/src/uds/static/adm/js/api.js index 9c0413c50..35247f897 100644 --- a/server/src/uds/static/adm/js/api.js +++ b/server/src/uds/static/adm/js/api.js @@ -1,5 +1,6 @@ +/* jshint strict: true */ (function(api, $, undefined) { - + "use strict"; // "public" methods api.doLog = function(data) { if (api.debug) { @@ -17,8 +18,11 @@ return new Cache(cacheName); }; - api.getJson = function(path, success_fnc) { - url = api.url_for(path); + api.getJson = function(path, options) { + options = options || {}; + var success_fnc = options.success || function(){}; + + var url = api.url_for(path); api.doLog('Ajax GET Json for "' + url + '"'); $.ajax({ url : url, @@ -27,10 +31,7 @@ success : function(data) { api.doLog('Success on "' + url + '".'); api.doLog('Received ' + JSON.stringify(data)); - if (success_fnc !== undefined) { - api.doLog('Executing success method'); - success_fnc(data); - } + success_fnc(data); }, beforeSend : function(request) { request.setRequestHeader(api.auth_header, api.token); @@ -39,12 +40,13 @@ }; // Public attributes - api.debug = false; + api.debug = true; }(window.api = window.api || {}, jQuery)); // Cache related function Cache(cacheName) { + "use strict"; api.cacheTable = api.cacheTable || {}; api.cacheTable[cacheName] = api.cacheTable[cacheName] || {}; @@ -55,6 +57,7 @@ function Cache(cacheName) { Cache.prototype = { get: function(key, not_found_fnc){ + "use strict"; not_found_fnc = not_found_fnc || function() { return undefined; }; if( this.cache[key] === undefined ) { @@ -64,7 +67,8 @@ Cache.prototype = { }, put: function(key, value) { - this.cache[key] = value; + "use strict"; + this.cache[key] = value; }, }; @@ -74,6 +78,7 @@ Cache.prototype = { // code :-) function BasicModelRest(path, options) { + "use strict"; options = options || {}; path = path || ''; // Requests paths @@ -85,34 +90,70 @@ function BasicModelRest(path, options) { } BasicModelRest.prototype = { + // options: + // cacheKey: '.' --> do not cache + // undefined -- > use path as key + // success: success fnc to execute in case of success + _requestPath: function(path, options) { + "use strict"; + options = options || {}; + var success_fnc = options.success || function(){api.doLog('success not provided for '+path);}; + var cacheKey = options.cacheKey || path; + + if( path == '.' ) { + success_fnc({}); + return; + } + + if (cacheKey != '.' && this.cache.get(cacheKey)) { + success_fnc(this.cache.get(cacheKey)); + } else { + var $this = this; + api.getJson(path, { + success: function(data) { + if( cacheKey != '.' ) { + $this.cache.put(cacheKey, data); + } + success_fnc(data); + }, + }); + } + }, get : function(options) { + "use strict"; options = options || {}; var path = this.getPath; if (options.id !== undefined) path += '/' + options.id; - api.getJson(path, options.success); + return this._requestPath(path, { + cacheKey: '.', // Right now, do not cache this + success: options.success, + + }); }, - types : function(success_fnc) { - // Cache types locally, will not change unless new broker version - sucess_fnc = success_fnc || function(data){}; - if( this.typesPath == '.' ) { - success_fnc({}); - return; - } - if (this.cache.get('types')) { - success_fnc(this.cache.get('types')); - } else { - var $this = this; - var path = this.typesPath; - api.getJson(path, function(data) { - $this.cache.put('types', data); - success_fnc(data); - }); - } + types : function(options) { + "use strict"; + options = options || {}; + return this._requestPath(this.typesPath, { + cacheKey: 'type', + success: options.success, + }); }, - - tableInfo : function(success_fnc) { + gui: function(typeName, options) { + "use strict"; + options = options || {}; + var path = [this.typesPath, typeName, 'gui'].join('/'); + return this._requestPath(path, { + cacheKey: typeName + '-gui', + success: options.success, + }); + }, + tableInfo : function(options) { + "use strict"; + options = options || {}; + var success_fnc = options.success || function(){api.doLog('success not provided for tableInfo');}; + var path = this.tableInfoPath; // Cache types locally, will not change unless new broker version if( this.cache.get(path) ) { @@ -123,14 +164,17 @@ BasicModelRest.prototype = { } var $this = this; - api.getJson(path, function(data) { - $this.cache.put(path, data); - success_fnc(data); + api.getJson(path, { + success: function(data) { + $this.cache.put(path, data); + success_fnc(data); + }, }); }, detail: function(id, child) { + "use strict"; return new DetailModelRestApi(this, id, child); } @@ -138,6 +182,7 @@ BasicModelRest.prototype = { // For REST of type /auth/[id]/users, /services/[id]/users, ... function DetailModelRestApi(parentApi, parentId, model) { + "use strict"; this.base = new BasicModelRest(undefined, { getPath: [parentApi.path, parentId, model].join('/'), typesPath: '.', // We do not has this on details @@ -148,13 +193,16 @@ function DetailModelRestApi(parentApi, parentId, model) { DetailModelRestApi.prototype = { // Generates a basic model with fixed methods for "detail" models get: function(options) { + "use strict"; return this.base.get(options); }, - types: function(success_fnc) { - return this.base.types(success_fnc); + types: function(options) { + "use strict"; + return this.base.types(options); }, - tableInfo: function(success_fnc) { - return this.base.tableInfo(success_fnc); + tableInfo: function(options) { + "use strict"; + return this.base.tableInfo(options); }, }; diff --git a/server/src/uds/static/adm/js/cache.js b/server/src/uds/static/adm/js/cache.js deleted file mode 100644 index d45d803ee..000000000 --- a/server/src/uds/static/adm/js/cache.js +++ /dev/null @@ -1,31 +0,0 @@ -(function(api, $, undefined) { - - api.cache = function(cacheName) { - return new Cache(cacheName); - }; - -}(window.api = window.api || {}, jQuery)); - -function Cache(cacheName) { - api.cacheTable = api.cacheTable || {}; - - api.cacheTable[cacheName] = api.cacheTable[cacheName] || {}; - - this.name = cacheName; - this.cache = api.cacheTable[cacheName]; -} - -Cache.prototype = { - get: function(key, not_found_fnc){ - not_found_fnc = not_found_fnc || function() { return undefined; }; - - if( this.cache[key] === undefined ) { - this.cache[key] = not_found_fnc(); - } - return this.cache[key]; - }, - - put: function(key, value) { - this.cache[key] = value; - }, -}; \ No newline at end of file diff --git a/server/src/uds/static/adm/js/gui.js b/server/src/uds/static/adm/js/gui.js index 96d2d7c1e..7f65d02b8 100644 --- a/server/src/uds/static/adm/js/gui.js +++ b/server/src/uds/static/adm/js/gui.js @@ -136,24 +136,26 @@ GuiElement.prototype = { "use strict"; gui.doLog('Initializing ' + this.name); var $this = this; - this.rest.types(function(data) { - var styles = ''; - $.each(data, function(index, value) { - var className = $this.name + '-' + value.type; - $this.types[value.type] = { - css : className, - name : value.name || '', - description : value.description || '' - }; - gui.doLog('Creating style for ' + className); - var style = '.' + className + ' { display:inline-block; background: url(data:image/png;base64,' + - value.icon + '); ' + 'width: 16px; height: 16px; vertical-align: middle; } '; - styles += style; - }); - if (styles !== '') { - styles = ''; - $(styles).appendTo('head'); - } + this.rest.types({ + success: function(data) { + var styles = ''; + $.each(data, function(index, value) { + var className = $this.name + '-' + value.type; + $this.types[value.type] = { + css : className, + name : value.name || '', + description : value.description || '' + }; + gui.doLog('Creating style for ' + className); + var style = '.' + className + ' { display:inline-block; background: url(data:image/png;base64,' + + value.icon + '); ' + 'width: 16px; height: 16px; vertical-align: middle; } '; + styles += style; + }); + if (styles !== '') { + styles = ''; + $(styles).appendTo('head'); + } + }, }); }, table : function(options) { @@ -211,287 +213,267 @@ GuiElement.prototype = { }; }; - this.rest.tableInfo(function(data) { - var title = data.title; - var columns = []; - $.each(data.fields, function(index, value) { - for ( var v in value) { - var options = value[v]; - var column = { - mData : v, - }; - column.sTitle = options.title; - column.mRender = renderEmptyCell; - if (options.type !== undefined) { - switch(options.type) { - case 'date': - column.sType = 'date'; - column.mRender = renderDate(djangoFormat(get_format('SHORT_DATE_FORMAT'))); - break; - case 'datetime': - column.sType = 'date'; - column.mRender = renderDate(djangoFormat(get_format('SHORT_DATETIME_FORMAT'))); - break; - case 'time': - column.mRender = renderDate(djangoFormat(get_format('TIME_FORMAT'))); - break; - case 'iconType': - //columnt.sType = 'html'; // html is default, so this is not needed - column.mRender = renderTypeIcon; - break; - case 'icon': - if( options.icon !== undefined ) { - column.mRender = renderIcon(options.icon); - } - break; - case 'dict': - if( options.dict !== undefined ) { - column.mRender = renderTextTransform(options.dict); - } - break; - default: - column.sType = options.type; + this.rest.tableInfo({ + success: function(data) { + var title = data.title; + var columns = []; + $.each(data.fields, function(index, value) { + for ( var v in value) { + var options = value[v]; + var column = { + mData : v, + }; + column.sTitle = options.title; + column.mRender = renderEmptyCell; + if (options.type !== undefined) { + switch(options.type) { + case 'date': + column.sType = 'date'; + column.mRender = renderDate(djangoFormat(get_format('SHORT_DATE_FORMAT'))); + break; + case 'datetime': + column.sType = 'date'; + column.mRender = renderDate(djangoFormat(get_format('SHORT_DATETIME_FORMAT'))); + break; + case 'time': + column.mRender = renderDate(djangoFormat(get_format('TIME_FORMAT'))); + break; + case 'iconType': + //columnt.sType = 'html'; // html is default, so this is not needed + column.mRender = renderTypeIcon; + break; + case 'icon': + if( options.icon !== undefined ) { + column.mRender = renderIcon(options.icon); + } + break; + case 'dict': + if( options.dict !== undefined ) { + column.mRender = renderTextTransform(options.dict); + } + break; + default: + column.sType = options.type; + } } + if (options.width) + column.sWidth = options.width; + if (options.visible !== undefined) + column.bVisible = options.visible; + if (options.sortable !== undefined) + column.bSortable = options.sortable; + if (options.searchable !== undefined) + column.bSearchable = options.searchable; + columns.push(column); } - if (options.width) - column.sWidth = options.width; - if (options.visible !== undefined) - column.bVisible = options.visible; - if (options.sortable !== undefined) - column.bSortable = options.sortable; - if (options.searchable !== undefined) - column.bSearchable = options.searchable; - columns.push(column); - } - }); - // Generate styles for responsibe table, just the name of fields - var respStyles = []; - var counter = 0; - $.each(columns, function(col, value) { - if( value.bVisible === false ) - return; - counter += 1; - respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):before { content: "' + - (value.sTitle || '') + '";}\n'); - respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):empty { background-color: red ;}\n'); - }); - // If styles already exists, remove them before adding new ones - $('style-' + tableId).remove(); - $('').appendTo('head'); - - $this.rest.get({ - success : function(data) { - var table = gui.table(title, tableId); - if (options.container === undefined) { - gui.appendToWorkspace('
' + table + '
'); - } else { - $('#' + options.container).empty(); - $('#' + options.container).append(table); - } - - var btns = []; - - if (options.buttons) { - - // methods for buttons click - var editFnc = function() { - gui.doLog('Edit'); - gui.doLog(this); - }; - var deleteFnc = function() { - gui.doLog('Delete'); - gui.doLog(this); - }; - - // What execute on refresh button push - var onRefresh = options.onRefresh || function(){}; - - var refreshFnc = function(btn) { - // Refreshes table content - var tbl = $('#' + tableId).dataTable(); - /*var width = $(btn).width(); - var saved = $(btn).html(); - $(btn).addClass('disabled').html('') - .width(width);*/ - if( data.length > 1000 ) - api.tools.blockUI(); + }); + // Generate styles for responsibe table, just the name of fields + var respStyles = []; + var counter = 0; + $.each(columns, function(col, value) { + if( value.bVisible === false ) + return; + counter += 1; + respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):before { content: "' + + (value.sTitle || '') + '";}\n'); + respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):empty { background-color: red ;}\n'); + }); + // If styles already exists, remove them before adding new ones + $('style-' + tableId).remove(); + $('').appendTo('head'); + + $this.rest.get({ + success : function(data) { + var table = gui.table(title, tableId); + if (options.container === undefined) { + gui.appendToWorkspace('
' + table + '
'); + } else { + $('#' + options.container).empty(); + $('#' + options.container).append(table); + } + + var btns = []; + + if (options.buttons) { + + // methods for buttons click + var editFnc = function() { + gui.doLog('Edit'); + gui.doLog(this); + }; + var deleteFnc = function() { + gui.doLog('Delete'); + gui.doLog(this); + }; - onRefresh($this); - - $this.rest.get({ - success : function(data) { - /*$(btn).removeClass('disabled').width('').html(saved);*/ - setTimeout( function() { - tbl.fnClearTable(); - tbl.fnAddData(data); - api.tools.unblockUI(); - }, 0); + // What execute on refresh button push + var onRefresh = options.onRefresh || function(){}; + + var refreshFnc = function(btn) { + // Refreshes table content + var tbl = $('#' + tableId).dataTable(); + /*var width = $(btn).width(); + var saved = $(btn).html(); + $(btn).addClass('disabled').html('') + .width(width);*/ + if( data.length > 1000 ) + api.tools.blockUI(); + + onRefresh($this); + + $this.rest.get({ + success : function(data) { + /*$(btn).removeClass('disabled').width('').html(saved);*/ + setTimeout( function() { + tbl.fnClearTable(); + tbl.fnAddData(data); + api.tools.unblockUI(); + }, 0); + } + }); + }; + + // methods for buttons on row select + var editSelected = function(btn, obj, node) { + var sel = this.fnGetSelectedData(); + if (sel.length == 1) { + $(btn).removeClass('disabled').addClass('btn3d-success'); + } else { + $(btn).removeClass('btn3d-success').addClass('disabled'); } - }); - }; - - // methods for buttons on row select - var editSelected = function(btn, obj, node) { - var sel = this.fnGetSelectedData(); - if (sel.length == 1) { - $(btn).removeClass('disabled').addClass('btn3d-success'); - } else { - $(btn).removeClass('btn3d-success').addClass('disabled'); - } - }; - var deleteSelected = function(btn, obj, node) { - var sel = this.fnGetSelectedData(); - if (sel.length > 0) { - $(btn).removeClass('disabled').addClass('btn3d-warning'); - } else { - $(btn).removeClass('btn3d-warning').addClass('disabled'); - } - }; - - $.each(options.buttons, function(index, value) { - var btn; - switch (value) { - case 'edit': - btn = { - "sExtends" : "text", - "sButtonText" : gettext('Edit'), - "fnSelect" : editSelected, - "fnClick" : editFnc, - "sButtonClass" : "disabled btn3d btn3d-tables" - }; - break; - case 'delete': - btn = { - "sExtends" : "text", - "sButtonText" : gettext('Delete'), - "fnSelect" : deleteSelected, - "fnClick" : deleteFnc, - "sButtonClass" : "disabled btn3d btn3d-tables" - }; - break; - case 'refresh': - btn = { - "sExtends" : "text", - "sButtonText" : gettext('Refresh'), - "fnClick" : refreshFnc, - "sButtonClass" : "btn3d-primary btn3d btn3d-tables" - }; - break; - case 'xls': - btn = { - "sExtends" : "text", - "sButtonText" : 'xls', - "fnClick" : function(){ - api.templates.get('spreadsheet', function(tmpl) { - var styles = { 'bold': 's21', }; - var uri = 'data:application/vnd.ms-excel;base64,', - base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))); }; - - var headings = [], rows = []; - $.each(columns, function(index, heading){ - if( heading.bVisible === false ) { - return; - } - headings.push(api.spreadsheet.cell(heading.sTitle, 'String', styles.bold)); - }); - rows.push(api.spreadsheet.row(headings)); - $.each(data, function(index, row) { - var cells = []; - $.each(columns, function(index, col){ - if( col.bVisible === false ) { + }; + var deleteSelected = function(btn, obj, node) { + var sel = this.fnGetSelectedData(); + if (sel.length > 0) { + $(btn).removeClass('disabled').addClass('btn3d-warning'); + } else { + $(btn).removeClass('btn3d-warning').addClass('disabled'); + } + }; + + $.each(options.buttons, function(index, value) { + var btn; + switch (value) { + case 'edit': + btn = { + "sExtends" : "text", + "sButtonText" : gettext('Edit'), + "fnSelect" : editSelected, + "fnClick" : editFnc, + "sButtonClass" : "disabled btn3d btn3d-tables" + }; + break; + case 'delete': + btn = { + "sExtends" : "text", + "sButtonText" : gettext('Delete'), + "fnSelect" : deleteSelected, + "fnClick" : deleteFnc, + "sButtonClass" : "disabled btn3d btn3d-tables" + }; + break; + case 'refresh': + btn = { + "sExtends" : "text", + "sButtonText" : gettext('Refresh'), + "fnClick" : refreshFnc, + "sButtonClass" : "btn3d-primary btn3d btn3d-tables" + }; + break; + case 'xls': + btn = { + "sExtends" : "text", + "sButtonText" : 'xls', + "fnClick" : function(){ + api.templates.get('spreadsheet', function(tmpl) { + var styles = { 'bold': 's21', }; + var uri = 'data:application/vnd.ms-excel;base64,', + base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))); }; + + var headings = [], rows = []; + $.each(columns, function(index, heading){ + if( heading.bVisible === false ) { return; } - var type = col.sType == 'numeric' ? 'Number':'String'; - cells.push(api.spreadsheet.cell(row[col.mData], type)); + headings.push(api.spreadsheet.cell(heading.sTitle, 'String', styles.bold)); }); - rows.push(api.spreadsheet.row(cells)); + rows.push(api.spreadsheet.row(headings)); + $.each(data, function(index, row) { + var cells = []; + $.each(columns, function(index, col){ + if( col.bVisible === false ) { + return; + } + var type = col.sType == 'numeric' ? 'Number':'String'; + cells.push(api.spreadsheet.cell(row[col.mData], type)); + }); + rows.push(api.spreadsheet.row(cells)); + }); + + var ctx = { + creation_date: (new Date()).toISOString(), + worksheet: title, + columns_count: headings.length, + rows_count: rows.length, + rows: rows.join('\n') + }; + // window.location.href = uri + base64(api.templates.evaluate(tmpl, ctx)); + setTimeout( function() { + saveAs(new Blob([api.templates.evaluate(tmpl, ctx)], + {type: 'application/vnd.ms-excel'} ), title + '.xls'); + }, 20); }); - - var ctx = { - creation_date: (new Date()).toISOString(), - worksheet: title, - columns_count: headings.length, - rows_count: rows.length, - rows: rows.join('\n') - }; - // window.location.href = uri + base64(api.templates.evaluate(tmpl, ctx)); - setTimeout( function() { - saveAs(new Blob([api.templates.evaluate(tmpl, ctx)], - {type: 'application/vnd.ms-excel'} ), title + '.xls') - }, 20); - }); - }, - "sButtonClass" : "btn3d-info btn3d btn3d-tables" - }; - /*case 'csv': - btn = { - "sExtends" : "csv", - "sTitle" : title, - "sFileName" : title + '.csv', - }; - break;*/ - /*case 'pdf': - btn = { - "sExtends" : "pdf", - "sTitle" : title, - "sPdfMessage" : "Summary Info", - "fnCellRender": function(value, col, node, dattaIndex) { - // All tables handled by this needs an "id" on col 0 - // So, we return empty values for col 0 - if(col === 0) - return ''; - return value.toString().replace(/(<([^>]+)>)/ig, ''); - }, - "sFileName" : title + '.pdf', - "sPdfOrientation" : "portrait" - }; - break;*/ - } - - if (btn !== undefined) - btns.push(btn); + }, + "sButtonClass" : "btn3d-info btn3d btn3d-tables" + }; + } + + if (btn !== undefined) + btns.push(btn); + }); + } + + // Initializes oTableTools + var oTableTools = { + "aButtons" : btns + }; + if (options.rowSelect) { + oTableTools.sRowSelect = options.rowSelect; + } + if (options.onRowSelect) { + oTableTools.fnRowSelected = options.onRowSelect; + } + if (options.onRowDeselect) { + oTableTools.fnRowDeselected = options.onRowDeselect; + } + + $('#' + tableId).dataTable({ + "aaData" : data, + "aoColumns" : columns, + "oLanguage" : gui.dataTablesLanguage, + "oTableTools" : oTableTools, + // First is upper row, + // second row is lower + // (pagination) row + "sDom" : "<'row'<'col-xs-8'T><'col-xs-4'f>r>t<'row'<'col-xs-5'i><'col-xs-7'p>>", + }); + // Fix 3dbuttons + api.tools.fix3dButtons('#' + tableId + '_wrapper .btn-group-3d'); + // Fix form + //$('#' + tableId + '_filter input').addClass('form-control'); + if (options.scroll !== undefined ) { + var tableTop = $('#' + tableId).offset().top; + $('html, body').scrollTop(tableTop); + } + // if table rendered event + if( options.onLoad ) { + options.onLoad($this); + } } - - // Initializes oTableTools - var oTableTools = { - "aButtons" : btns - }; - if (options.rowSelect) { - oTableTools.sRowSelect = options.rowSelect; - } - if (options.onRowSelect) { - oTableTools.fnRowSelected = options.onRowSelect; - } - if (options.onRowDeselect) { - oTableTools.fnRowDeselected = options.onRowDeselect; - } - - $('#' + tableId).dataTable({ - "aaData" : data, - "aoColumns" : columns, - "oLanguage" : gui.dataTablesLanguage, - "oTableTools" : oTableTools, - // First is upper row, - // second row is lower - // (pagination) row - "sDom" : "<'row'<'col-xs-8'T><'col-xs-4'f>r>t<'row'<'col-xs-5'i><'col-xs-7'p>>", - - }); - // Fix 3dbuttons - api.tools.fix3dButtons('#' + tableId + '_wrapper .btn-group-3d'); - // Fix form - //$('#' + tableId + '_filter input').addClass('form-control'); - if (options.scroll !== undefined ) { - var tableTop = $('#' + tableId).offset().top; - $('html, body').scrollTop(tableTop); - } - // if table rendered event - if( options.onLoad ) { - options.onLoad($this); - } - } - }); + }); + }, + }); return '#' + tableId; } diff --git a/server/src/uds/static/adm/js/tools.js b/server/src/uds/static/adm/js/tools.js index 6418ae4fa..61c9eb198 100644 --- a/server/src/uds/static/adm/js/tools.js +++ b/server/src/uds/static/adm/js/tools.js @@ -43,7 +43,7 @@ }; tools.blockUI = function(message) { - message = message || '

' + gettext('Just a moment...') + '

' + message = message || '

' + gettext('Just a moment...') + '

'; $.blockUI({ message: message }); };