From f8934acbe4bc209f60aa829b9229b4a7def507c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20G=C3=B3mez=20Garc=C3=ADa?= Date: Sun, 21 Jun 2015 21:51:36 +0200 Subject: [PATCH] Added a couple csv reports --- server/src/uds/REST/methods/reports.py | 2 + server/src/uds/core/reports/BaseReport.py | 11 +- .../core/reports/tools/geraldo_graphics.py | 16 +- .../src/uds/locale/de/LC_MESSAGES/django.mo | Bin 67535 -> 68797 bytes .../src/uds/locale/de/LC_MESSAGES/django.po | 675 +++++++++----- .../src/uds/locale/de/LC_MESSAGES/djangojs.mo | Bin 11445 -> 11368 bytes .../src/uds/locale/de/LC_MESSAGES/djangojs.po | 81 +- .../src/uds/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../src/uds/locale/en/LC_MESSAGES/django.po | 207 +++-- .../src/uds/locale/en/LC_MESSAGES/djangojs.mo | Bin 378 -> 378 bytes .../src/uds/locale/en/LC_MESSAGES/djangojs.po | 69 +- .../src/uds/locale/es/LC_MESSAGES/django.mo | Bin 68327 -> 69603 bytes .../src/uds/locale/es/LC_MESSAGES/django.po | 823 ++++++++++++------ .../src/uds/locale/es/LC_MESSAGES/djangojs.mo | Bin 11546 -> 11311 bytes .../src/uds/locale/es/LC_MESSAGES/djangojs.po | 156 ++-- .../src/uds/locale/eu/LC_MESSAGES/django.mo | Bin 1145 -> 1145 bytes .../src/uds/locale/eu/LC_MESSAGES/django.po | 275 +++--- .../src/uds/locale/eu/LC_MESSAGES/djangojs.mo | Bin 1280 -> 1280 bytes .../src/uds/locale/eu/LC_MESSAGES/djangojs.po | 78 +- .../src/uds/locale/fr/LC_MESSAGES/django.mo | Bin 69143 -> 70397 bytes .../src/uds/locale/fr/LC_MESSAGES/django.po | 697 ++++++++++----- .../src/uds/locale/fr/LC_MESSAGES/djangojs.mo | Bin 11651 -> 11570 bytes .../src/uds/locale/fr/LC_MESSAGES/djangojs.po | 81 +- .../src/uds/locale/it/LC_MESSAGES/django.mo | Bin 67069 -> 68314 bytes .../src/uds/locale/it/LC_MESSAGES/django.po | 635 +++++++++----- .../src/uds/locale/it/LC_MESSAGES/djangojs.mo | Bin 11471 -> 11395 bytes .../src/uds/locale/it/LC_MESSAGES/djangojs.po | 78 +- .../src/uds/locale/pt/LC_MESSAGES/django.mo | Bin 67549 -> 68777 bytes .../src/uds/locale/pt/LC_MESSAGES/django.po | 621 ++++++++----- .../src/uds/locale/pt/LC_MESSAGES/djangojs.mo | Bin 11399 -> 11320 bytes .../src/uds/locale/pt/LC_MESSAGES/djangojs.po | 78 +- server/src/uds/reports/__init__.py | 23 +- server/src/uds/reports/lists/__init__.py | 2 +- server/src/uds/reports/lists/base.py | 6 +- server/src/uds/reports/lists/users.py | 50 +- server/src/uds/reports/stats/__init__.py | 2 +- server/src/uds/reports/stats/base.py | 8 +- server/src/uds/reports/stats/login.py | 111 ++- .../uds/static/adm/js/gui-d-reports.coffee | 5 +- 39 files changed, 3113 insertions(+), 1677 deletions(-) diff --git a/server/src/uds/REST/methods/reports.py b/server/src/uds/REST/methods/reports.py index 4f86e199..5d2c0f05 100644 --- a/server/src/uds/REST/methods/reports.py +++ b/server/src/uds/REST/methods/reports.py @@ -111,6 +111,7 @@ class Reports(model.BaseModelHandler): return { 'mime_type': report.mime_type, + 'encoded': report.encoded, 'filename': report.filename, 'data': result } @@ -133,6 +134,7 @@ class Reports(model.BaseModelHandler): { 'id': i.getUuid(), 'mime_type': i.mime_type, + 'encoded': i.encoded, 'group': i.translated_group(), 'name': i.translated_name(), 'description': i.translated_description() diff --git a/server/src/uds/core/reports/BaseReport.py b/server/src/uds/core/reports/BaseReport.py index f6fc1330..d24fb57d 100644 --- a/server/src/uds/core/reports/BaseReport.py +++ b/server/src/uds/core/reports/BaseReport.py @@ -41,15 +41,16 @@ import logging logger = logging.getLogger(__name__) -__updated__ = '2015-05-03' +__updated__ = '2015-06-21' class Report(UserInterface): mime_type = 'application/pdf' # Report returns pdfs by default, but could be anything else name = _('Base Report') # Report name description = _('Base report') # Report description - filename = 'file.bin' # Filename that will be returned as 'hint' on rest report request + filename = 'file.pdf' # Filename that will be returned as 'hint' on rest report request group = '' # So we can "group" reports by kind? + encoded = True # If the report is mean to be encoded (binary reports as PDFs == True, text reports must be False so utf-8 is correctly threated uuid = None @classmethod @@ -123,7 +124,11 @@ class Report(UserInterface): Generated base 64 encoded report. Basically calls generate and encodes resuslt as base64 ''' - return self.generate().encode('base64').replace('\n', '') + data = self.generate() + if self.encoded: + return data.encode('base64').replace('\n', '') + else: + return data def __str__(self): return 'Report {} with uuid {}'.format(self.name, self.uuid) diff --git a/server/src/uds/core/reports/tools/geraldo_graphics.py b/server/src/uds/core/reports/tools/geraldo_graphics.py index 760aa663..1876cacc 100644 --- a/server/src/uds/core/reports/tools/geraldo_graphics.py +++ b/server/src/uds/core/reports/tools/geraldo_graphics.py @@ -9,23 +9,19 @@ logger = logging.getLogger(__name__) class UDSImage(Image): def _get_height(self): - logger.debug('get height called') - ret = self._height or (self.image and self.image.size[1] or 0) - return ret * cm / 118 + ret = self._height or (self.image and (self.image.size[1] * cm / 118) or 0) + return ret def _set_height(self, value): - logger.debug('set height called') - self._height = value / cm * 118 + self._height = value height = property(_get_height, _set_height) def _get_width(self): - logger.debug('get width called') - ret = self._width or (self.image and self.image.size[0] or 0) - return ret * cm / 118 + ret = self._width or (self.image and (self.image.size[0] * cm / 118) or 0) + return ret def _set_width(self, value): - logger.debug('set width called') - self._width = value / cm * 118 + self._width = value width = property(_get_width, _set_width) diff --git a/server/src/uds/locale/de/LC_MESSAGES/django.mo b/server/src/uds/locale/de/LC_MESSAGES/django.mo index f7ea82f13484790e8a1916ab4762bd4d022d03a6..f5be275b0e3bf9dd2a3bbf77cccf030a3d0b6088 100644 GIT binary patch delta 17583 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 MvEwU0A0MCp0@`bJA^-pY delta 16450 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, 2012 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:30+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: German (http://www.transifex.com/projects/p/openuds/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/openuds/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -42,7 +43,7 @@ msgstr "Aktuelle Authentifikatoren" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -51,7 +52,7 @@ msgstr "Name" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -68,8 +69,8 @@ msgstr "Priorität" msgid "Tag" msgstr "Tag" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -117,7 +118,9 @@ msgstr "Netzwerkbereich" msgid "" "Network range. Accepts most network definitions formats (range, subnet, " "host, etc..." -msgstr "Netzwerk-Bereich. Akzeptiert die meisten Netzwerk-Definitionen-Formate (Range, Subnetz, Host, etc...." +msgstr "" +"Netzwerk-Bereich. Akzeptiert die meisten Netzwerk-Definitionen-Formate " +"(Range, Subnetz, Host, etc...." #: REST/methods/osmanagers.py:55 msgid "Current OS Managers" @@ -125,7 +128,9 @@ msgstr "Aktuelle OS-Manager" #: REST/methods/osmanagers.py:79 msgid "Can't delete an OS Manager with services pools associated" -msgstr "Kann nicht gelöscht werden ein OS-Manager mit Dienstleistungen verbundenen Pools" +msgstr "" +"Kann nicht gelöscht werden ein OS-Manager mit Dienstleistungen verbundenen " +"Pools" #: REST/methods/providers.py:60 msgid "Service providers" @@ -209,104 +214,112 @@ msgstr "Bereitgestellten Dienste" msgid "User services" msgstr "Benutzerdienste" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "Service-Pools" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "Eltern-Service" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "Status" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "Zeigt Transporte" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" -msgstr "Erstellen Sie mindestens ein OS-Manager vor dem Erstellen eines neuen Service-Pools" +msgstr "" +"Erstellen Sie mindestens ein OS-Manager vor dem Erstellen eines neuen " +"Service-Pools" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" -msgstr "Erstellen Sie mindestens einen Dienst vor dem Erstellen eines neuen Service-Pools" +msgstr "" +"Erstellen Sie mindestens einen Dienst vor dem Erstellen eines neuen Service-" +"Pools" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "Basisdienst" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "Service als Basis für diesen Service-pool" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "OS-Manager" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "OS-Manager verwendet als Grundlage dieser Service-pool" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "Zugeordnetes Bild" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "Bild Assocciated mit diesem service" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "Erster verfügbaren Dienste" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "Dienste, die ursprünglich für diesen Service-Pool erstellt" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "Dienstleistungen im Cache behalten" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" -msgstr "Dienstleistungen, die im Cache für verbesserte Service Zuweisung gehalten" +msgstr "" +"Dienstleistungen, die im Cache für verbesserte Service Zuweisung gehalten" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "Dienstleistungen im L2-Cache zu behalten" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" -msgstr "Dienstleistungen gehalten im level2-Cache für verbesserte Service-generation" +msgstr "" +"Dienstleistungen gehalten im level2-Cache für verbesserte Service-generation" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "Maximale Anzahl der Dienste" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" -msgstr "Maximale Anzahl der Dienst (zugewiesen und L1-Cache) für die erstellt werden können dieser service" +msgstr "" +"Maximale Anzahl der Dienst (zugewiesen und L1-Cache) für die erstellt werden " +"können dieser service" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "Karte-Transporte" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "Wenn aktiv, werden alternative Transporte für Benutzer angezeigt" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "Zentrale Dienst existiert nicht mehr" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "Dieser Service erfordert eine OS-Manager" @@ -322,7 +335,9 @@ msgstr "Netzwerkzugriff" msgid "" "If checked, the transport will be enabled for the selected networks.If " "unchecked, transport will be disabled for selected networks" -msgstr "Wenn aktiviert, wird der Transport für die ausgewählte Netze aktiviert.If ein unkontrollierter Verkehr für ausgewählte Netzwerke deaktiviert wird" +msgstr "" +"Wenn aktiviert, wird der Transport für die ausgewählte Netze aktiviert.If " +"ein unkontrollierter Verkehr für ausgewählte Netzwerke deaktiviert wird" #: REST/methods/transports.py:78 templates/uds/html5/index.html:81 #: templates/uds/index.html:79 @@ -333,7 +348,9 @@ msgstr "Netzwerke" msgid "" "Networks associated with this transport. If No network selected, will mean " "\"all networks\"" -msgstr "Netzwerke, die mit diesem Transport verbunden. Wenn kein Netzwerk ausgewählt, bedeutet \"alle Netze\"" +msgstr "" +"Netzwerke, die mit diesem Transport verbunden. Wenn kein Netzwerk " +"ausgewählt, bedeutet \"alle Netze\"" #: REST/methods/user_services.py:80 REST/methods/user_services.py:81 msgid "unknown" @@ -349,7 +366,7 @@ msgid "Creation date" msgstr "Erstellungsdatum" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "Revision" @@ -395,7 +412,8 @@ msgid "Cached services" msgstr "Zwischengespeicherte Dienstleistungen" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "Zustand" @@ -417,19 +435,23 @@ msgstr "Kommentare" msgid "Assigned transports" msgstr "Zugewiesenen Transporte" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "Publikationen" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "Datum der Veröffentlichung" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "Grund" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "Changelog" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -460,7 +482,8 @@ msgstr "Benutzername" msgid "state" msgstr "Zustand" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "Zuletzt online" @@ -500,7 +523,9 @@ msgstr "Kommentare für dieses element" #: REST/model.py:136 msgid "" "Selects the priority of this element (lower number means higher priority)" -msgstr "Bestimmt die Priorität dieses Elements (niedrigere Zahl bedeutet höhere Priorität)" +msgstr "" +"Bestimmt die Priorität dieses Elements (niedrigere Zahl bedeutet höhere " +"Priorität)" #: REST/model.py:147 msgid "Tag for this element" @@ -531,18 +556,18 @@ msgid "requested a template that do not exist" msgstr "beantragt eine Vorlage, die nicht existieren" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "Seite %(page_number)d von %(page_count)d" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "Gedruckt in %(now:%Y, %b %d)s von %(now:%H:%M)s" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "Benutzerliste für {}" @@ -569,7 +594,9 @@ msgstr "Verwendung SSL" #: auths/ActiveDirectory_enterprise/Authenticator.py:36 msgid "If checked, a ssl connection to Active Directory will be used" -msgstr "Wenn diese Option aktiviert, wird eine Ssl-Verbindung mit Active Directory verwendet werden" +msgstr "" +"Wenn diese Option aktiviert, wird eine Ssl-Verbindung mit Active Directory " +"verwendet werden" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility" @@ -586,9 +613,11 @@ msgstr "LDAP-Benutzer" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 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)" +"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:40 #: auths/ActiveDirectory_enterprise/Authenticator.py:58 @@ -677,18 +706,21 @@ msgstr "Domäne scheint nicht korrekt, bitte überprüfen es" #: auths/ActiveDirectory_enterprise/Authenticator.py:475 msgid "" "Server does not seem an Active Directory (it does not have user objects)" -msgstr "Server scheint nicht die Active Directory (es hat keine Benutzerobjekte)" +msgstr "" +"Server scheint nicht die Active Directory (es hat keine Benutzerobjekte)" #: auths/ActiveDirectory_enterprise/Authenticator.py:483 msgid "" "Server does not seem an Active Directory (it does not have group objects)" -msgstr "Server scheint nicht die Active Directory (es hat keine Gruppenobjekte)" +msgstr "" +"Server scheint nicht die Active Directory (es hat keine Gruppenobjekte)" #: auths/ActiveDirectory_enterprise/Authenticator.py:491 msgid "" "Server does not seem an Active Directory (it does not have any user nor " "groups)" -msgstr "Server scheint kein Active Directory (es muss keiner Benutzer noch Gruppen)" +msgstr "" +"Server scheint kein Active Directory (es muss keiner Benutzer noch Gruppen)" #: auths/ActiveDirectory_enterprise/Authenticator.py:496 #: auths/EDirectory_enterprise/Authenticator.py:360 @@ -716,7 +748,9 @@ msgstr "LDAP-Port (in der Regel 389 für nicht-Ssl) und 636 für ssl" #: auths/EDirectory_enterprise/Authenticator.py:64 #: auths/RegexLdap/Authenticator.py:58 auths/SimpleLDAP/Authenticator.py:59 msgid "If checked, the connection will be ssl, using port 636 instead of 389" -msgstr "Wenn diese Option aktiviert, werden die Verbindung Ssl über Port 636 statt 389" +msgstr "" +"Wenn diese Option aktiviert, werden die Verbindung Ssl über Port 636 statt " +"389" #: auths/EDirectory_enterprise/Authenticator.py:65 msgid "Admin user" @@ -752,14 +786,18 @@ msgstr "LDAP-Suche base ist falsch" #: auths/EDirectory_enterprise/Authenticator.py:330 #: auths/RegexLdap/Authenticator.py:402 auths/SimpleLDAP/Authenticator.py:382 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)" +msgstr "" +"LDAP-Benutzerklasse scheint nicht korrekt (kein Benutzer gefunden durch " +"diese Klasse)" #: auths/EDirectory_enterprise/Authenticator.py:338 #: auths/SimpleLDAP/Authenticator.py:398 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)" +msgstr "" +"LDAP-Benutzer-Id-Attribut scheint falsch (kein Benutzer gefunden damit -" +"Attribut)" #: auths/EDirectory_enterprise/Authenticator.py:346 msgid "Expected group attribute " @@ -768,7 +806,9 @@ msgstr "Erwartete Gruppenattribut " #: auths/EDirectory_enterprise/Authenticator.py:355 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?)" +msgstr "" +"LDAP-Benutzer Klasse oder Benutzer-Id-Attr ist vermutlich falsch (Ldap ist " +"eine eDirectory?)" #: auths/IP/Authenticator.py:52 msgid "Accept proxy" @@ -776,9 +816,12 @@ msgstr "Proxy zu akzeptieren" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" -msgstr "Wenn diese Option aktiviert ist, erhalten Anfragen per Proxy weitergeleiteten Ip-Adresse (kümmern mit Dieses Bein aktiviert, können interne IP-Adressen von Internet nehmen)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" +msgstr "" +"Wenn diese Option aktiviert ist, erhalten Anfragen per Proxy " +"weitergeleiteten Ip-Adresse (kümmern mit Dieses Bein aktiviert, können " +"interne IP-Adressen von Internet nehmen)" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 msgid "IP Authenticator" @@ -806,7 +849,9 @@ msgstr "Verschiedene Benutzer für jeden host" #: auths/InternalDB/Authenticator.py:63 msgid "If checked, each host will have a different user name" -msgstr "Wenn diese Option aktiviert ist, wird jeder Host einen anderen Benutzernamen haben." +msgstr "" +"Wenn diese Option aktiviert ist, wird jeder Host einen anderen Benutzernamen " +"haben." #: auths/InternalDB/Authenticator.py:64 msgid "Reverse DNS" @@ -861,9 +906,9 @@ msgid "User Name Attr" msgstr "Benutzer Name Attr" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" -msgstr "Attribute, die dem Benutzernamen (Liste der durch Kommas getrennte Werte)" +msgid "Attributes that contains the user name (list of comma separated values)" +msgstr "" +"Attribute, die dem Benutzernamen (Liste der durch Kommas getrennte Werte)" #: auths/RegexLdap/Authenticator.py:66 msgid "Group Name Attr" @@ -885,13 +930,17 @@ msgstr "Reguläre Ausdrücke LDAP-Authentifizierungsserver" msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" -msgstr "LDAP-Benutzer-Id-Attr ist vermutlich falsch (keiner Benutzer mit beiden finden Bedingungen)" +msgstr "" +"LDAP-Benutzer-Id-Attr ist vermutlich falsch (keiner Benutzer mit beiden " +"finden Bedingungen)" #: auths/RegexLdap/Authenticator.py:425 auths/SimpleLDAP/Authenticator.py:406 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -msgstr "LDAP Gruppe Id-Attribut scheint nicht korrekt (keine Gruppe gefunden, die -Attribut)" +msgstr "" +"LDAP Gruppe Id-Attribut scheint nicht korrekt (keine Gruppe gefunden, die -" +"Attribut)" #: auths/SAML_enterprise/SAML.py:81 msgid "SAML Authenticator" @@ -913,7 +962,9 @@ msgstr "Der Private Schlüssel" 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" +msgstr "" +"Privater Schlüssel zum Zeichen und Encription, wie base-64 von generiert " +"OpenSSL" #: auths/SAML_enterprise/SAML.py:123 transports/SPICE/BaseSPICETransport.py:83 msgid "Certificate" @@ -930,15 +981,16 @@ msgstr "IDP-Metadaten" #: auths/SAML_enterprise/SAML.py:126 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." +msgstr "" +"Sie können hier die URL oder die IDP-Metadaten oder die Metadaten selbst " +"(Xml) eingeben." #: auths/SAML_enterprise/SAML.py:128 msgid "Entity ID" msgstr "Einheits-ID" #: auths/SAML_enterprise/SAML.py:129 -msgid "" -"ID of the SP. If left blank, this will be autogenerated from server URL" +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:131 @@ -967,9 +1019,11 @@ msgstr "Felder aus wo man den richtigen Namen zu extrahieren" #: auths/SAML_enterprise/SAML.py:161 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---)" +"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:166 msgid "Invalid server certificate. " @@ -979,7 +1033,9 @@ msgstr "Ungültigen Serverzertifikats. " 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---" +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:198 #, python-brace-format @@ -1066,23 +1122,31 @@ msgstr "Einfache LDAP-Authentifizierungsserver" #: auths/SimpleLDAP/Authenticator.py:390 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)" +msgstr "" +"LDAP Gruppe Klasse scheint nicht korrekt (keine Gruppe gefunden durch diese " +"Klasse)" #: auths/SimpleLDAP/Authenticator.py:415 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -msgstr "LDAP Benutzer Klasse oder Benutzer-Id Attr ist wahrscheinlich falsch (keiner Benutzer mit finden beide Bedingungen)" +msgstr "" +"LDAP Benutzer Klasse oder Benutzer-Id Attr ist wahrscheinlich falsch (keiner " +"Benutzer mit finden beide Bedingungen)" #: auths/SimpleLDAP/Authenticator.py:424 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -msgstr "LDAP Gruppe Klasse oder Gruppe Id Attr ist wahrscheinlich falsch (kann nicht finden jede Gruppe beide Bedingungen)" +msgstr "" +"LDAP Gruppe Klasse oder Gruppe Id Attr ist wahrscheinlich falsch (kann nicht " +"finden jede Gruppe beide Bedingungen)" #: auths/SimpleLDAP/Authenticator.py:431 msgid "Can't locate any group with the membership attribute specified" -msgstr "Jede Gruppe kann nicht mit das angegebene Mitgliedschaft-Attribut gefunden werden" +msgstr "" +"Jede Gruppe kann nicht mit das angegebene Mitgliedschaft-Attribut gefunden " +"werden" #: core/BaseModule.py:200 msgid "No connection checking method is implemented." @@ -1119,23 +1183,27 @@ msgstr "Verboten" #: core/managers/PublicationManager.py:202 msgid "" "Already publishing. Wait for previous publication to finish and try again" -msgstr "Bereits veröffentlicht. Warten Sie auf vorherige Veröffentlichung zu beenden und versuchen Sie es erneut" +msgstr "" +"Bereits veröffentlicht. Warten Sie auf vorherige Veröffentlichung zu beenden " +"und versuchen Sie es erneut" #: core/managers/PublicationManager.py:205 msgid "Service is in maintenance mode and new publications are not allowed" msgstr "Service ist im Wartungsmodus und Neuerscheinungen sind nicht zulässig." -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "Nicht ausgeführte Veröffentlichung kann nicht abgebrochen werden." -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "Kann nicht nicht nutzbare Veröffentlichung aufheben" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" -msgstr "Publikationen mit Dienstleistungen im Prozess kann nicht Veröffentlichung rückgängig machen" +msgstr "" +"Publikationen mit Dienstleistungen im Prozess kann nicht Veröffentlichung " +"rückgängig machen" #: core/managers/UserPrefsManager.py:285 msgid "Screen Size" @@ -1184,7 +1252,9 @@ msgstr "Ein nicht aktive Element kann nicht entfernt werden." #: core/managers/UserServiceManager.py:344 #, python-brace-format msgid "Can't remove nor cancel {0} cause its states don't allow it" -msgstr "Kann weder entfernen noch Abbrechen {0} führen, dass die Staaten nicht, dass es zulassen" +msgstr "" +"Kann weder entfernen noch Abbrechen {0} führen, dass die Staaten nicht, dass " +"es zulassen" #: core/osmanagers/BaseOsManager.py:56 msgid "Base OS Manager" @@ -1202,6 +1272,10 @@ msgstr "Basisbericht" msgid "Base report" msgstr "Basisbericht" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "Erstellt von UDS" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "Basisdienst" @@ -1328,8 +1402,8 @@ msgstr "{0} enthält ungültige Zeichen" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" msgstr "Ungültige Mac-Bereich. Bereich Mac muss im Format XX-XX:XX:XX:XX:XX:XX" #: dispatchers/wyse_enterprise/views.py:112 @@ -1383,7 +1457,9 @@ msgstr "Verkehr nicht gefunden" #: dispatchers/wyse_enterprise/views.py:289 #: 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." +msgstr "" +"Service im Moment nicht bereit. Bitte, versuchen Sie es noch einmal in eine " +"Weile." #: models/Permissions.py:80 msgid "Read" @@ -1405,7 +1481,9 @@ msgstr "Linux OS Manager" msgid "" "Os Manager to control linux virtual machines (basically renames machine and " "notify state)" -msgstr "OS-Manager, um die Kontrolle von Linux virtuellen Maschinen (im Grunde benennt Maschine und Benachrichtigen Sie Zustand)" +msgstr "" +"OS-Manager, um die Kontrolle von Linux virtuellen Maschinen (im Grunde " +"benennt Maschine und Benachrichtigen Sie Zustand)" #: osmanagers/LinuxOsManager/LinuxOsManager.py:59 #: osmanagers/WindowsOsManager/WindowsOsManager.py:50 @@ -1436,7 +1514,9 @@ msgstr "Max.Idle Zeit" msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max idle time)." -msgstr "Maximale Leerlaufzeit (in Sekunden) vor der Sitzung ist Automaticatlly geschlossen der Benutzer (< = 0 bedeutet keine max Leerlaufzeit)." +msgstr "" +"Maximale Leerlaufzeit (in Sekunden) vor der Sitzung ist Automaticatlly " +"geschlossen der Benutzer (< = 0 bedeutet keine max Leerlaufzeit)." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:47 msgid "Linux Random Password OS Manager" @@ -1444,7 +1524,9 @@ msgstr "Zufällige Kennwortmanager OS Linux" #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:49 msgid "Os Manager to control linux machines, with user password set randomly." -msgstr "OS-Manager zur Kontrolle Linux-Maschinen, mit Benutzerkennwort festlegen nach dem Zufallsprinzip." +msgstr "" +"OS-Manager zur Kontrolle Linux-Maschinen, mit Benutzerkennwort festlegen " +"nach dem Zufallsprinzip." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:53 #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 @@ -1464,29 +1546,48 @@ msgstr "Muss ein Benutzerkonto zur Verfügung stellen!!!" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" +msgstr "" +"UDS-Schauspieler für Debian, Ubuntu... Linux Maschinen (benötigt Python " "2.7)" -msgstr "UDS-Schauspieler für Debian, Ubuntu... Linux Maschinen (benötigt Python 2.7)" #: osmanagers/LinuxOsManager/__init__.py:54 msgid "" "UDS Actor for Centos, Fedora, RH, ... Linux machines (Requires python " "2.7)" -msgstr "UDS-Schauspieler für Centos, Fedora, RH... Linux-Rechner (Requires python 2.7)" +msgstr "" +"UDS-Schauspieler für Centos, Fedora, RH... Linux-Rechner (Requires python " +"2.7)" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" -msgstr "UDS-Schauspieler für OpenSUSE... Linux Maschinen (benötigt Python 2.7)" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" +msgstr "" +"UDS-Schauspieler für OpenSUSE... Linux Maschinen (benötigt Python 2.7)" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "RDS-OS-Manager" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" msgstr "OS-Manager steuern RDS-Dienstleistungen" +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "Max. Sitzungslänge" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" +"Maximale Dauer in Stunden für eine Sitzung (0 bedeutet keine Begrenzung). " +"Nach diesem Periode, wird die Sitzung freigegeben werden." + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "RDS-UDS-Schauspieler (für entfernte apps auf Windows Server 2012)" + #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" msgstr "Windows OS Gebietsmanager" @@ -1495,7 +1596,9 @@ msgstr "Windows OS Gebietsmanager" msgid "" "Os Manager to control windows machines with domain. (Basically renames " "machine)" -msgstr "OS-Manager, um Windows-Maschinen mit Domäne steuern. (Im Grunde benennt Maschine)" +msgstr "" +"OS-Manager, um Windows-Maschinen mit Domäne steuern. (Im Grunde benennt " +"Maschine)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 @@ -1507,7 +1610,9 @@ msgstr "Domäne" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 msgid "Domain to join machines to (use FQDN form, Netbios name not allowed)" -msgstr "Domäne beitreten Maschinen Verwendung (FQDN Form, Netbios-Namen nicht erlaubt)" +msgstr "" +"Domäne beitreten Maschinen Verwendung (FQDN Form, Netbios-Namen nicht " +"erlaubt)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 msgid "Account with rights to add machines to domain" @@ -1525,7 +1630,9 @@ msgstr "OU" msgid "" "Organizational unit where to add machines in domain (check it before using " "it). i.e.: ou=My Machines,dc=mydomain,dc=local" -msgstr "Organisationseinheit wo man Computer in Domäne hinzufügen (überprüfen sie vor der Verwendung IT). d.h.: Ou = My Machines, dc = Mydomain, dc = local" +msgstr "" +"Organisationseinheit wo man Computer in Domäne hinzufügen (überprüfen sie " +"vor der Verwendung IT). d.h.: Ou = My Machines, dc = Mydomain, dc = local" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:46 msgid "Must provide a domain!" @@ -1556,7 +1663,8 @@ msgstr "Kontrollkästchen werden: {0}" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:148 #, python-brace-format msgid "Could not find server parameters (_ldap._tcp.{0} can't be resolved)" -msgstr "Server-Parameter nicht gefunden (_ldap._tcp. {0} kann nicht aufgelöst werden)" +msgstr "" +"Server-Parameter nicht gefunden (_ldap._tcp. {0} kann nicht aufgelöst werden)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:157 msgid "Server check was successful" @@ -1580,7 +1688,8 @@ msgstr "Der Ou-Pfad {0} wurde nicht gefunden!!!" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:184 #, python-brace-format msgid "Could not check parameters (_ldap._tcp.{0} can'r be resolved)" -msgstr "Parameter nicht überprüfen konnte (_ldap._tcp. {0} can'r werden aufgelöst)" +msgstr "" +"Parameter nicht überprüfen konnte (_ldap._tcp. {0} can'r werden aufgelöst)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:189 msgid "All parameters seem to work fine." @@ -1593,7 +1702,9 @@ msgstr "Zufällige Kennwortmanager OS Windows" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:28 msgid "" "Os Manager to control windows machines, with user password set randomly." -msgstr "OS-Manager, um Steuerelement Windows-Rechner mit Benutzerkennwort festlegen nach dem Zufallsprinzip." +msgstr "" +"OS-Manager, um Steuerelement Windows-Rechner mit Benutzerkennwort festlegen " +"nach dem Zufallsprinzip." #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:33 msgid "Current (template) password of the user account" @@ -1611,13 +1722,17 @@ msgstr "Grundlegende Windows-OS-Manager" msgid "" "Os Manager to control windows machines without domain. (Basically renames " "machine)" -msgstr "OS-Manager, um Windows-Rechner ohne Domäne steuern. (Im Grunde benennt Maschine)" +msgstr "" +"OS-Manager, um Windows-Rechner ohne Domäne steuern. (Im Grunde benennt " +"Maschine)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:67 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max. idle time)" -msgstr "Maximale Leerlaufzeit (in Sekunden) vor der Sitzung ist Automaticatlly geschlossen der Benutzer (< = 0 bedeutet keine max. idle-Zeit)" +msgstr "" +"Maximale Leerlaufzeit (in Sekunden) vor der Sitzung ist Automaticatlly " +"geschlossen der Benutzer (< = 0 bedeutet keine max. idle-Zeit)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:76 msgid "Length must be numeric!!" @@ -1631,64 +1746,103 @@ msgstr "Die Länge muss zwischen 1 und 6 sein." msgid "UDS Actor for windows machines" msgstr "UDS-Schauspieler für Windows-Rechner" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "Listen" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#| msgid "User" +msgid "User ID" +msgstr "Benutzer-ID" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +#| msgid "Real name attrs" +msgid "Real Name" +msgstr "Richtiger Name" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "Authentifikator" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "Authentifikator Woher zu Benutzer auflisten" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "Benutzerliste" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "Liste Benutzer der Plattform" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "Statistiken" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "Benutzern den Zugriff nach Datum" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "Benutzern den Zugriff vom Wochentag" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "Benutzern den Zugriff von Stunden" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "Datumsbereich" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "Benutzerzugriff Bericht nach Datum" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "Bericht des Benutzerzugriffs auf Plattform nach Datum" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "Startdatum" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "Datum für den Bericht" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "Endtermin" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "Endtermin für Bericht" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "Anzahl der Punkte" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "Anzahl der Probenahmestellen in Diagrammen verwendet" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" -msgstr "Verwendungszweck der UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" +msgstr "Benutzern den Zugriff auf UDS" -#: reports/stats/usage.py:44 +#: reports/stats/login.py:345 +msgid "User access to UDS" +msgstr "Benutzerzugriff auf UDS" + +#: reports/stats/usage.py:45 msgid "Usage stats" msgstr "Nutzung stats" -#: reports/stats/usage.py:45 +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "Statistik Plattform Nutzungsbedingungen" @@ -1698,9 +1852,10 @@ msgstr "Hyper-v Cluster verknüpften Klon (experimentell)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -msgid "" -"Hyper Services based on templates and differential disks (experimental)" -msgstr "Hyper-Dienste basierend auf Vorlagen und differenzielle Datenträger (experimentell)" +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:76 @@ -1709,7 +1864,8 @@ msgstr "Hyper-Dienste basierend auf Vorlagen und differenzielle Datenträger (ex #: services/Vmware_enterprise/VCLinkedCloneService.py:39 #: services/Xen/XenLinkedService.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" +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:82 @@ -1717,7 +1873,9 @@ msgstr "Anzahl der gewünschten Maschinen warten für einen Benutzer ausgeführt #: services/Vmware_enterprise/VCLinkedCloneService.py:41 #: services/Xen/XenLinkedService.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" +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:100 @@ -1745,9 +1903,10 @@ msgstr "Netzwerk" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 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" +"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:104 @@ -1800,7 +1959,8 @@ msgstr "Länge des Dateinamens" #: services/OVirt/OVirtLinkedService.py:162 #: services/Vmware_enterprise/VCLinkedCloneService.py:82 msgid "Size of numeric part for the names of these machines (between 3 and 6)" -msgstr "Größe des numerischen Teils für die Namen dieser Maschinen (zwischen 3 und 6)" +msgstr "" +"Größe des numerischen Teils für die Namen dieser Maschinen (zwischen 3 und 6)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 #: services/HyperV_enterprise/HyperVLinkedService.py:125 @@ -1829,7 +1989,8 @@ msgstr "Hyper-v Cluster Service-Provider" #: services/HyperV_enterprise/HyperVClusterProvider.py:89 #: services/HyperV_enterprise/HyperVProvider.py:83 msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" -msgstr "Hyper-v Server IP oder Hostname (müssen erste WSMAN-Zugriff aktivieren)" +msgstr "" +"Hyper-v Server IP oder Hostname (müssen erste WSMAN-Zugriff aktivieren)" #: services/HyperV_enterprise/HyperVClusterProvider.py:90 #: services/HyperV_enterprise/HyperVProvider.py:84 @@ -1871,13 +2032,13 @@ msgstr "Der ausgewählte Server ist keines Clusters" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "Verbindungstest erfolgreich" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "Verbindung ist fehlgeschlagen. Kontrollkästchen Verbindung params" @@ -1977,7 +2138,9 @@ msgstr "oVirt Server IP oder Hostname" #: services/OVirt/OVirtProvider.py:97 msgid "User with valid privileges on oVirt, (use \"user@domain\" form)" -msgstr "Benutzer mit gültigen Berechtigungen auf oVirt, (\"user@domain\" Formular verwenden)" +msgstr "" +"Benutzer mit gültigen Berechtigungen auf oVirt, (\"user@domain\" Formular " +"verwenden)" #: services/OVirt/OVirtProvider.py:98 msgid "Password of the user of oVirt" @@ -2002,7 +2165,9 @@ msgstr "Physische Computer Ip erreichbar" #: services/PhysicalMachines/IPMachinesService.py:54 msgid "This service provides access to POWERED-ON Machines by ip" -msgstr "Dieser Service ermöglicht den Zugriff auf verknüpfte Clones Maschinen auf einen Virtual Center" +msgstr "" +"Dieser Service ermöglicht den Zugriff auf verknüpfte Clones Maschinen auf " +"einen Virtual Center" #: services/RDS_enterprise/RDSProvider.py:28 msgid "RDS Provider (Experimental)" @@ -2029,9 +2194,9 @@ msgid "Default password for users in list mapping" msgstr "Standard-Passwort für Benutzer in der Liste Zuordnung" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" -msgstr "Fehler: Benutzer {} in {Host} verwendet wird und nicht sofort entfernt werden" +msgid "Error: User {} on host {} is being used and cannot be removed right now" +msgstr "" +"Fehler: Benutzer {} in {Host} verwendet wird und nicht sofort entfernt werden" #: services/RDS_enterprise/RDSProvider.py:89 #: services/Sample/SampleProvider.py:178 @@ -2208,7 +2373,9 @@ msgstr "Kennwort des Benutzers des VC" msgid "" "Range of valid macs for created machines. Must be inside " "00:50:56:00:00:00-00:50:56:3F:FF:FF" -msgstr "Bereich gültige Mac erstellte Maschinen. Muss innerhalb 00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Bereich gültige Mac erstellte Maschinen. Muss innerhalb " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" #: services/Vmware_enterprise/ServiceProviderVC.py:40 msgid "VMWare Virtual Center Provider" @@ -2233,7 +2400,9 @@ msgstr "VMWare Linked Clone base" #: services/Vmware_enterprise/VCLinkedCloneService.py:33 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" +msgstr "" +"Dieser Service bietet Zugriff auf verknüpfte Klone Maschinen auf ein Virtual " +"Center" #: services/Vmware_enterprise/VCLinkedCloneService.py:53 msgid "Datacenter" @@ -2317,7 +2486,9 @@ msgstr "Schatten Speicher Multiplikator (Memory overcommit)" #: services/Xen/XenLinkedService.py:121 msgid "Length of numeric part for the names of this machines (beetwen 3 and 6" -msgstr "Länge der numerischen Teil für die Namen von diesen Maschinen (Beetwen 3 und 6" +msgstr "" +"Länge der numerischen Teil für die Namen von diesen Maschinen (Beetwen 3 und " +"6" #: services/Xen/XenProvider.py:79 msgid "Xenserver Platform Provider" @@ -2347,7 +2518,9 @@ msgstr "Zertifikat prüfen" msgid "" "If selected, certificate will be checked against system valid certificate " "providers" -msgstr "Wenn aktiviert, werden Zertifikat gegen System gültiges Zertifikat überprüft Anbieter" +msgstr "" +"Wenn aktiviert, werden Zertifikat gegen System gültiges Zertifikat überprüft " +"Anbieter" #: services/Xen/XenProvider.py:394 #, python-brace-format @@ -2523,7 +2696,8 @@ msgstr "Wählen Sie Bild hochladen" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:10 msgid "Name of the image. If left empty, will get the filename as name" -msgstr "Name des Bildes. Wenn leer gelassen, wird der Dateiname als Name erhalten." +msgstr "" +"Name des Bildes. Wenn leer gelassen, wird der Dateiname als Name erhalten." #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:7 @@ -2590,6 +2764,14 @@ msgstr "Vollzugriff" msgid "Transport" msgstr "Verkehr" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "Grund der Veröffentlichung" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "Grund für die Veröffentlichung (kann leer sein)" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "Fehler auf Anfrage" @@ -2617,13 +2799,17 @@ msgstr "Sie greifen UDS-Administration als Mitarbeiterin." #: templates/uds/admin/tmpl/restricted.html:33 msgid "This means that you have restricted access to assigned elements." -msgstr "Dies bedeutet, dass Sie Zugriff auf die zugewiesenen Elemente beschränkt haben." +msgstr "" +"Dies bedeutet, dass Sie Zugriff auf die zugewiesenen Elemente beschränkt " +"haben." #: templates/uds/admin/tmpl/restricted.html:34 msgid "" "In order to increase your privileges, please contact your local UDS " "administrator." -msgstr "Um Ihre Privilegien zu erhöhen, bitte kontaktieren Sie Ihren lokalen UDS Administrator." +msgstr "" +"Um Ihre Privilegien zu erhöhen, bitte kontaktieren Sie Ihren lokalen UDS " +"Administrator." #: templates/uds/admin/tmpl/restricted.html:36 msgid "Thank you." @@ -2666,7 +2852,9 @@ msgstr "Downloads" #: templates/uds/downloads.html:11 templates/uds/html5/downloads.html:10 msgid "" "This page contains a list of downloadables provided by different modules" -msgstr "Diese Seite enthält eine Liste der Downloads von verschiedenen Modulen bereitgestellt" +msgstr "" +"Diese Seite enthält eine Liste der Downloads von verschiedenen Modulen " +"bereitgestellt" #: templates/uds/html5/about.html:13 msgid "You can access UDS Open Source code at" @@ -2679,7 +2867,9 @@ msgstr "UDS wurde entwickelt mit folgenden Komponenten:" #: templates/uds/html5/about.html:41 msgid "" "If you found that we missed to mention any component, please let us know" -msgstr "Wenn Sie festgestellt, dass wir verpasst zu erwähnen eine beliebige Komponente, informieren Sie uns bitte" +msgstr "" +"Wenn Sie festgestellt, dass wir verpasst zu erwähnen eine beliebige " +"Komponente, informieren Sie uns bitte" #: templates/uds/html5/about.html:42 #: templates/uds/html5/service_not_ready.html:21 @@ -2698,7 +2888,8 @@ msgstr "Download UDS-Plugin für" msgid "" "In order to be able to execute UDS services, you need to have UDS plugin " "installed." -msgstr "Um UDS Services ausführen zu können, benötigen Sie UDS-plugin installiert." +msgstr "" +"Um UDS Services ausführen zu können, benötigen Sie UDS-plugin installiert." #: templates/uds/html5/download_client.html:14 msgid "Or download another version" @@ -2708,7 +2899,9 @@ msgstr "Oder laden Sie eine andere version" msgid "" "In case that your platform has been incorrectly detected, you can download " "manually the version required for your Operating System" -msgstr "Im Fall, dass Ihre Plattform falsch erkannt wurde können Sie herunterladen manuell die Version für Ihr Betriebssystem erforderlich" +msgstr "" +"Im Fall, dass Ihre Plattform falsch erkannt wurde können Sie herunterladen " +"manuell die Version für Ihr Betriebssystem erforderlich" #: templates/uds/html5/download_client.html:19 msgid "Linux UDS plugin" @@ -2726,7 +2919,10 @@ msgstr "Mac OSX (> 10.5) UDS-Plugin" msgid "" "If you already have UDS Plugin installed but this message persists to " "appear, you can disable automatic detection here" -msgstr "Wenn Sie bereits UDS-Plugin installiert haben, aber diese Meldung weiterhin angezeigt wird angezeigt werden, können Sie die automatischen Erkennung hier deaktivieren" +msgstr "" +"Wenn Sie bereits UDS-Plugin installiert haben, aber diese Meldung weiterhin " +"angezeigt wird angezeigt werden, können Sie die automatischen Erkennung hier " +"deaktivieren" #: templates/uds/html5/download_client.html:39 msgid "Automatic plugin detection is enabled" @@ -2740,13 +2936,17 @@ msgstr "Achtung: Automatische Plugin-Erkennung ist deaktiviert" msgid "" "Please, note that disabling automatic detection will not trigger this page " "again in case you don't have the plugin installed." -msgstr "Bitte beachten Sie, dass automatischen Erkennung deaktivieren nicht diese Seite ausgelöst wird wieder im Fall müssen Sie nicht das Plugin installiert." +msgstr "" +"Bitte beachten Sie, dass automatischen Erkennung deaktivieren nicht diese " +"Seite ausgelöst wird wieder im Fall müssen Sie nicht das Plugin installiert." #: templates/uds/html5/download_client.html:45 msgid "" "In this case, you will have to manually download the plugin by using the " "menu on upper right corner." -msgstr "In diesem Fall müssen Sie manuell das Plugin herunterladen mithilfe der Menü auf der rechten oberen Ecke." +msgstr "" +"In diesem Fall müssen Sie manuell das Plugin herunterladen mithilfe der Menü " +"auf der rechten oberen Ecke." #: templates/uds/html5/download_client.html:47 msgid "Return" @@ -2850,17 +3050,22 @@ msgstr "Der Dienst ist nicht bereit" msgid "" "The service is not ready at this moment. Please, try it again after a few " "seconds." -msgstr "Der Dienst ist im Moment nicht bereit. Bitte, versuchen Sie es erneut nach wenigen Sekunden." +msgstr "" +"Der Dienst ist im Moment nicht bereit. Bitte, versuchen Sie es erneut nach " +"wenigen Sekunden." #: templates/uds/html5/service_not_ready.html:18 msgid "" "The service you have requested was not ready, and it is being created right " "now. It will be availabe shortly" -msgstr "Der Service, den Sie angefordert haben, war nicht bereit, und es entsteht rechts jetzt. Es wird in Kürze verfügbar sein." +msgstr "" +"Der Service, den Sie angefordert haben, war nicht bereit, und es entsteht " +"rechts jetzt. Es wird in Kürze verfügbar sein." #: templates/uds/html5/service_not_ready.html:23 msgid "Please, close this window and relaunch again after a while." -msgstr "Bitte schließen Sie dieses Fenster und starten nach einer Weile wieder." +msgstr "" +"Bitte schließen Sie dieses Fenster und starten nach einer Weile wieder." #: templates/uds/html5/simpleLauncher.html:4 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:4 @@ -2889,7 +3094,9 @@ msgstr "Um den Dienst neu zu starten, musst du es vom Ursprung zu tun." msgid "" "If the service does not launchs automatically, probably you dont have the " "UDS plugin installed" -msgstr "Wenn der Dienst nicht geht automatisch tut, wahrscheinlich hast du die UDS-Plugin installiert" +msgstr "" +"Wenn der Dienst nicht geht automatisch tut, wahrscheinlich hast du die UDS-" +"Plugin installiert" #: templates/uds/html5/simpleLauncher.html:17 msgid "You can obtain it from the" @@ -2902,7 +3109,9 @@ msgstr "UDS-Plugin-Download-Seite" #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:12 msgid "Close this window and try to relaunch service from origin." -msgstr "Schließen Sie dieses Fenster und versuchen Sie, relaunch Service vom Ursprung." +msgstr "" +"Schließen Sie dieses Fenster und versuchen Sie, relaunch Service vom " +"Ursprung." #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:14 msgid "You can obtain required UDS plugin from the" @@ -2924,9 +3133,13 @@ msgstr "Einstellungen" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" -msgstr "Ihr Browser wird nur teilweise unterstützt. Bitte aktualisieren Sie es auf ein modernes HTML5-Browser wie Firefox, Chrome, Opera... (IE 10 oder besser, sein muss und müssen auch \"Compatibility View Mode\" für diese Seite deaktivieren)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" +msgstr "" +"Ihr Browser wird nur teilweise unterstützt. Bitte aktualisieren Sie es auf " +"ein modernes HTML5-Browser wie Firefox, Chrome, Opera... (IE 10 oder besser, " +"sein muss und müssen auch \"Compatibility View Mode\" für diese Seite " +"deaktivieren)" #: templates/uds/html5/templates/base.html:108 msgid "We use cookies to track usage and preferences" @@ -2947,7 +3160,9 @@ msgstr "Java nicht gefunden" #: templates/uds/index.html:71 msgid "" "Java is not available on your browser, and the selected transport needs it." -msgstr "Java ist nicht verfügbar in Ihrem Browser, und der ausgewählte Transport muss es." +msgstr "" +"Java ist nicht verfügbar in Ihrem Browser, und der ausgewählte Transport " +"muss es." #: templates/uds/index.html:72 msgid "Please, install latest version from" @@ -3017,7 +3232,9 @@ msgstr "Tunnelserver" msgid "" "Host of the tunnel server (use http/https & port if needed) as accesible " "from users" -msgstr "Host des Tunnelservers (Verwendung http/Https & Port bei Bedarf) als zugänglich von Benutzern" +msgstr "" +"Host des Tunnelservers (Verwendung http/Https & Port bei Bedarf) als " +"zugänglich von Benutzern" #: transports/HTML5RDP/HTML5RDP.py:69 transports/NX/NXTransport.py:65 #: transports/NX/TSNXTransport.py:72 transports/RDP/BaseRDPTransport.py:61 @@ -3035,7 +3252,9 @@ msgstr "Leere creds" #: transports/RGS_enterprise/TRGSTransport.py:52 #: transports/SPICE/BaseSPICETransport.py:67 msgid "If checked, the credentials used to connect will be emtpy" -msgstr "Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstellen einer leer sein." +msgstr "" +"Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstellen " +"einer leer sein." #: transports/HTML5RDP/HTML5RDP.py:70 transports/NX/NXTransport.py:66 #: transports/NX/TSNXTransport.py:73 transports/RDP/BaseRDPTransport.py:62 @@ -3043,7 +3262,9 @@ msgstr "Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstel #: transports/RGS_enterprise/TRGSTransport.py:53 #: transports/SPICE/BaseSPICETransport.py:72 msgid "If not empty, this username will be always used as credential" -msgstr "Wenn nicht leer ist, dieser Benutzername wird immer als verwendet Anmeldeinformationen" +msgstr "" +"Wenn nicht leer ist, dieser Benutzername wird immer als verwendet " +"Anmeldeinformationen" #: transports/HTML5RDP/HTML5RDP.py:71 transports/NX/NXTransport.py:67 #: transports/NX/TSNXTransport.py:74 transports/RDP/BaseRDPTransport.py:63 @@ -3051,7 +3272,9 @@ msgstr "Wenn nicht leer ist, dieser Benutzername wird immer als verwendet Anmeld #: transports/RGS_enterprise/TRGSTransport.py:54 #: transports/SPICE/BaseSPICETransport.py:77 msgid "If not empty, this password will be always used as credential" -msgstr "Wenn nicht leer ist, dieses Kennwort immer verwendet werden als Anmeldeinformationen" +msgstr "" +"Wenn nicht leer ist, dieses Kennwort immer verwendet werden als " +"Anmeldeinformationen" #: transports/HTML5RDP/HTML5RDP.py:72 transports/RDP/BaseRDPTransport.py:64 #: transports/RDS_enterprise/BaseRDSTransport.py:67 @@ -3063,16 +3286,20 @@ msgstr "Ohne Domäne" msgid "" "If checked, the domain part will always be emptied (to connecto to xrdp for " "example is needed)" -msgstr "Wenn diese Option aktiviert, wird der Domänenteil immer (zum Anschluss an Xrdp für geleert werden Beispiel ist erforderlich)" +msgstr "" +"Wenn diese Option aktiviert, wird der Domänenteil immer (zum Anschluss an " +"Xrdp für geleert werden Beispiel ist erforderlich)" #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 #: transports/RDS_enterprise/BaseRDSTransport.py:68 #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" -msgstr "Wenn nicht leer ist, dieser Domäne immer verwendet werden als Anmeldeinformationen (als DOMAIN verwendet\\Benutzer)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" +msgstr "" +"Wenn nicht leer ist, dieser Domäne immer verwendet werden als " +"Anmeldeinformationen (als DOMAIN verwendet\\Benutzer)" #: transports/HTML5RDP/HTML5RDP.py:74 msgid "Enable Audio" @@ -3082,7 +3309,9 @@ msgstr "Audio aktivieren" msgid "" "If checked, the audio will be redirected to client (if client browser " "supports it)" -msgstr "Wenn aktiviert, werden die Audiodaten auf Client weitergeleitet (wenn Client-Browser Es unterstützt)" +msgstr "" +"Wenn aktiviert, werden die Audiodaten auf Client weitergeleitet (wenn Client-" +"Browser Es unterstützt)" #: transports/HTML5RDP/HTML5RDP.py:75 msgid "Enable Printing" @@ -3092,7 +3321,9 @@ msgstr "Drucken aktivieren" msgid "" "If checked, the printing will be redirected to client (if client browser " "supports it)" -msgstr "Wenn diese Option aktiviert, wird der Druck auf Client weitergeleitet (wenn Client-Browser Es unterstützt)" +msgstr "" +"Wenn diese Option aktiviert, wird der Druck auf Client weitergeleitet (wenn " +"Client-Browser Es unterstützt)" #: transports/HTML5RDP/HTML5RDP.py:81 msgid "The server must be http or https" @@ -3155,37 +3386,42 @@ msgid "NX Transport for tunneled connection" msgstr "NX-Transport für getunnelte Verbindung" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "Tunnel-server" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" "IP or Hostname of tunnel server sent to client device (\"public\" ip) and " "port. (use HOST:PORT format)" -msgstr "IP-Adresse oder Hostname des Tunnel-Server geschickt, um Client-Gerät (\"öffentliche\" IP-Adresse) und Port. (verwenden Sie HOST: PORT-Format)" +msgstr "" +"IP-Adresse oder Hostname des Tunnel-Server geschickt, um Client-Gerät " +"(\"öffentliche\" IP-Adresse) und Port. (verwenden Sie HOST: PORT-Format)" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "Tunnel Host-Prüfung" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" -msgstr "Wenn nicht leer ist, wird dieser Server zu überprüfen, ob der Dienst ausgeführt wird, bevor Sie verwendet werden Benutzer zuweisen. (verwenden Sie HOST: PORT-Format)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" +msgstr "" +"Wenn nicht leer ist, wird dieser Server zu überprüfen, ob der Dienst " +"ausgeführt wird, bevor Sie verwendet werden Benutzer zuweisen. (verwenden " +"Sie HOST: PORT-Format)" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3203,7 +3439,9 @@ msgstr "Ermöglichen Smartcards" #: transports/RDP/BaseRDPTransport.py:66 #: transports/RDS_enterprise/BaseRDSTransport.py:69 msgid "If checked, this transport will allow the use of smartcards" -msgstr "Wenn aktiviert, wird dieser Transport ermöglichen die Verwendung von smartcards" +msgstr "" +"Wenn aktiviert, wird dieser Transport ermöglichen die Verwendung von " +"smartcards" #: transports/RDP/BaseRDPTransport.py:67 #: transports/RDS_enterprise/BaseRDSTransport.py:70 @@ -3213,7 +3451,9 @@ msgstr "Druckerveröffentlichung zulassen" #: transports/RDP/BaseRDPTransport.py:67 #: transports/RDS_enterprise/BaseRDSTransport.py:70 msgid "If checked, this transport will allow the use of user printers" -msgstr "Wenn diese Option aktiviert, wird dieser Transport die Verwendung von Benutzer Drucker ermöglichen." +msgstr "" +"Wenn diese Option aktiviert, wird dieser Transport die Verwendung von " +"Benutzer Drucker ermöglichen." #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 @@ -3223,7 +3463,9 @@ msgstr "Laufwerke ermöglichen" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 msgid "If checked, this transport will allow the use of user drives" -msgstr "Wenn aktiviert, wird dieser Transport die Verwendung von Benutzer-Laufwerke erlauben." +msgstr "" +"Wenn aktiviert, wird dieser Transport die Verwendung von Benutzer-Laufwerke " +"erlauben." #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 @@ -3233,39 +3475,39 @@ msgstr "Ermöglichen Serien" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 msgid "If checked, this transport will allow the use of user serial ports" -msgstr "Wenn aktiviert, wird dieser Transport die Verwendung des Benutzers erlauben serielle ports" +msgstr "" +"Wenn aktiviert, wird dieser Transport die Verwendung des Benutzers erlauben " +"serielle ports" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "Zeigen wallpaper" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" -msgstr "Wenn diese Option aktiviert ist, be die Tapete und Themen Maschine (bessere User will shown Erfahrung, mehr Bandbreite)" +msgstr "" +"Wenn diese Option aktiviert ist, be die Tapete und Themen Maschine (bessere " +"User will shown Erfahrung, mehr Bandbreite)" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "Mehrere Monitore" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" -msgstr "Wenn diese Option aktiviert, werden alle Clientmonitore für anzeigen (funktioniert nur auf verwendet Windows-Clients)" +msgstr "" +"Wenn diese Option aktiviert, werden alle Clientmonitore für anzeigen " +"(funktioniert nur auf verwendet Windows-Clients)" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "Ermöglichen Aero" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "Wenn aktiviert, wird die Desktopgestaltung zugelassen" @@ -3331,7 +3573,9 @@ msgstr "Einstellbare Qualität" #: transports/RGS_enterprise/RGSTransport.py:51 #: transports/RGS_enterprise/TRGSTransport.py:59 msgid "If checked, the image quality will be adjustable with bandwidth" -msgstr "Wenn diese Option aktiviert, wird die Bildqualität mit Bandbreite einstellbar sein" +msgstr "" +"Wenn diese Option aktiviert, wird die Bildqualität mit Bandbreite " +"einstellbar sein" #: transports/RGS_enterprise/RGSTransport.py:52 #: transports/RGS_enterprise/TRGSTransport.py:60 @@ -3343,7 +3587,9 @@ msgstr "Min. einstellbare Qualität" 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." +msgstr "" +"Die niedrigste Bildqualität auf Bilder weiterhin das minimale Update " +"angewendet Rate." #: transports/RGS_enterprise/RGSTransport.py:54 #: transports/RGS_enterprise/TRGSTransport.py:62 @@ -3365,7 +3611,9 @@ msgstr "Match Ortsauflösung" 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" +msgstr "" +"Auflösung des Absenders an den Empfänger Auflösung anpassen ändern Wenn " +"Herstellen einer Verbindung" #: transports/RGS_enterprise/RGSTransport.py:58 #: transports/RGS_enterprise/TRGSTransport.py:66 @@ -3407,9 +3655,12 @@ msgstr "RGS-Transport für getunnelte Verbindung" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." -msgstr "Serverzertifikat (öffentl.), finden Sie auf Ihren Motor Ovirt wahrscheinlich unter /etc/PKI/ovirt-Engine/certs/ca.der (verwenden Sie den Inhalt dieser Datei)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +msgstr "" +"Serverzertifikat (öffentl.), finden Sie auf Ihren Motor Ovirt wahrscheinlich " +"unter /etc/PKI/ovirt-Engine/certs/ca.der (verwenden Sie den Inhalt dieser " +"Datei)." #: transports/SPICE/SPICETransport.py:52 msgid "RHEV/oVirt SPICE Transport (direct)" @@ -3435,7 +3686,9 @@ msgstr "Unbekannter Fehler" msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" -msgstr "Ungültiger Service. Der Dienst ist nicht verfügbar im Moment. Bitte, versuchen Sie später" +msgstr "" +"Ungültiger Service. Der Dienst ist nicht verfügbar im Moment. Bitte, " +"versuchen Sie später" #: web/errors.py:75 msgid "Maximum services limit reached. Please, contact administrator" @@ -3461,7 +3714,9 @@ msgstr "Ungültige Anforderung empfangen" msgid "" "Your browser is not supported. Please, upgrade it to a modern HTML5 browser " "like Firefox or Chrome" -msgstr "Ihr Browser wird nicht unterstützt. Bitte aktualisieren Sie es auf einen modernen Browser mit HTML5 wie Firefox oder Chrome" +msgstr "" +"Ihr Browser wird nicht unterstützt. Bitte aktualisieren Sie es auf einen " +"modernen Browser mit HTML5 wie Firefox oder Chrome" #: web/errors.py:82 msgid "The requested service is in maintenance mode" @@ -3471,7 +3726,9 @@ msgstr "Der angeforderte Dienst ist im Wartungsmodus" msgid "" "The service is not ready.\n" "Please, try again in a few moments." -msgstr "Der Dienst ist nicht bereit.Bitte, versuchen Sie es erneut in wenigen Augenblicken." +msgstr "" +"Der Dienst ist nicht bereit.Bitte, versuchen Sie es erneut in wenigen " +"Augenblicken." #: web/forms/LoginForm.py:54 msgid "Select authenticator" diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/de/LC_MESSAGES/djangojs.mo index 113ee807ee6c0f5d482d790693d2aff137826041..9c4d6df712081a07e113b1815f7dff2d92902b16 100644 GIT binary patch delta 3907 zcmYk;3y_Uv9LMpewd|$PvMI9m*tKYFt3BA3v`W!UYPD`DU6e#ZH*D&lLPVF1F053# zCuw!lbk9UH)tF{X(P+BO=rWZ_rkYgW?>Wyly|cgbdEfWE@B2K@|9RfSi{tl>OYP~9 zy)v*hldfcQ>kxj%5r^`@mfJprQq03Pcr3QU{+Nd~*cOK(w}x}k>&KwiH=xg55M7I1 zIDQSeJ{5Md(}@$Gqc{AD9q>==h;0uKA&K4b2&_jRFcq`$Hq6DP=>3g&7(R&ng(vtZ z#8=|^53wD`yV9mY_>P^UIPp937YYhOaPTGQg_USSC&uHUXb0;sA1^~2oDrRe4(N9D z{&i@jHezRd6|K}KcqHwI&)D&Xeer@^p6*CXumo%3@dWg`S$H%qK}WtG9r*^dBb(## z+ei_^HnhP{(Ms$=EBh;^9BB?m?1zr%1A5}A*blv74p!iDbVOS)2e+e@*%94|R&aMb z{tq`qk*1KZCt-D<<$KbP=~taksBaIr^H6#DO>skHN<x!;bxgR6iU*+skK^o=;V>fb7-^<&&wdv+DN7_W=Rv(XW!Fg*om z2O4qpAtBs{-8t@8lY_jl%@PEB#NH@ar3imAUn9Ks137=^wz)6ml2 z7>}2ubJv7U(dPL5w)p)nbjrR*7uj!U$MO@I=aixM9gntm7TVs#L@IM)HYdDbDO$?4 z=$d#7sczVc&f%Bn_kW-xJ(>eYT8nmY60+Vx1D4^v=#*|jEBy{Sub=l~8N*YW#L z{cN}sTAChc$*a*R8HGM@GPc6&(d*_$m!TbNLKoS3I8ROVR5a(79iRj%Xcv{YK2eE$HvY zJ7^_8M(_I?ozng2`U`)v<6I@^p07nUCh#1zGBeSNG@^6)2DZTu(1vzkHhvbr--CAS zd$jcbAU`Rg3lFh_HCT+Nlv95joWu#|Y94yL3UhHI+R!WU_|5qJHnf2+(fbadYvOR~ z?R_QaTIqvX*cZ7ZB+;q75C`D0KGZ+K&fA=@#9yJ6_y=9pM^t1wP=>8JuE0D@q9Y!R zR^Vi`Lua5Jo`^PlIUa&OYb|-297>jvn@IZqe~+-^_F#ter=7WlEGCuYPO^ZkB2@Fg zt)9K($$ex|JexpA{{(SCy3HexlSyPKDIsptSMo7|^e4}dC&@j;g=tBBBd#SUk(SMo zK15th&hJbznpoO9$gRZfIx>=+LM;EV#;Ud*Q)Ag1Pg=Is>~tp=lHnwa3?{wE{e-Cq zvx(bt8N&5Al?)*ZiIeU&pFBoxCufs$Nl((UP0kD~^Bdc8@=A7|jR)7@1!Nj|fw&l+ zC;#6XIoL=piYE_?`m;ENEFrg%IixRfMZ29r8Z2xNcE*tP#O-GCRCIC>ZQ(&m%p z#MS5aXomEU{aNha5RYAjn~3k(#pG^sCaET;k%=U|(SA6G_>18-f)taJNd?(JW{_-> zByN|GQ`39=;N$6}CLZVE<>Ul1h?J2g@-P`id_Sj?mM#514iDPKGxy@$xZjK&$a&-e zGJsr7#u5Kfa62wTxFWg+&yV}1cp0f9H^y_bus1m|bDUZEmvV4b=0vECE{%rfqV{{U on~Ms6&&f?zC6ZNxlF7!Rt_csS1`evKZXVXPTTb)*(gAt@0s!DttN;K2 delta 3998 zcmZA33v5;O0mtz_QYdXvo&}YzoC>W%dDIF5)xj#rWT4bl6f5G|t^$g;igfruu7Io} zibxe7fCB1Js)AJ17*OK_w+t6Iw*)mYn$5>BI1t$;F>c@Qy?+<8lm71K|3CMf^M9TT zpU>QNY5K$7IrjyQ=SUIR-6e#>IIDmUj-*EjgRlg<;R^m7;#QEq0mSGNV#BR6+y}up1 z<4)u+yuwFcd?%j&1W%y;RmOA(oqC0EA}4wx=fV(l@KxxAlhKA|#Cjdt!FiaEi_r#K zqxYf%+Kk@+B05uV;Ys*Mbf&(*{_<2cCzHqy`=7CD9b}7gq4$^$($& z?qOu|!c*uJza0H7W;%*C{BiUk+JSG-8O|?c{(VqF&8ZxL$Ke=sPgJ36T#I&WHhNuC z{5}^!A@OyM=Kfu%QC?;5(<}P>h1oXA3LtmFAI1bn25c~^P;(u@? zRx-b(*nob2JKDfbbkFQVE)D-c{z6wqW5|(o3H|3=`k~Y6``iXvm%jOVI~zK^xj0 zeIDIRd(e)&hF6U_-Z{4cvxK(Mq(T zjp!zO0$tOW(2?y$H{(0eKch>xA6#!!e4qdAa z=w^H@*0-V~-j10iKs)d{uJ6PT43*k7QTtjKqnqD7zd;GPeGSvdUWPM=HE?I z&k1|jj5e?geQnmGQ{Nuzd(gFe8(pHm#qa+ezt2yyOLj84$x6|VRiV$Bf!;R1K zFFh)&UU=+rMqm*x@lx(>8~*U;4`d_gd z^>5LJx-gH{yQ9|^q795d@0*D3iObRJn$f*-10IKqkw=AeIrHyYZsWvg+>Z&KFf2R8 zBhi_dhVJSHv;zyU3*Lx%m_|pu5}kq7XouFJ*SDh$@5D}+A|CTx|Fy(*ypeo=tf$}& z50DL{mOMk&ke?FQw}VuYEu@*uAkPvz@*Cn?(?UE}lgEgi{w2AP(3g;2$j2|pV&X`C zcsOM&ad;@6d=PISSCf1)iHsmC$j!uq3C#SEWh(K*nR6L7lG$Vd@wkunGdtVLQgSCb zo196mB~9d4WF@(Zc=$?g%amAOoKEg0z7f}xC1ertD9G}^&r>K}M9v{klKHeBZlW-T zc(_)VW=h$edOPK=&&av)+*F)M#>IO2ItnL|O(Y@blU`&p zsV5%Skf+H`(m;k14|lr9Wn>_kV};`hvV&|VeaJoJ=j49k@fyRd%2!lo2AwlpO*-g$NA&g7<+2_2P#&dmES DzH)BU diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po index b751ebe6..bc31a191 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Adolfo Gómez , 2012 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:02+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: German (http://www.transifex.com/projects/p/openuds/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/openuds/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -415,123 +416,121 @@ msgstr "Löschen-Dienstleister" msgid "Services Provider deletion error" msgstr "Service Provider löschen Fehler" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "Fehler" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "Cache-Element entfernen" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "Fehler löschen" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "Gruppe hinzufügen" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "Sie müssen Authentifikator und Gruppe bereitstellen." -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "Gruppe entfernen" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "Gruppe entfernen Fehler" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "Ja" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "Nr." -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "Zugewiesene Dienst entfernen" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "Transport hinzufügen" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "Sie müssen einen Transport bereitstellen." -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "Verkehr zu entfernen" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "Transportfehler entfernen" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "Abbrechen" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "Veröffentlichen" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "Veröffentlichung einzustellen" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "Kraft \"Abbrechen\"" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "Starten neue Publikation zu?" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "Fehler beim Erstellen von Publikation" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "Zurückhaltend" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "Neue Service-pool" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "Fehler beim Erstellen" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "Bei der Erstellung zu veröffentlichen" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" -msgstr "Wenn ausgewählt, wird die Publikation Inmediatly nach Erstellung einleiten." +msgstr "" +"Wenn ausgewählt, wird die Publikation Inmediatly nach Erstellung einleiten." -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "Bearbeiten" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "Speichern von Fehler" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "Löschen" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "Fehler löschen" diff --git a/server/src/uds/locale/en/LC_MESSAGES/django.mo b/server/src/uds/locale/en/LC_MESSAGES/django.mo index 41539ab181dc8aa6f8f2154e41b45c5ed9fc6ca4..253ef63b7b6500768869b961a632123b1488e2f9 100644 GIT binary patch delta 18 Zcmeyx^owaiKZlW_f{~$>kiTT9oj{!h22DktK diff --git a/server/src/uds/locale/en/LC_MESSAGES/django.po b/server/src/uds/locale/en/LC_MESSAGES/django.po index 173b98e8..00da89b9 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/django.po +++ b/server/src/uds/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:47+0200\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,7 +41,7 @@ msgstr "" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -50,7 +50,7 @@ msgstr "" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -67,8 +67,8 @@ msgstr "" msgid "Tag" msgstr "" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -208,104 +208,104 @@ msgstr "" msgid "User services" msgstr "" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" msgstr "" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" msgstr "" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" msgstr "" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" msgstr "" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "" @@ -348,7 +348,7 @@ msgid "Creation date" msgstr "" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "" @@ -394,7 +394,8 @@ msgid "Cached services" msgstr "" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "" @@ -416,19 +417,23 @@ msgstr "" msgid "Assigned transports" msgstr "" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -459,7 +464,8 @@ msgstr "" msgid "state" msgstr "" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "" @@ -530,18 +536,18 @@ msgid "requested a template that do not exist" msgstr "" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "" @@ -1122,15 +1128,15 @@ msgstr "" msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" msgstr "" @@ -1199,6 +1205,10 @@ msgstr "" msgid "Base report" msgstr "" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "" @@ -1474,14 +1484,28 @@ msgstr "" msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" msgstr "" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" msgstr "" +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "" + #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" msgstr "" @@ -1626,64 +1650,101 @@ msgstr "" msgid "UDS Actor for windows machines" msgstr "" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +msgid "User ID" +msgstr "" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +msgid "Real Name" +msgstr "" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" msgstr "" -#: reports/stats/usage.py:44 -msgid "Usage stats" +#: reports/stats/login.py:345 +msgid "User access to UDS" msgstr "" #: reports/stats/usage.py:45 +msgid "Usage stats" +msgstr "" + +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "" @@ -1864,13 +1925,13 @@ msgstr "" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "" @@ -2582,6 +2643,14 @@ msgstr "" msgid "Transport" msgstr "" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "" @@ -3147,14 +3216,14 @@ msgid "NX Transport for tunneled connection" msgstr "" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" @@ -3163,13 +3232,13 @@ msgid "" msgstr "" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" "If not empty, this server will be used to check if service is running before " @@ -3177,7 +3246,7 @@ msgid "" msgstr "" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3228,36 +3297,30 @@ msgid "If checked, this transport will allow the use of user serial ports" msgstr "" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" msgstr "" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" msgstr "" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "" diff --git a/server/src/uds/locale/en/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/en/LC_MESSAGES/djangojs.mo index 41539ab181dc8aa6f8f2154e41b45c5ed9fc6ca4..253ef63b7b6500768869b961a632123b1488e2f9 100644 GIT binary patch delta 18 Zcmeyx^owaiKZlW_f{~$>kiTT9oj{!h22DktK diff --git a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po index 138b96d0..c9830d9b 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:47+0200\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -414,123 +414,120 @@ msgstr "" msgid "Services Provider deletion error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "" diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.mo b/server/src/uds/locale/es/LC_MESSAGES/django.mo index 92fa160bbbd1e29f95ccf147e9bff5cfe77f772b..b4ff3febef8bef1f848ed02b4d4cce6e3e67aeb9 100644 GIT binary patch delta 19805 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 diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.po b/server/src/uds/locale/es/LC_MESSAGES/django.po index b2d0dc96..350d2bd5 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/django.po +++ b/server/src/uds/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Adolfo Gómez , 2012-2014 # Adolfo Gómez , 2014-2015 @@ -13,14 +13,15 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:51+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/openuds/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/openuds/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -47,7 +48,7 @@ msgstr "Autenticadores actuales" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -56,7 +57,7 @@ msgstr "Nombre" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -73,8 +74,8 @@ msgstr "Prioridad" msgid "Tag" msgstr "Etiqueta" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -122,15 +123,17 @@ msgstr "Rango de red" msgid "" "Network range. Accepts most network definitions formats (range, subnet, " "host, etc..." -msgstr "Rango de la red. Acepta la mayoría de formatos de definiciones de red (rango, subred, host, etc..." +msgstr "" +"Rango de la red. Acepta la mayoría de formatos de definiciones de red " +"(rango, subred, host, etc..." #: REST/methods/osmanagers.py:55 msgid "Current OS Managers" -msgstr "OS Managers Actuales" +msgstr "Actuales OS Managers" #: REST/methods/osmanagers.py:79 msgid "Can't delete an OS Manager with services pools associated" -msgstr "No se puede eliminar OS Manager con services pools asociados" +msgstr "No se puede eliminar OS Manager con pools de servicios asociados" #: REST/methods/providers.py:60 msgid "Service providers" @@ -214,104 +217,110 @@ msgstr "Servicios desplegados" msgid "User services" msgstr "Servicios de usuario" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "Pools de servicios" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "Servicio Padre" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "estado" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "Muestra transportes" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" msgstr "Cree al menos un OS Manager antes de crear un nuevo pool de servicios" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "Cree al menos un servicio antes de crear un nuevo pool de servicios" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "Servicio base" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "Servicio utilizado como base de este pool de servicios" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "OS Manager" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "OS Manager utilizado como base de este pool de servicios" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "Imagen asociada" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" -msgstr "Imagen asociada con este servicio" +msgstr "Imagen asociada a este servicio" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "Servicios disponibles inicialmente" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "Servicios creados inicialmente para este pool de servicios" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "Servicios para mantener en la caché" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" -msgstr "Servicios guardado en caché para asignación de servicio de usuario mejorada" +msgstr "" +"Servicios guardado en caché para mejorar la asignación de servicio de " +"usuario " -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "Servicios para mantener en la caché L2" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" -msgstr "Servicios guardado en la caché de nivel 2 para la generación de servicio mejorados" +msgstr "" +"Servicios guardados en la caché de nivel 2 para mejorar la generación de " +"servicios " -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "Número máximo de servicios a proveer" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" -msgstr "Número máximo de servicios (asignados y caché L1) que pueden crearse para este pool de servicios" +msgstr "" +"Número máximo de servicios (asignados y caché L1) que pueden crearse para " +"este servicio" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "Mostrar transportes" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "Si está activo, se mostrarán transportes alternativos para el usuario " -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "Ya no existe servicio base" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "Este servicio requiere un OS Manager" @@ -327,7 +336,10 @@ msgstr "Acceso de red" msgid "" "If checked, the transport will be enabled for the selected networks.If " "unchecked, transport will be disabled for selected networks" -msgstr "Si está marcada, se habilitará el transporte para las redes seleccionadas. Si no esá marcada, el transporte estará desactivado para las redes seleccionadas" +msgstr "" +"Si está seleccionada, se habilitará el transporte para las redes " +"seleccionadas. Si no esá seleccionada, el transporte estará desactivado para " +"las redes seleccionadas" #: REST/methods/transports.py:78 templates/uds/html5/index.html:81 #: templates/uds/index.html:79 @@ -338,7 +350,9 @@ msgstr "Redes" msgid "" "Networks associated with this transport. If No network selected, will mean " "\"all networks\"" -msgstr "Redes asociadas a este transporte. Si no hay red seleccionada, significará \"todas las redes\"" +msgstr "" +"Redes asociadas a este transporte. Si no hay red seleccionada, significará " +"\"todas las redes\"" #: REST/methods/user_services.py:80 REST/methods/user_services.py:81 msgid "unknown" @@ -354,7 +368,7 @@ msgid "Creation date" msgstr "Fecha de creación" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "Revisión" @@ -393,14 +407,15 @@ msgstr "Versión de actor" #: REST/methods/user_services.py:151 msgid "Item is not removable" -msgstr "El artículo no se puede eliminar" +msgstr "El elemento no se puede eliminar" #: REST/methods/user_services.py:175 msgid "Cached services" msgstr "Servicios en caché" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "Estado" @@ -422,19 +437,23 @@ msgstr "Comentarios" msgid "Assigned transports" msgstr "Transportes asignados" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "Publicaciones" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "Fecha de publicación" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "Razón" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "Registro de cambios" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -465,7 +484,8 @@ msgstr "Nombre de usuario" msgid "state" msgstr "estado" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "Último acceso" @@ -505,7 +525,8 @@ msgstr "Comentarios para este elemento" #: REST/model.py:136 msgid "" "Selects the priority of this element (lower number means higher priority)" -msgstr "Selecciona la prioridad de este elemento (menor número significa mayor prioridad)" +msgstr "" +"Selecciona la prioridad de este elemento (a menor número, mayor prioridad)" #: REST/model.py:147 msgid "Tag for this element" @@ -513,7 +534,7 @@ msgstr "Etiqueta para este elemento" #: REST/model.py:228 msgid "Invalid Request" -msgstr "Solicitud inválida" +msgstr "Solicitud no válida" #: REST/model.py:235 msgid "Method not found in {}: {}" @@ -529,25 +550,25 @@ msgstr "Acceso denegado" #: REST/model.py:248 msgid "Operation not supported" -msgstr "Operación no admitida" +msgstr "Operación no soportada" #: admin/views/__init__.py:64 msgid "requested a template that do not exist" msgstr "solicitó una plantilla que no existe" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "Página %(page_number)d de %(page_count)d" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "Impreso en %(now:%Y, %b %d)s en %(now:%H:%M)s" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "Lista de usuarios para {}" @@ -574,7 +595,7 @@ msgstr "Usar SSL" #: auths/ActiveDirectory_enterprise/Authenticator.py:36 msgid "If checked, a ssl connection to Active Directory will be used" -msgstr "Si está marcada, se utilizará una conexión ssl a Active Directory" +msgstr "Si está seleccionada, se utilizará una conexión ssl a Active Directory" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility" @@ -582,7 +603,9 @@ msgstr "Compatibilidad" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility of AD connection (Usually windows 2000 and later)" -msgstr "Compatibilidad de conexión AD (normalmente windows 2000 y versiones posteriores)" +msgstr "" +"Compatibilidad de conexión AD (normalmente windows 2000 y versiones " +"posteriores)" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 #: auths/RegexLdap/Authenticator.py:59 auths/SimpleLDAP/Authenticator.py:60 @@ -591,9 +614,11 @@ msgstr "Usuario LDAP" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 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 (use el formato USUARIO@DOMINIO.DOM)" +"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 (use el " +"formato USUARIO@DOMINIO.DOM)" #: auths/ActiveDirectory_enterprise/Authenticator.py:40 #: auths/ActiveDirectory_enterprise/Authenticator.py:58 @@ -620,7 +645,7 @@ msgstr "Contraseña" #: auths/EDirectory_enterprise/Authenticator.py:66 #: auths/RegexLdap/Authenticator.py:60 auths/SimpleLDAP/Authenticator.py:61 msgid "Password of the ldap user" -msgstr "Contraseña del usuario de LDAP" +msgstr "Contraseña del usuario LDAP" #: auths/ActiveDirectory_enterprise/Authenticator.py:41 #: auths/EDirectory_enterprise/Authenticator.py:67 @@ -638,7 +663,7 @@ msgstr "Tiempo de espera en segundos de conexión a Active Directory" #: auths/ActiveDirectory_enterprise/Authenticator.py:43 msgid "Active Directory Authenticator" -msgstr "Autenticador de Active Directory" +msgstr "Autenticador Active Directory" #: auths/ActiveDirectory_enterprise/Authenticator.py:45 msgid "Authenticate against Active Directory" @@ -647,7 +672,9 @@ msgstr "Autenticar contra Active Directory" #: auths/ActiveDirectory_enterprise/Authenticator.py:73 #: auths/ActiveDirectory_enterprise/Authenticator.py:461 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" -msgstr "Debe especificar el nombre de usuario con este formato: NOMBREDEUSUARIO@DOMAIN.DOM" +msgstr "" +"Debe especificar el nombre de usuario con este formato: " +"NOMBREDEUSUARIO@DOMAIN.DOM" #: auths/ActiveDirectory_enterprise/Authenticator.py:177 msgid "Active directory connection error: " @@ -677,7 +704,7 @@ msgstr "Demasiados resultados, sea más específico" #: auths/ActiveDirectory_enterprise/Authenticator.py:470 msgid "Domain seems to be incorrect, please check it" -msgstr "Dominio parece ser incorrecto, por favor compruébelo" +msgstr "Dominio parece incorrecto, por favor compruébelo" #: auths/ActiveDirectory_enterprise/Authenticator.py:475 msgid "" @@ -693,13 +720,16 @@ msgstr "Servidor no parece un Active Directory (no tiene objetos de grupo)" msgid "" "Server does not seem an Active Directory (it does not have any user nor " "groups)" -msgstr "Servidor no parece un Active Directory (no tiene ni usuarios ni grupos)" +msgstr "" +"Servidor no parece un Active Directory (no tiene ni usuarios ni grupos)" #: auths/ActiveDirectory_enterprise/Authenticator.py:496 #: auths/EDirectory_enterprise/Authenticator.py:360 #: auths/RegexLdap/Authenticator.py:436 auths/SimpleLDAP/Authenticator.py:435 msgid "Connection params seem correct, test was succesfully executed" -msgstr "Los parámetros de conexión parecen correctos, la prueba fue ejecutada con éxito" +msgstr "" +"Los parámetros de conexión parecen correctos, la prueba fue ejecutada con " +"éxito" #: auths/EDirectory_enterprise/Authenticator.py:62 msgid "EDirectory Server IP or Hostname" @@ -716,12 +746,14 @@ msgstr "Puerto" #: auths/EDirectory_enterprise/Authenticator.py:63 #: auths/RegexLdap/Authenticator.py:57 auths/SimpleLDAP/Authenticator.py:58 msgid "Ldap port (usually 389 for non ssl and 636 for ssl)" -msgstr "Puerto LDAP (generalmente 389 para los que no son SSL) y 636 para ssl" +msgstr "Puerto LDAP (generalmente 389 para los que no son SSL y 636 para ssl)" #: auths/EDirectory_enterprise/Authenticator.py:64 #: auths/RegexLdap/Authenticator.py:58 auths/SimpleLDAP/Authenticator.py:59 msgid "If checked, the connection will be ssl, using port 636 instead of 389" -msgstr "Si está marcada, la conexión será ssl, usando el puerto 636 en lugar de 389" +msgstr "" +"Si está seleccionada, la conexión será ssl, usando el puerto 636 en lugar de " +"389" #: auths/EDirectory_enterprise/Authenticator.py:65 msgid "Admin user" @@ -757,14 +789,18 @@ msgstr "La base de búsqueda LDAP es incorrecta" #: auths/EDirectory_enterprise/Authenticator.py:330 #: auths/RegexLdap/Authenticator.py:402 auths/SimpleLDAP/Authenticator.py:382 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)" +msgstr "" +"La clase de usuario de LDAP parece ser incorrecta (ningún usuario encontrado " +"por esa clase)" #: auths/EDirectory_enterprise/Authenticator.py:338 #: auths/SimpleLDAP/Authenticator.py:398 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" -msgstr "El atributo de id de usuario Ldap parece ser incorrecto (ningún usuario encontrado por ese atributo)" +msgstr "" +"El atributo de id de usuario Ldap parece ser incorrecto (ningún usuario " +"encontrado por ese atributo)" #: auths/EDirectory_enterprise/Authenticator.py:346 msgid "Expected group attribute " @@ -773,7 +809,9 @@ msgstr "Atributo de grupo previsto" #: auths/EDirectory_enterprise/Authenticator.py:355 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" -msgstr "La clase de usuario LDAP o el atributo id de usuario son probablemente incorrectos (¿Ldap es un eDirectory?)" +msgstr "" +"La clase de usuario LDAP o el atributo id de usuario son probablemente " +"incorrectos (¿Ldap es un eDirectory?)" #: auths/IP/Authenticator.py:52 msgid "Accept proxy" @@ -781,17 +819,20 @@ msgstr "Aceptar proxy" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" -msgstr "Si está marcada, las solicitudes a través de proxy tendrá dirección IP REENVIADO (tenga cuidado cuando esté siendo revisado, puede coger las direcciones IP internas de internet)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" +msgstr "" +"Si está seleccionada, las solicitudes a través de proxy tendrán dirección IP " +"REENVIADO (tenga cuidado si lo selecciona, puede coger direcciones IP " +"internas de internet)" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 msgid "IP Authenticator" -msgstr "Autenticador por IP" +msgstr "Autenticador IP" #: auths/IP/Authenticator.py:61 msgid "IP Range" -msgstr "Intervalo IP" +msgstr "Rango IP" #: auths/IP/Authenticator.py:103 auths/IP/Authenticator.py:106 msgid "All seems to be fine." @@ -811,7 +852,7 @@ msgstr "Diferente usuario para cada host" #: auths/InternalDB/Authenticator.py:63 msgid "If checked, each host will have a different user name" -msgstr "Si está activado, cada host tendrá un nombre de usuario diferente" +msgstr "Si está seleccionado, cada host tendrá un nombre de usuario diferente" #: auths/InternalDB/Authenticator.py:64 msgid "Reverse DNS" @@ -819,7 +860,7 @@ msgstr "DNS Inversa" #: auths/InternalDB/Authenticator.py:64 msgid "If checked, the host will be reversed dns" -msgstr "Si está activado, el host será DNS Inversa" +msgstr "Si está seleccionado, el host será DNS Inversa" #: auths/InternalDB/Authenticator.py:128 msgid "Internal structures seems ok" @@ -855,7 +896,7 @@ msgstr "Clase para usuarios LDAP (normalmente posixAccount)" #: auths/RegexLdap/Authenticator.py:64 auths/SimpleLDAP/Authenticator.py:65 msgid "User Id Attr" -msgstr "Attr. de Id de usuario" +msgstr "Atr. de Id de usuario" #: auths/RegexLdap/Authenticator.py:64 auths/SimpleLDAP/Authenticator.py:65 msgid "Attribute that contains the user id" @@ -863,12 +904,13 @@ msgstr "Atributo que contiene el id de usuario" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 msgid "User Name Attr" -msgstr "Attr. de nombre de usuario" +msgstr "Atr. de nombre de usuario" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" -msgstr "Atributos que contienen el nombre de usuario (lista de valores separados por comas)" +msgid "Attributes that contains the user name (list of comma separated values)" +msgstr "" +"Atributos que contienen el nombre de usuario (lista de valores separados por " +"comas)" #: auths/RegexLdap/Authenticator.py:66 msgid "Group Name Attr" @@ -884,19 +926,23 @@ msgstr "Autenticador Regex LDAP" #: auths/RegexLdap/Authenticator.py:71 msgid "Regular Expressions LDAP authenticator" -msgstr "Autenticador LDAP por expresiones regulares" +msgstr "Expresiones regulares autenticador LDAP " #: auths/RegexLdap/Authenticator.py:411 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" -msgstr "El atributo del id de usuario LDAP es probablemente incorrectos (no se puede encontrar ningún usuario con ambas condiciones)" +msgstr "" +"El atributo del id de usuario LDAP es probablemente incorrecto (no se puede " +"encontrar ningún usuario con ambas condiciones)" #: auths/RegexLdap/Authenticator.py:425 auths/SimpleLDAP/Authenticator.py:406 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -msgstr "El atributo de id de grupo LDAP parece ser incorrecto (ningún grupo encontrado por ese atributo)" +msgstr "" +"El atributo de id de grupo LDAP parece ser incorrecto (ningún grupo " +"encontrado por ese atributo)" #: auths/SAML_enterprise/SAML.py:81 msgid "SAML Authenticator" @@ -918,7 +964,9 @@ msgstr "Clave privada" msgid "" "Private key used for sign and encription, as generated in base 64 from " "openssl" -msgstr "Clave privada utilizada para firmar y encriptar, generadas en la base 64 de OpenSSL" +msgstr "" +"Clave privada utilizada para firmar y encriptar, la generada en la base 64 " +"de OpenSSL" #: auths/SAML_enterprise/SAML.py:123 transports/SPICE/BaseSPICETransport.py:83 msgid "Certificate" @@ -935,20 +983,23 @@ msgstr "Metadatos IDP " #: auths/SAML_enterprise/SAML.py:126 msgid "" "You can enter here the URL or the IDP metadata or the metadata itself (xml)" -msgstr "Puede introducir aquí la URL o los metadatos IDP o simplemente los metadatos (xml)" +msgstr "" +"Puede introducir aquí la URL o los metadatos IDP o simplemente los metadatos " +"(xml)" #: auths/SAML_enterprise/SAML.py:128 msgid "Entity ID" msgstr "ID de la entidad" #: auths/SAML_enterprise/SAML.py:129 -msgid "" -"ID of the SP. If left blank, this will be autogenerated from server URL" -msgstr "ID del SP. Si se deja en blanco, se generará automáticamente desde la dirección URL del servidor" +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" +msgstr "" +"ID del SP. Si se deja en blanco, se generará automáticamente desde la " +"dirección URL del servidor" #: auths/SAML_enterprise/SAML.py:131 msgid "User name attrs" -msgstr "Attrs del nombre de usuario" +msgstr "Atrs del nombre de usuario" #: auths/SAML_enterprise/SAML.py:132 msgid "Fields from where to extract user name" @@ -956,7 +1007,7 @@ msgstr "Campos de los que se extrae el nombre de usuario" #: auths/SAML_enterprise/SAML.py:134 msgid "Group name attrs" -msgstr "Attrs del nombre de grupo " +msgstr "Atrs del nombre de grupo " #: auths/SAML_enterprise/SAML.py:135 msgid "Fields from where to extract the groups" @@ -964,7 +1015,7 @@ msgstr "Campos de los que extraer los grupos" #: auths/SAML_enterprise/SAML.py:137 msgid "Real name attrs" -msgstr "Attrs del nombre real " +msgstr "Atrs del nombre real " #: auths/SAML_enterprise/SAML.py:138 msgid "Fields from where to extract the real name" @@ -972,9 +1023,11 @@ msgstr "Campos de los que se extrae el nombre real" #: auths/SAML_enterprise/SAML.py:161 msgid "" -"Server certificate should be a valid PEM (PEM certificates starts with " -"-----BEGIN CERTIFICATE-----)" -msgstr "El certificado del servidor debe ser un PEM válido (Los certificados PEM empiezan con---EMPEZAR CERTIFICADO---)" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" +msgstr "" +"El certificado del servidor debe ser un PEM válido (Los certificados PEM " +"empiezan con---EMPEZAR CERTIFICADO---)" #: auths/SAML_enterprise/SAML.py:166 msgid "Invalid server certificate. " @@ -984,7 +1037,9 @@ msgstr "Certificado de servidor no válido. " msgid "" "Private key should be a valid PEM (PEM private keys starts with -----BEGIN " "RSA PRIVATE KEY-----" -msgstr "La clave privada debe ser un PEM válido (Las claves privadas PEM empiezan con---EMPEZAR CLAVE PRIVADA RSA---" +msgstr "" +"La clave privada debe ser un PEM válido (Las claves privadas PEM empiezan " +"con---EMPEZAR CLAVE PRIVADA RSA---" #: auths/SAML_enterprise/SAML.py:198 #, python-brace-format @@ -1001,7 +1056,7 @@ msgstr "XML no parece válido para metadatos IDP " #: auths/SAML_enterprise/SAML.py:228 msgid "Can't access idp metadata" -msgstr "No se puede acceder a a los metadatos IDP" +msgstr "No se puede acceder a los metadatos IDP" #: auths/Sample/SampleAuth.py:74 msgid "Sample Authenticator" @@ -1009,7 +1064,7 @@ msgstr "Autenticador de muestra" #: auths/Sample/SampleAuth.py:86 msgid "Sample dummy authenticator" -msgstr "Autenticador de muestra simulado" +msgstr "Autenticador simulado de muestra " #: auths/Sample/SampleAuth.py:104 msgid "Fake User" @@ -1031,11 +1086,11 @@ msgstr "Grupos" #: auths/Sample/SampleAuth.py:126 msgid "We need more than two items!" -msgstr "¡Necesitamos más de dos artículos!" +msgstr "¡Necesitamos más de dos elementos!" #: auths/SimpleLDAP/Authenticator.py:57 msgid "Ldap Server IP or Hostname" -msgstr "IP del servidor LDAP o nombre de host" +msgstr "IP del servidor LDAP o nombre del host" #: auths/SimpleLDAP/Authenticator.py:67 msgid "Group class" @@ -1071,23 +1126,31 @@ msgstr "Autenticador LDAP Simple" #: auths/SimpleLDAP/Authenticator.py:390 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)" +msgstr "" +"La clase de grupo LDAP parece ser incorrecta (ningún grupo encontrado por " +"esa clase)" #: auths/SimpleLDAP/Authenticator.py:415 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -msgstr "El atributo de ID de usuario o la clase de usuario LDAP son probablemente incorrectos (no se encuentra ningún usuario con ambas condiciones)" +msgstr "" +"El atributo de ID de usuario o la clase de usuario LDAP son probablemente " +"incorrectos (no se encuentra ningún usuario con ambas condiciones)" #: auths/SimpleLDAP/Authenticator.py:424 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -msgstr "El atributo de ID de grupo o la clase de grupo LDAP son probablemente incorrectos (no se encuentra ningún grupo con ambas condiciones)" +msgstr "" +"El atributo de ID de grupo o la clase de grupo LDAP son probablemente " +"incorrectos (no se encuentra ningún grupo con ambas condiciones)" #: auths/SimpleLDAP/Authenticator.py:431 msgid "Can't locate any group with the membership attribute specified" -msgstr "No se puede localizar ningún grupo con el atributo de pertenencia especificado" +msgstr "" +"No se puede localizar ningún grupo con el atributo de pertenencia " +"especificado" #: core/BaseModule.py:200 msgid "No connection checking method is implemented." @@ -1124,21 +1187,24 @@ msgstr "Prohibido" #: core/managers/PublicationManager.py:202 msgid "" "Already publishing. Wait for previous publication to finish and try again" -msgstr "Ya hay una publicación en curso. Espere a que termine e inténtelo de nuevo." +msgstr "" +"Ya hay una publicación en curso. Espere a que termine e inténtelo de nuevo." #: core/managers/PublicationManager.py:205 msgid "Service is in maintenance mode and new publications are not allowed" -msgstr "El servicio está en modo de mantenimiento y no se permiten nuevas publicaciones" +msgstr "" +"El servicio está en modo de mantenimiento y no se permiten nuevas " +"publicaciones" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "No se puede cancelar una publicación que no se está ejecutando" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "No se puede anular una publicación que no se está utilizando" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" msgstr "No se pueden anular publicaciones con servicios en proceso" @@ -1180,7 +1246,7 @@ msgstr "Detectar plugin" #: core/managers/UserPrefsManager.py:306 msgid "Bypass plugin detection" -msgstr "Detección de plugin by-pass" +msgstr "Detección de plugin de bypass" #: core/managers/UserServiceManager.py:331 msgid "Can't remove a non active element" @@ -1207,6 +1273,10 @@ msgstr "Informe base" msgid "Base report" msgstr "Informe base" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "Generado por UDS" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "Servicio Base" @@ -1248,7 +1318,7 @@ msgstr "Válido" #: core/util/State.py:70 msgid "Waiting for removal" -msgstr "Esperando eliminación" +msgstr "Esperando para eliminar" #: core/util/State.py:71 msgid "Removing" @@ -1333,18 +1403,19 @@ msgstr "{0} contiene caracteres no válidos" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" -msgstr "Rango mac no válido. El rango mac debe estar en formato XX-XX:XX:XX:XX:XX:XX" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" +msgstr "" +"Rango mac no válido. El rango mac debe estar en formato XX-XX:XX:XX:XX:XX:XX" #: dispatchers/wyse_enterprise/views.py:112 msgid "There are no authenticators available for login" -msgstr "No hay ningún autenticadores disponibles para inicio de sesión" +msgstr "No hay ningún autenticador disponibles para iniciar sesión" #: dispatchers/wyse_enterprise/views.py:126 #, python-brace-format msgid "The authenticator {0} is not usable" -msgstr "El autenticador {0} no es usable" +msgstr "El autenticador {0} no se puede usar" #: dispatchers/wyse_enterprise/views.py:133 msgid "Invalid credentials" @@ -1367,7 +1438,7 @@ msgstr "Sesión no válida" #: dispatchers/wyse_enterprise/views.py:221 #: dispatchers/wyse_enterprise/views.py:315 msgid "Invalid authorization" -msgstr "Autorización no válido" +msgstr "Autorización no válida" #: dispatchers/wyse_enterprise/views.py:232 #: dispatchers/wyse_enterprise/views.py:321 @@ -1377,7 +1448,7 @@ msgstr "Solicitud inválida" #: dispatchers/wyse_enterprise/views.py:235 #: dispatchers/wyse_enterprise/views.py:324 msgid "Invalid credentials used" -msgstr "Credenciales no válidas usadas" +msgstr "Credenciales usadas no válidas " #: dispatchers/wyse_enterprise/views.py:273 web/errors.py:71 msgid "Transport not found" @@ -1388,7 +1459,9 @@ msgstr "Transporte no encontrado" #: dispatchers/wyse_enterprise/views.py:289 #: 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 este momento. Por favor, inténtelo de nuevo pasados unos instantes." +msgstr "" +"El servicio no está disponible en este momento. Por favor, inténtelo de " +"nuevo pasados unos instantes." #: models/Permissions.py:80 msgid "Read" @@ -1410,7 +1483,9 @@ msgstr "Linux OS Manager" msgid "" "Os Manager to control linux virtual machines (basically renames machine and " "notify state)" -msgstr "OS Manager para controlar máquinas virtuales Linux (básicamente renombra las máquinas y notifica los estados)" +msgstr "" +"OS Manager para controlar máquinas virtuales Linux (básicamente renombra las " +"máquinas y notifica los estados)" #: osmanagers/LinuxOsManager/LinuxOsManager.py:59 #: osmanagers/WindowsOsManager/WindowsOsManager.py:50 @@ -1435,13 +1510,16 @@ msgstr "Eliminar servicio" #: osmanagers/LinuxOsManager/LinuxOsManager.py:70 #: osmanagers/WindowsOsManager/WindowsOsManager.py:62 msgid "Max.Idle time" -msgstr "Tiempo máx de inact." +msgstr "Tiempo máx de inactividad" #: osmanagers/LinuxOsManager/LinuxOsManager.py:74 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max idle time)." -msgstr "Tiempo máximo de inactividad (en segundos) antes de que se cierre la sesión automáticamente para el usuario (< = 0 significa sin tiempo máx. de inact.)." +msgstr "" +"Tiempo máximo de inactividad (en segundos) antes de que se cierre la sesión " +"automáticamente para el usuario (< = 0 significa sin tiempo máx. de " +"inactividad)." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:47 msgid "Linux Random Password OS Manager" @@ -1449,7 +1527,9 @@ msgstr "Contraseña aleatoria para Linux OS Manager " #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:49 msgid "Os Manager to control linux machines, with user password set randomly." -msgstr "Os Manager para controlar máquinas Linux, con contraseña de usuario establecida aleatoriamente." +msgstr "" +"Os Manager para controlar máquinas Linux, con contraseña de usuario " +"establecida aleatoriamente." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:53 #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 @@ -1469,28 +1549,45 @@ msgstr "¡Debe indicar una cuenta de usuario!" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " -"2.7)" -msgstr "Actor UDS para Debian, Ubuntu... Máquinas Linux (Requiere python 2.7)" +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" +msgstr "" +"Actor UDS para Debian, Ubuntu... Máquinas Linux (Requiere python 2.7)" #: osmanagers/LinuxOsManager/__init__.py:54 msgid "" "UDS Actor for Centos, Fedora, RH, ... Linux machines (Requires python " "2.7)" -msgstr "Actor UDS para Centos, Fedora, RH... máquinas Linux (Requiere python 2.7)" +msgstr "" +"Actor UDS para CentOS, Fedora, RH... máquinas Linux (Requiere python " +"2.7)" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" msgstr "Actor UDS para openSUSE... Máquinas Linux (Requiere python 2.7)" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "RDS OS Manager" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" -msgstr "Os Manager control RDS proporciona servicios" +msgstr "Os Manager para controlar los servicios RDS" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "Max. tiempo de sesión" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" +"Duración máxima en horas para una sesión (0 no significa límite). Después de " +"esto período, período de sesiones será liberado." + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "Agente de UDS RDS (para aplicaciones remotas en Windows Server 2012)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" @@ -1500,7 +1597,9 @@ msgstr "OS Manager para Dominio Windows " msgid "" "Os Manager to control windows machines with domain. (Basically renames " "machine)" -msgstr "OS Manager para controlar máquinas Windows con dominio. (Básicamente renombra la máquina)" +msgstr "" +"OS Manager para controlar máquinas Windows con dominio. (Básicamente " +"renombra la máquina)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 @@ -1512,7 +1611,9 @@ msgstr "Dominio" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 msgid "Domain to join machines to (use FQDN form, Netbios name not allowed)" -msgstr "Dominio para unir las máquinas a (usar formulario FQDN, nombre Netbios no permitidos)" +msgstr "" +"Dominio para unir las máquinas a (usar formato FQDN, nombre Netbios no " +"permitido)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 msgid "Account with rights to add machines to domain" @@ -1530,7 +1631,9 @@ msgstr "OU" msgid "" "Organizational unit where to add machines in domain (check it before using " "it). i.e.: ou=My Machines,dc=mydomain,dc=local" -msgstr "Unidad organizativa donde agregar máquinas en dominio (comprobar antes de usarlo). por ej: ou = mis máquinas, dc = midominio, dc = local" +msgstr "" +"Unidad organizativa donde agregar máquinas en dominio (comprobar antes de " +"usarlo). por ej: ou = mis máquinas, dc = midominio, dc = local" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:46 msgid "Must provide a domain!" @@ -1561,7 +1664,9 @@ msgstr "Compruebe el error: {0}" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:148 #, python-brace-format msgid "Could not find server parameters (_ldap._tcp.{0} can't be resolved)" -msgstr "No se encontraron los parámetros del servidor (_ldap._tcp. {0} no puede ser resuelto)" +msgstr "" +"No se encontraron los parámetros del servidor (_ldap._tcp. {0} no puede ser " +"resuelto)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:157 msgid "Server check was successful" @@ -1585,7 +1690,9 @@ msgstr "¡No se encontró la ruta ou {0}!" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:184 #, python-brace-format msgid "Could not check parameters (_ldap._tcp.{0} can'r be resolved)" -msgstr "No se pudo verificar los parámetros (_ldap._tcp. {0} no pueden ser resueltos)" +msgstr "" +"No se pudieron verificar los parámetros (_ldap._tcp. {0} no pueden ser " +"resueltos)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:189 msgid "All parameters seem to work fine." @@ -1598,7 +1705,9 @@ msgstr "Contraseña Aleatoria para Windows OS Manager" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:28 msgid "" "Os Manager to control windows machines, with user password set randomly." -msgstr "OS Manager para controlar máquinas Windows con contraseñas de usuario aleatorias" +msgstr "" +"OS Manager para controlar máquinas Windows con contraseñas de usuario " +"aleatorias" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:33 msgid "Current (template) password of the user account" @@ -1606,7 +1715,7 @@ msgstr "Contraseña actual (plantilla) de la cuenta de usuario" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:45 msgid "Must provide a password for the account!!!" -msgstr "¡¡¡Debe indicar una contraseña para la cuenta!!!" +msgstr "¡Debe indicar una contraseña para la cuenta!" #: osmanagers/WindowsOsManager/WindowsOsManager.py:43 msgid "Windows Basic OS Manager" @@ -1616,17 +1725,22 @@ msgstr "OS Manager para Windows Básico" msgid "" "Os Manager to control windows machines without domain. (Basically renames " "machine)" -msgstr "OS Manager para controlar máquinas Windows sin dominio. (Básicamente renombra las máquinas)" +msgstr "" +"OS Manager para controlar máquinas Windows sin dominio. (Básicamente " +"renombra las máquinas)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:67 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max. idle time)" -msgstr "Tiempo máximo de inactividad (en segundos) antes de que la sesión se cierre automáticamente para el usuario (< = 0 significa sin tiempo máx. de inact.)" +msgstr "" +"Tiempo máximo de inactividad (en segundos) antes de que la sesión se cierre " +"automáticamente para el usuario (< = 0 significa sin tiempo máx. de " +"inactividad)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:76 msgid "Length must be numeric!!" -msgstr "¡¡¡La longitud debe ser numérica!!!" +msgstr "¡La longitud debe ser numérica!" #: osmanagers/WindowsOsManager/WindowsOsManager.py:78 msgid "Length must be betwen 1 and 6" @@ -1636,64 +1750,103 @@ msgstr "La longitud debe estar entre 1 y 6" msgid "UDS Actor for windows machines" msgstr "Actor UDS para máquinas Windows" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "Listas de" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#| msgid "User" +msgid "User ID" +msgstr "ID de usuario" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +#| msgid "Real name attrs" +msgid "Real Name" +msgstr "Nombre real" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "Autenticador" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" -msgstr "Autenticador de donde a los usuarios de la lista" +msgstr "Autenticador desde el que se enumeran los usuarios" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "Lista de usuarios" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "Lista de usuarios de la plataforma" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "Estadísticas" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "Acceso de los usuarios por fecha" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "Acceso de usuarios por día de la semana" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "Acceso de usuarios por hora" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "Rango de fechas" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" -msgstr "Los usuarios acceder a informe por fecha" +msgstr "Informe de accesos de usuarios por fecha" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" -msgstr "Informe de acceso del usuario a la plataforma por fecha" +msgstr "Informe de acceso de usuarios a la plataforma por fecha" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "Fecha de inicio" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "fecha de inicio para informe" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "Fecha de finalización" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" -msgstr "fecha de informe" +msgstr "fecha de finalización para informe" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "Número de puntos" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "Número de puntos de muestreo utilizados en gráficos" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" -msgstr "Uso de los usuarios de UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" +msgstr "Los usuarios acceso a UDS" -#: reports/stats/usage.py:44 +#: reports/stats/login.py:345 +msgid "User access to UDS" +msgstr "Acceso del usuario a UDS" + +#: reports/stats/usage.py:45 msgid "Usage stats" msgstr "Estadísticas de uso" -#: reports/stats/usage.py:45 +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "Estadísticas de uso de la plataforma" @@ -1703,9 +1856,9 @@ msgstr "Cluster HyperV Linked Clone (Experimental)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -msgid "" -"Hyper Services based on templates and differential disks (experimental)" -msgstr "Servicios HyperV basados en plantillas y discos diferenciales (experimental)" +msgid "Hyper Services based on templates and differential disks (experimental)" +msgstr "" +"Servicios HyperV basados en plantillas y discos diferenciales (experimental)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 #: services/HyperV_enterprise/HyperVLinkedService.py:76 @@ -1714,7 +1867,8 @@ msgstr "Servicios HyperV basados en plantillas y discos diferenciales (experimen #: services/Vmware_enterprise/VCLinkedCloneService.py:39 #: services/Xen/XenLinkedService.py:77 msgid "Number of desired machines to keep running waiting for a user" -msgstr "Número de máquinas que desea mantener en ejecución esperando a un usuario" +msgstr "" +"Número de máquinas que desea mantener en ejecución esperando a un usuario" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:78 #: services/HyperV_enterprise/HyperVLinkedService.py:82 @@ -1722,7 +1876,8 @@ msgstr "Número de máquinas que desea mantener en ejecución esperando a un usu #: services/Vmware_enterprise/VCLinkedCloneService.py:41 #: services/Xen/XenLinkedService.py:83 msgid "Number of desired machines to keep suspended waiting for use" -msgstr "Número de maquinas que desea mantener suspendidas esperando a ser utilizadas" +msgstr "" +"Número de maquinas que desea mantener suspendidas esperando a ser utilizadas" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:94 #: services/HyperV_enterprise/HyperVLinkedService.py:100 @@ -1750,9 +1905,10 @@ msgstr "Red" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 msgid "" -"If more than 1 interface is found in machine, use one on this network as " -"main" -msgstr "Si en la máquina hay más de 1 interfaz, utilice una de esta red como la principal" +"If more than 1 interface is found in machine, use one on this network as main" +msgstr "" +"Si en la máquina hay más de 1 interfaz, utilice una de esta red como la " +"principal" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 #: services/HyperV_enterprise/HyperVLinkedService.py:104 @@ -1766,7 +1922,7 @@ msgstr "Memoria (Mb)" #: services/HyperV_enterprise/HyperVLinkedService.py:105 #: services/Vmware_enterprise/VCLinkedCloneService.py:75 msgid "Memory for machines deployed from this service" -msgstr "Memoria desplegada para las máquinas desde este servicio" +msgstr "Memoria para las máquinas desplegada desde este servicio" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:100 #: services/HyperV_enterprise/HyperVLinkedService.py:106 @@ -1776,7 +1932,9 @@ msgstr "Unidades de almacenamiento de datos" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 #: services/HyperV_enterprise/HyperVLinkedService.py:107 msgid "Datastores where to put incrementals & publications" -msgstr "Almacenamientos de datos en los que poner los incrementales y las publicaciones" +msgstr "" +"Almacenamientos de datos en los que poner los incrementales y las " +"publicaciones" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:102 #: services/HyperV_enterprise/HyperVLinkedService.py:110 @@ -1805,7 +1963,8 @@ msgstr "Longitud del nombre" #: services/OVirt/OVirtLinkedService.py:162 #: services/Vmware_enterprise/VCLinkedCloneService.py:82 msgid "Size of numeric part for the names of these machines (between 3 and 6)" -msgstr "Tamaño de la parte numérica para los nombres de estas máquinas (entre 3 y 6)" +msgstr "" +"Tamaño de la parte numérica para los nombres de estas máquinas (entre 3 y 6)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 #: services/HyperV_enterprise/HyperVLinkedService.py:125 @@ -1821,7 +1980,8 @@ msgstr "La longitud de \"basename\" más la longitud no debe ser superior a 15" #: services/Vmware_enterprise/VCLinkedCloneService.py:102 #: services/Xen/XenLinkedService.py:135 msgid "The machine name can't be only numbers" -msgstr "El nombre de la máquina no puede estar compuesto únicamente por números" +msgstr "" +"El nombre de la máquina no puede estar compuesto únicamente por números" #: services/HyperV_enterprise/HyperVClusterProvider.py:64 msgid "HyperV Cluster Provider" @@ -1834,7 +1994,8 @@ msgstr "Proveedor de Servicios de Cluster HyperV" #: services/HyperV_enterprise/HyperVClusterProvider.py:89 #: services/HyperV_enterprise/HyperVProvider.py:83 msgid "HyperV Server IP or Hostname (must enable first WSMAN access)" -msgstr "Servidor IP HyperV o nombre de host (debe habilitar primero el acceso WSMAN)" +msgstr "" +"Servidor IP HyperV o nombre de host (debe habilitar primero el acceso WSMAN)" #: services/HyperV_enterprise/HyperVClusterProvider.py:90 #: services/HyperV_enterprise/HyperVProvider.py:84 @@ -1868,7 +2029,7 @@ msgstr "Rango de Macs" #: services/HyperV_enterprise/HyperVProvider.py:89 #: services/OVirt/OVirtProvider.py:101 services/Xen/XenProvider.py:102 msgid "Range of valid macs for created machines" -msgstr "Gama de macs válidos para máquinas creadas" +msgstr "Rango de macs válidos para máquinas creadas" #: services/HyperV_enterprise/HyperVClusterProvider.py:132 msgid "The selected server is not a cluster" @@ -1876,13 +2037,13 @@ msgstr "El servidor seleccionado no es un cluster" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "Test de conexión realizado con éxito" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "La conexión ha fallado. Compruebe los parámetros de conexión" @@ -1940,7 +2101,8 @@ msgstr "Dominio de almacenamiento de datos" #: services/OVirt/OVirtLinkedService.py:116 msgid "Datastore domain where to publish and put incrementals" -msgstr "Dominio de almacenamiento de datos donde se debe publicar y poner los incrementos " +msgstr "" +"Dominio de almacenamiento de datos para publicar y poner los incrementos " #: services/OVirt/OVirtLinkedService.py:135 #: services/Xen/XenLinkedService.py:113 @@ -1961,7 +2123,7 @@ msgstr "Pantalla" #: services/OVirt/OVirtLinkedService.py:170 msgid "Display type (only for administration purposes)" -msgstr "Tipo de pantalla (sólo para propósitos de administración)" +msgstr "Tipo de pantalla (sólo para tareas de administración)" #: services/OVirt/OVirtLinkedService.py:195 #: services/Xen/XenLinkedService.py:137 @@ -1978,11 +2140,12 @@ msgstr "Proveedor de servicios para la plataforma oVirt" #: services/OVirt/OVirtProvider.py:96 msgid "oVirt Server IP or Hostname" -msgstr "IP del servidor oVirt o nombre del servidor " +msgstr "IP del servidor o nombre del servidor oVirt " #: services/OVirt/OVirtProvider.py:97 msgid "User with valid privileges on oVirt, (use \"user@domain\" form)" -msgstr "Usuario con privilegios válidos en oVirt (use el formato \"usuario@dominio\")" +msgstr "" +"Usuario con privilegios válidos en oVirt (use el formato \"usuario@dominio\")" #: services/OVirt/OVirtProvider.py:98 msgid "Password of the user of oVirt" @@ -2015,7 +2178,7 @@ msgstr "Proveedor de RDS (Experimental)" #: services/RDS_enterprise/RDSProvider.py:30 msgid "Microsoft RDS based provider" -msgstr "Proveedor de Microsoft RDS basado" +msgstr "Proveedor de Microsoft basado en RDS " #: services/RDS_enterprise/RDSProvider.py:34 msgid "List of servers" @@ -2034,9 +2197,10 @@ msgid "Default password for users in list mapping" msgstr "Contraseña por defecto para los usuarios en el mapeo de la lista" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" -msgstr "Error: Usuario {} en {} host está siendo utilizado y no se pueden quitar ahora" +msgid "Error: User {} on host {} is being used and cannot be removed right now" +msgstr "" +"Error: Usuario {} en {} host está siendo utilizado y no se pueden eliminar " +"ahora" #: services/RDS_enterprise/RDSProvider.py:89 #: services/Sample/SampleProvider.py:178 @@ -2050,7 +2214,7 @@ msgstr "RDS RemoteAPP (Experimental)" #: services/RDS_enterprise/RDSService.py:22 msgid "RDS RemoteAPP based service" -msgstr "RDS RemoteAPP basado en servicio" +msgstr "Servicio basado en RDS RemoteAPP " #: services/RDS_enterprise/RDSService.py:45 msgid "Application path" @@ -2058,7 +2222,8 @@ msgstr "Ruta de la aplicación" #: services/RDS_enterprise/RDSService.py:46 msgid "Full path of the application this service will represent" -msgstr "Ruta de acceso completa de la aplicación que representará a este servicio" +msgstr "" +"Ruta de acceso completa de la aplicación que representará este servicio" #: services/RDS_enterprise/RDSService.py:65 msgid "The application path to execute is required" @@ -2195,7 +2360,7 @@ msgstr "Publicación de UDS para {0} creado en {1}" #: services/Vmware_enterprise/ServiceProviderVC.py:29 msgid "VMWare VC Server IP or Hostname" -msgstr "IP del Servidor VC VMware o nombre de host" +msgstr "IP del Servidor o nombre de host VC VMware " #: services/Vmware_enterprise/ServiceProviderVC.py:30 msgid "VMWare VC Server Port (usually 443)" @@ -2213,7 +2378,9 @@ msgstr "Contraseña del usuario de VC" msgid "" "Range of valid macs for created machines. Must be inside " "00:50:56:00:00:00-00:50:56:3F:FF:FF" -msgstr "Rango de macs válidos para máquinas creadas. Debe estar dentro de 00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Rango de macs válidos para máquinas creadas. Debe estar dentro de " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" #: services/Vmware_enterprise/ServiceProviderVC.py:40 msgid "VMWare Virtual Center Provider" @@ -2238,7 +2405,9 @@ msgstr "VMware Linked Clone base" #: services/Vmware_enterprise/VCLinkedCloneService.py:33 msgid "" "This service provides access to Linked Clones machines on a Virtual Center" -msgstr "Este servicio proporciona acceso a máquinas de Linked Clones en un Centro Virtual" +msgstr "" +"Este servicio proporciona acceso a máquinas de Linked Clones en un Centro " +"Virtual" #: services/Vmware_enterprise/VCLinkedCloneService.py:53 msgid "Datacenter" @@ -2250,7 +2419,7 @@ msgstr " Datacenter que contiene la máquina base" #: services/Vmware_enterprise/VCLinkedCloneService.py:63 msgid "Pub. Resource Pool" -msgstr "Pool de rec. para Pub." +msgstr "Pool de recursos para Pub." #: services/Vmware_enterprise/VCLinkedCloneService.py:63 msgid "Resource Pool where deploy clones" @@ -2322,7 +2491,9 @@ msgstr "Multiplicador de memoria \"shadow\" (sobrecarga de memoria)" #: services/Xen/XenLinkedService.py:121 msgid "Length of numeric part for the names of this machines (beetwen 3 and 6" -msgstr "Longitud de la parte numérica para los nombres de estas máquinas (entre 3 y 6)" +msgstr "" +"Longitud de la parte numérica para los nombres de estas máquinas (entre 3 y " +"6)" #: services/Xen/XenProvider.py:79 msgid "Xenserver Platform Provider" @@ -2334,7 +2505,7 @@ msgstr "Proveedor de servicios de plataforma XenServer" #: services/Xen/XenProvider.py:98 msgid "XenServer Server IP or Hostname" -msgstr "IP del servidor XenServer o nombre de host" +msgstr "IP del servidor o nombre de host XenServer " #: services/Xen/XenProvider.py:99 msgid "User with valid privileges on XenServer" @@ -2352,7 +2523,9 @@ msgstr "Verificar certificado" msgid "" "If selected, certificate will be checked against system valid certificate " "providers" -msgstr "Si se selecciona, certificado será comprobado contra certificado válido del sistema proveedores" +msgstr "" +"Si se selecciona, el certificado será comprobado con el sistema de " +"proveedores de certificados válidos " #: services/Xen/XenProvider.py:394 #, python-brace-format @@ -2471,7 +2644,7 @@ msgstr "Gráfico de servicios utilizados" #: templates/uds/admin/tmpl/fld/editlist.html:22 msgid "Click to edit list" -msgstr "Haga clic en Editar lista de" +msgstr "Haga clic para editar lista " #: templates/uds/admin/tmpl/fld/editlist_popup.html:5 msgid "Current list" @@ -2528,7 +2701,9 @@ msgstr "Seleccione imagen para cargar" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:10 msgid "Name of the image. If left empty, will get the filename as name" -msgstr "Nombre de la imagen. Si se deja vacío, recibirá el mismo nombre que el archivo " +msgstr "" +"Nombre de la imagen. Si se deja vacío, recibirá el mismo nombre que el " +"archivo " #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:7 @@ -2595,13 +2770,22 @@ msgstr "Acceso completo" msgid "Transport" msgstr "Transporte" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "motivo de la publicación" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "Motivo de la publicación (puede ser vacía)" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "Error en la solicitud" #: templates/uds/admin/tmpl/request_failed.html:7 msgid "There was an error requesting data from server, please, try again" -msgstr "Hubo un error al solicitar los datos del servidor, por favor, pruebe otra vez" +msgstr "" +"Hubo un error al solicitar los datos del servidor, por favor, pruebe otra vez" #: templates/uds/admin/tmpl/request_failed.html:9 #: templates/uds/snippets/admin_user.html:8 @@ -2618,17 +2802,20 @@ msgstr "Administración de UDS" #: templates/uds/admin/tmpl/restricted.html:32 msgid "You are accessing UDS Administration as staff member." -msgstr "Accede a administración de UDS como miembro del personal." +msgstr "Está accediendo a la administración de UDS como miembro del personal." #: templates/uds/admin/tmpl/restricted.html:33 msgid "This means that you have restricted access to assigned elements." -msgstr "Esto significa que usted tienen acceso restringido a los elementos asignados." +msgstr "" +"Esto significa que usted tienen acceso restringido a los elementos asignados." #: templates/uds/admin/tmpl/restricted.html:34 msgid "" "In order to increase your privileges, please contact your local UDS " "administrator." -msgstr "Para aumentar sus privilegios, por favor póngase en contacto con tu local UDS Administrador." +msgstr "" +"Para aumentar sus privilegios, por favor póngase en contacto con su " +"administrador local de UDS." #: templates/uds/admin/tmpl/restricted.html:36 msgid "Thank you." @@ -2671,7 +2858,9 @@ msgstr "Descargas" #: templates/uds/downloads.html:11 templates/uds/html5/downloads.html:10 msgid "" "This page contains a list of downloadables provided by different modules" -msgstr "Esta página contiene una lista de descargas proporcionadas por diferentes módulos" +msgstr "" +"Esta página contiene una lista de descargas proporcionadas por diferentes " +"módulos" #: templates/uds/html5/about.html:13 msgid "You can access UDS Open Source code at" @@ -2684,7 +2873,8 @@ msgstr "UDS ha sido desarrollado utilizando estos componentes:" #: templates/uds/html5/about.html:41 msgid "" "If you found that we missed to mention any component, please let us know" -msgstr "Si ve que nos hemos dejado algún componente, háganoslo saber, por favor" +msgstr "" +"Si ve que nos hemos dejado algún componente, háganoslo saber, por favor" #: templates/uds/html5/about.html:42 #: templates/uds/html5/service_not_ready.html:21 @@ -2703,7 +2893,9 @@ msgstr "Descargar Plugin UDS para" msgid "" "In order to be able to execute UDS services, you need to have UDS plugin " "installed." -msgstr "Para poder ejecutar servicios de UDS, necesitas tener el plugin UDS instalado." +msgstr "" +"Para poder ejecutar servicios de UDS, necesitas tener el plugin UDS " +"instalado." #: templates/uds/html5/download_client.html:14 msgid "Or download another version" @@ -2713,49 +2905,57 @@ msgstr "O descargar otra versión" msgid "" "In case that your platform has been incorrectly detected, you can download " "manually the version required for your Operating System" -msgstr "En caso que la plataforma ha sido detectada incorrectamente, puede descargar manualmente la versión necesaria para su sistema operativo" +msgstr "" +"En caso que su plataforma no haya sido bien detectada, puede descargar " +"manualmente la versión necesaria para su sistema operativo" #: templates/uds/html5/download_client.html:19 msgid "Linux UDS plugin" -msgstr "Plugin Linux UDS" +msgstr "Plugin UDS Linux " #: templates/uds/html5/download_client.html:24 msgid "Windows UDS plugin" -msgstr "Windows UDS plugin" +msgstr "Plugin UDS Windows " #: templates/uds/html5/download_client.html:29 msgid "Mac OSX (>10.5) UDS plugin" -msgstr "Mac OSX (> 10.5) UDS plugin" +msgstr "Plugin UDS Mac OSX (> 10.5) " #: templates/uds/html5/download_client.html:35 msgid "" "If you already have UDS Plugin installed but this message persists to " "appear, you can disable automatic detection here" -msgstr "Si ya tienes instalado el Plugin UDS pero este mensaje persiste a aparece, puede desactivar la detección automática" +msgstr "" +"Si ya tienes instalado el Plugin UDS pero este mensaje sigue apareciendo, " +"puede desactivar la detección automática aquí" #: templates/uds/html5/download_client.html:39 msgid "Automatic plugin detection is enabled" -msgstr "Se habilita la detección automática del plugin" +msgstr "La detección automática del plugin está habilitada" #: templates/uds/html5/download_client.html:40 msgid "WARNING: Automatic plugin detection is disabled" -msgstr "ADVERTENCIA: Se desactiva la detección automática del plugin" +msgstr "ADVERTENCIA: La detección automática del plugin está desactivada" #: templates/uds/html5/download_client.html:44 msgid "" "Please, note that disabling automatic detection will not trigger this page " "again in case you don't have the plugin installed." -msgstr "Por favor, tenga en cuenta que desactivar la detección automática no activará esta página otra vez en caso no tienes el plugin instalado." +msgstr "" +"Por favor, tenga en cuenta que al desactivar la detección automática esta " +"página no se volverá a activar si no tiene el plugin instalado." #: templates/uds/html5/download_client.html:45 msgid "" "In this case, you will have to manually download the plugin by using the " "menu on upper right corner." -msgstr "En este caso, tendrás que descargar el plugin manualmente mediante el uso de la menú en la esquina superior derecha." +msgstr "" +"En este caso, tendrá que descargar el plugin manualmente usando el menú de " +"la esquina superior derecha." #: templates/uds/html5/download_client.html:47 msgid "Return" -msgstr "Retorno" +msgstr "Regreso" #: templates/uds/html5/error.html:12 msgid "An error occurred" @@ -2772,7 +2972,7 @@ msgstr "Lista de servicios disponibles" #: templates/uds/html5/index.html:13 msgid "Under maintenance" -msgstr "Bajo mantenimiento" +msgstr "En mantenimiento" #: templates/uds/html5/index.html:15 msgid "Currently in use" @@ -2855,17 +3055,21 @@ msgstr "El servicio no está preparado" msgid "" "The service is not ready at this moment. Please, try it again after a few " "seconds." -msgstr "El servicio no está preparado en este momento. Por favor, inténtalo de nuevo después de unos segundos." +msgstr "" +"El servicio no está preparado en este momento. Por favor, inténtalo de nuevo " +"después de unos segundos." #: templates/uds/html5/service_not_ready.html:18 msgid "" "The service you have requested was not ready, and it is being created right " "now. It will be availabe shortly" -msgstr "El servicio que usted ha solicitado no estaba listo y está siendo creado justo ahora. Estará disponible en unos momentos" +msgstr "" +"El servicio que usted ha solicitado no estaba listo y está siendo creado " +"justo ahora. Estará disponible en unos momentos" #: templates/uds/html5/service_not_ready.html:23 msgid "Please, close this window and relaunch again after a while." -msgstr "Por favor, cierre esta ventana y relanzar nuevamente después de un tiempo." +msgstr "Por favor, cierre esta ventana y ábrala de nuevo en unos momentos." #: templates/uds/html5/simpleLauncher.html:4 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:4 @@ -2875,26 +3079,29 @@ msgstr "Lanzador de servicio" #: templates/uds/html5/simpleLauncher.html:9 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:9 msgid "UDS Service launcher" -msgstr "Lanzador de UDS servicio" +msgstr "Lanzador de servicio UDS " #: templates/uds/html5/simpleLauncher.html:11 msgid "The service you have requested is being launched." -msgstr "Se lanza el servicio que usted ha solicitado." +msgstr "El servicio que ha solicitado se está activando" #: templates/uds/html5/simpleLauncher.html:12 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:11 msgid "Please, note that reloading this page will not work." -msgstr "Por favor, tenga en cuenta que volver a cargar esta página no funcionará." +msgstr "" +"Por favor, tenga en cuenta que volver a cargar esta página no funcionará." #: templates/uds/html5/simpleLauncher.html:13 msgid "To relaunch service, you will have to do it from origin." -msgstr "Para reactivar el servicio, deberás hacerlo desde origen." +msgstr "Para reanudar el servicio, deberás hacerlo desde el origen." #: templates/uds/html5/simpleLauncher.html:16 msgid "" "If the service does not launchs automatically, probably you dont have the " "UDS plugin installed" -msgstr "Si el servicio lo hace automáticamente no acaba de presentar, probablemente no tiene el Instalado el plugin UDS" +msgstr "" +"Si el servicio no se activa automáticamente, probablemente no tiene el " +"Instalado el plugin UDS" #: templates/uds/html5/simpleLauncher.html:17 msgid "You can obtain it from the" @@ -2907,11 +3114,11 @@ msgstr "Página para descargar Plugin UDS" #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:12 msgid "Close this window and try to relaunch service from origin." -msgstr "Cierra esta ventana e intenta relanzar servicio de origen." +msgstr "Cierra esta ventana e intenta reanudar el servicio desde el origen." #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:14 msgid "You can obtain required UDS plugin from the" -msgstr "Usted puede obtener requiere plugin UDS desde el" +msgstr "Usted puede obtener el plugin UDS requerido desde el" #: templates/uds/html5/snippets/navbar.html:8 msgid "toggle navigation" @@ -2929,9 +3136,13 @@ msgstr "Preferencias" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" -msgstr "Su navegador es compatible sólo parcialmente. Por favor, actualice a un navegador HTML5 moderno como Firefox, Chrome, Opera... (Si usa IE tiene que ser 10 o superior y debe desactivar el \"Modo de vista de compatibilidad\" para este sitio)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" +msgstr "" +"Su navegador es compatible sólo parcialmente. Por favor, actualice a un " +"navegador a uno HTML5 moderno como Firefox, Chrome, Opera... (Si usa IE " +"tiene que ser 10 o superior y debe desactivar el \"Modo de vista de " +"compatibilidad\" para este sitio)" #: templates/uds/html5/templates/base.html:108 msgid "We use cookies to track usage and preferences" @@ -2952,7 +3163,9 @@ msgstr "Java no encontrado" #: templates/uds/index.html:71 msgid "" "Java is not available on your browser, and the selected transport needs it." -msgstr "Java no está disponible en su navegador, y el transporte seleccionado lo necesita" +msgstr "" +"Java no está disponible en su navegador, y el transporte seleccionado lo " +"necesita" #: templates/uds/index.html:72 msgid "Please, install latest version from" @@ -2996,19 +3209,19 @@ msgstr "Basado en Debian Linux" #: templatetags/html5.py:231 msgid "Red Hat based Linux (RH, Fedora, Centos, ...)" -msgstr "Red Hat basado en Linux (RH, Fedora, Centos,...)" +msgstr "Red Hat basado en Linux (RH, Fedora, CentOS,...)" #: templatetags/html5.py:232 msgid "Suse based Linux" -msgstr "Base de SUSE Linux" +msgstr "Linux basado en SUSE" #: templatetags/html5.py:233 msgid "Generic .tar.gz Linux" -msgstr "Genérico. tar.gz Linux" +msgstr "Linux genérico. tar.gz " #: transports/HTML5RDP/HTML5RDP.py:59 msgid "HTML5 RDP Transport" -msgstr "Transporte RDP HTML5" +msgstr "Transporte HTML5 RDP " #: transports/HTML5RDP/HTML5RDP.py:61 msgid "RDP Transport using HTML5 client" @@ -3022,7 +3235,9 @@ msgstr "Servidor de túnel" msgid "" "Host of the tunnel server (use http/https & port if needed) as accesible " "from users" -msgstr "Host del servidor túnel (use http/https & puerto si es necesario) como accesible para los usuarios" +msgstr "" +"Host del servidor túnel (use http/https & puerto si es necesario) como " +"accesible para los usuarios" #: transports/HTML5RDP/HTML5RDP.py:69 transports/NX/NXTransport.py:65 #: transports/NX/TSNXTransport.py:72 transports/RDP/BaseRDPTransport.py:61 @@ -3040,7 +3255,9 @@ msgstr "Credenciales vacías" #: transports/RGS_enterprise/TRGSTransport.py:52 #: transports/SPICE/BaseSPICETransport.py:67 msgid "If checked, the credentials used to connect will be emtpy" -msgstr "Si lo ha comprobado, las credenciales utilizadas para conectar estarán vacías" +msgstr "" +"Si está seleccionado, las credenciales utilizadas para conectar estarán " +"vacías" #: transports/HTML5RDP/HTML5RDP.py:70 transports/NX/NXTransport.py:66 #: transports/NX/TSNXTransport.py:73 transports/RDP/BaseRDPTransport.py:62 @@ -3048,7 +3265,8 @@ msgstr "Si lo ha comprobado, las credenciales utilizadas para conectar estarán #: transports/RGS_enterprise/TRGSTransport.py:53 #: transports/SPICE/BaseSPICETransport.py:72 msgid "If not empty, this username will be always used as credential" -msgstr "Si no está vacío, este nombre de usuario se utilizará siempre como credencial" +msgstr "" +"Si no está vacío, este nombre de usuario se utilizará siempre como credencial" #: transports/HTML5RDP/HTML5RDP.py:71 transports/NX/NXTransport.py:67 #: transports/NX/TSNXTransport.py:74 transports/RDP/BaseRDPTransport.py:63 @@ -3068,16 +3286,20 @@ msgstr "Sin dominio" msgid "" "If checked, the domain part will always be emptied (to connecto to xrdp for " "example is needed)" -msgstr "Si está marcada, la parte del dominio siempre estará vacía (se necesita, por ejemplo, para conectar a xrdp)" +msgstr "" +"Si está marcada, la parte del dominio siempre estará vacía (se necesita, por " +"ejemplo, para conectar a xrdp)" #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 #: transports/RDS_enterprise/BaseRDSTransport.py:68 #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" -msgstr "Si no está vacío, este dominio se utilizará siempre como parte de las credenciales (como DOMINIO\\usuario)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" +msgstr "" +"Si no está vacío, este dominio se utilizará siempre como parte de las " +"credenciales (como DOMINIO\\usuario)" #: transports/HTML5RDP/HTML5RDP.py:74 msgid "Enable Audio" @@ -3087,7 +3309,9 @@ msgstr "Activar el sonido" msgid "" "If checked, the audio will be redirected to client (if client browser " "supports it)" -msgstr "Si está activado, el audio se redirigirá al cliente (si el explorador cliente lo soporta)" +msgstr "" +"Si está activado, el audio se redirigirá al cliente (si el explorador " +"cliente lo soporta)" #: transports/HTML5RDP/HTML5RDP.py:75 msgid "Enable Printing" @@ -3097,7 +3321,9 @@ msgstr "Habilitar la impresión" msgid "" "If checked, the printing will be redirected to client (if client browser " "supports it)" -msgstr "Si está activada, la impresión se redireccionará al cliente (si el explorador cliente lo soporta)" +msgstr "" +"Si está activada, la impresión se redireccionará al cliente (si el " +"explorador cliente lo soporta)" #: transports/HTML5RDP/HTML5RDP.py:81 msgid "The server must be http or https" @@ -3160,37 +3386,42 @@ msgid "NX Transport for tunneled connection" msgstr "Transporte NX para conexión mediante túnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "Servidor de túnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" "IP or Hostname of tunnel server sent to client device (\"public\" ip) and " "port. (use HOST:PORT format)" -msgstr "IP o nombre de host del servidor túnel enviada al dispositivo de cliente (ip \"pública\") y puerto. (utilice el formato HOST: Puerto)" +msgstr "" +"IP o nombre de host del servidor túnel enviada al dispositivo cliente (ip " +"\"pública\") y puerto. (utilice el formato HOST: Puerto)" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "Verificación de host del túnel" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" -msgstr "Si no está vacío, este servidor se utilizará para comprobar si el servicio se está ejecutando antes de asignárselo al usuario. (utilice el formato HOST: PUERTO)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" +msgstr "" +"Si no está vacío, este servidor se utilizará para comprobar si el servicio " +"se está ejecutando antes de asignárselo al usuario. (utilice el formato " +"HOST: PUERTO)" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3218,7 +3449,9 @@ msgstr "Permitir impresoras" #: transports/RDP/BaseRDPTransport.py:67 #: transports/RDS_enterprise/BaseRDSTransport.py:70 msgid "If checked, this transport will allow the use of user printers" -msgstr "Si está seleccionado, este transporte permitirá el uso de impresoras de usuario" +msgstr "" +"Si está seleccionado, este transporte permitirá el uso de impresoras de " +"usuario" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 @@ -3228,7 +3461,8 @@ msgstr "Permitir Drives" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 msgid "If checked, this transport will allow the use of user drives" -msgstr "Si está seleccionado, este transporte permitirá el uso de drivers de usuario" +msgstr "" +"Si está seleccionado, este transporte permitirá el uso de drivers de usuario" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 @@ -3238,39 +3472,39 @@ msgstr "Permitir Series" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 msgid "If checked, this transport will allow the use of user serial ports" -msgstr "Si está seleccionado, este transporte permitirá el uso de series de puertos de usuario" +msgstr "" +"Si está seleccionado, este transporte permitirá el uso de series de puertos " +"de usuario" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "Mostrar fondo de pantalla " #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" -msgstr "Si está marcada, el fondo de pantalla y los temas aparecerán en la máquina (mayor ancho de banda, mejor experiencia de usuario)" +msgstr "" +"Si está marcada, el fondo de pantalla y los temas aparecerán en la máquina " +"(mayor ancho de banda, mejor experiencia de usuario)" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "Varios monitores" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" -msgstr "Si está marcada, todos los monitores de cliente se utilizará para mostrar (sólo funciona en clientes de Windows)" +msgstr "" +"Si está marcada, todos los monitores cliente se utilizarán para visualizar " +"(sólo funciona en clientes Windows)" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "Permitir Aero-" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "Si está marcada, se permitirá la composición de escritorio" @@ -3288,7 +3522,7 @@ msgstr "Transporte RDP (vía túnel)" #: transports/RDP/TRDPTransport.py:65 msgid "RDP Transport with tunneled connection" -msgstr "RDP transporte con conexión de túnel" +msgstr "Transporte RDP con conexión de túnel" #: transports/RDP/__init__.py:40 transports/RDS_enterprise/__init__.py:40 msgid "Remote Desktop Protocol" @@ -3296,7 +3530,7 @@ msgstr "Protocolo de Escritorio Remoto (RDP)" #: transports/RDS_enterprise/RDSTransport.py:55 msgid "RDS Transport (direct)" -msgstr "Transporte de RDS (directo)" +msgstr "Transporte RDS (directo)" #: transports/RDS_enterprise/RDSTransport.py:57 msgid "RDS Transport for direct connection" @@ -3308,7 +3542,7 @@ msgstr "Transporte de RDS (túnel)" #: transports/RDS_enterprise/TRDSTransport.py:65 msgid "RDS Transport for tunneled connection" -msgstr "Transporte RDS para conexión de túnel" +msgstr "Transporte RDS para conexión vía túnel" #: transports/RGS_enterprise/RGSTransport.py:36 msgid "RGS Transport (direct)" @@ -3336,7 +3570,8 @@ msgstr "Calidad ajustable" #: transports/RGS_enterprise/RGSTransport.py:51 #: transports/RGS_enterprise/TRGSTransport.py:59 msgid "If checked, the image quality will be adjustable with bandwidth" -msgstr "Si está seleccionada, la calidad de imagen se ajustará con el ancho de banda" +msgstr "" +"Si está seleccionada, la calidad de imagen se ajustará al ancho de banda" #: transports/RGS_enterprise/RGSTransport.py:52 #: transports/RGS_enterprise/TRGSTransport.py:60 @@ -3348,7 +3583,9 @@ msgstr "Calidad ajustable mín." 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 tasa de actualización mínima." +msgstr "" +"La menor calidad de imagen aplicada a las imágenes para mantener la tasa de " +"actualización mínima." #: transports/RGS_enterprise/RGSTransport.py:54 #: transports/RGS_enterprise/TRGSTransport.py:62 @@ -3358,19 +3595,22 @@ msgstr "Número de fotogramas por segundo ajustable" #: transports/RGS_enterprise/RGSTransport.py:55 #: transports/RGS_enterprise/TRGSTransport.py:63 msgid "Update rate threshold to begin adjusting image quality" -msgstr "Actualizar rango de umbral para comenzar a ajustar la calidad de la imagen" +msgstr "" +"Actualizar rango de umbral para comenzar a ajustar la calidad de la imagen" #: transports/RGS_enterprise/RGSTransport.py:56 #: transports/RGS_enterprise/TRGSTransport.py:64 msgid "Match Local Resolution" -msgstr "Unir Resolución Local " +msgstr "Igualar Resolución Local " #: transports/RGS_enterprise/RGSTransport.py:57 #: transports/RGS_enterprise/TRGSTransport.py:65 msgid "" "Change the Sender's resolution to match the Receiver's resolution when " "connecting" -msgstr "Cambiar la resolución del remitente hasta que sea la misma que la resolución del receptor cuando estén conectando" +msgstr "" +"Cambiar la resolución del remitente hasta que sea la misma que la resolución " +"del receptor cuando estén conectando" #: transports/RGS_enterprise/RGSTransport.py:58 #: transports/RGS_enterprise/TRGSTransport.py:66 @@ -3412,25 +3652,28 @@ msgstr "Transporte RGS para la conexión túnel" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." -msgstr "Certificado del servidor (público), puede encontrarse en su motor ovirt, probablemente en /etc/PKI/ovirt-Engine/certs/CA.der (usar el contenido de este archivo)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +msgstr "" +"Certificado del servidor (público), puede encontrarse en su motor oVirt, " +"probablemente en /etc/PKI/ovirt-Engine/certs/CA.der (usar el contenido de " +"este archivo)." #: transports/SPICE/SPICETransport.py:52 msgid "RHEV/oVirt SPICE Transport (direct)" -msgstr "Transporte especia RHEV/oVirt (directo)" +msgstr "Transporte SPICE RHEV/oVirt (directo)" #: transports/SPICE/SPICETransport.py:54 msgid "SPICE Transport for direct connection (EXPERIMENTAL)" -msgstr "TRANSPORTE de especia para la conexión directa (EXPERIMENTAL)" +msgstr "Transporte SPICE para conexión directa (EXPERIMENTAL)" #: transports/SPICE/TSPICETransport.py:59 msgid "RHEV/oVirt SPICE Transport (tunneled)" -msgstr "Transporte de especia RHEV/oVirt (túnel)" +msgstr "Transporte SPICE RHEV/oVirt (túnel)" #: transports/SPICE/TSPICETransport.py:61 msgid "SPICE Transport for tunneled connection (EXPERIMENTAL)" -msgstr "TRANSPORTE de especia para la conexión de túnel (EXPERIMENTAL)" +msgstr "Transporte SPICE para conexión túnel (EXPERIMENTAL)" #: web/errors.py:70 msgid "Unknown error" @@ -3440,11 +3683,15 @@ msgstr "Error desconocido" msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" -msgstr "Servicio inválido. El servicio no está disponible en estos momentos. Por favor, inténtelo de nuevo pasados unos instantes." +msgstr "" +"Servicio inválido. El servicio no está disponible en estos momentos. Por " +"favor, inténtelo de nuevo pasados unos instantes." #: web/errors.py:75 msgid "Maximum services limit reached. Please, contact administrator" -msgstr "Número máximo de servicios alcanzado. Por favor, contacte con su administrador." +msgstr "" +"Número máximo de servicios alcanzado. Por favor, contacte con su " +"administrador." #: web/errors.py:76 msgid "You need to enable cookies to let this application work" @@ -3466,7 +3713,9 @@ msgstr "Solicitud recibida no válida" msgid "" "Your browser is not supported. Please, upgrade it to a modern HTML5 browser " "like Firefox or Chrome" -msgstr "Su navegador no es compatible. Por favor, actualice a un navegador HTML5 más moderno como Firefox o Chrome" +msgstr "" +"Su navegador no es compatible. Por favor, actualice a un navegador HTML5 más " +"moderno como Firefox o Chrome" #: web/errors.py:82 msgid "The requested service is in maintenance mode" @@ -3476,7 +3725,9 @@ msgstr "El servicio solicitado está en modo de mantenimiento" msgid "" "The service is not ready.\n" "Please, try again in a few moments." -msgstr "El servicio no está listo.\nPor favor, intenta nuevamente en unos momentos." +msgstr "" +"El servicio no está listo.\n" +"Por favor, inténtalo de nuevo en unos momentos." #: web/forms/LoginForm.py:54 msgid "Select authenticator" @@ -3492,8 +3743,8 @@ msgstr "El Autenticador no proporciona información" #: web/views/client_download.py:53 msgid "UDS Plugin preferences" -msgstr "Preferencias del Plugin de UDS" +msgstr "Preferencias del Plugin UDS" #: web/views/service.py:114 msgid "Service not ready. Please, try again in a while." -msgstr "Servicio no está listo. Por favor, pruebe otra vez en un rato." +msgstr "El servicio no está listo. Por favor, pruebe otra vez en un rato." diff --git a/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/es/LC_MESSAGES/djangojs.mo index 881e279a60069bbf8d472fd0ae13daaab6ecc4a6..dfe00854d007217f829154b7b30d2b9313234215 100644 GIT binary patch delta 4433 zcmYk;3vg7`9mnyr5t0xHND>}mLN0lc1c)R;3gICl@zsPk7=czdnQ9%sl#{!{t7iyf59QNZ~jU`4_vl4BvZRanu9qw!R8mE?puyG;zrcS z_oGJs9I7M7Z2o0r63rh_4Zee#i3_Ni{S;#wX%acoCLL8l0nWgiQ4h4^XxxGt(XTNH zPoZY!P3u|I48CjgAED~MY|Fnwb)-L)Y7b>(u>PuOCr~`t7I4x7%TSxG z8JR4z1~s)mvhG54@JUp|N3ADN9Xo}Z*>k9RE@d$Pn!^84kbp^C)m}(Jt!*xfk`$Rdui!wK=C-=U{KW|Mx3_ zOHn-wp*CaG=2xOd9K-k$pgQ2<9-lEgv6%e0EbsaIto5j+38P-`hfwWo#ZlOSF;(~q z3FiSSJay(LG=AxFg z6;d;J8mCt~I_361a_)F%4?HHBZJD$30BdOQXb$WKDuHx+e#A!=&tQJbt8 zH6!h)HQtWelt)kl`4egrzlEuK|Nlm!fP(+vG)&89v^Wp-9CNkJfu%@ z4c?3!t-nP*e+kE8_DJuOI~!FVMRn{c%%pwuG70tQ0_wH;0QtpRPZIP((*k4QeE7 zQEPn^6Y+Pb2H&vxw^2)S9<|H=i|V+KuaoK>hI($C%}*+3{2$P1`ldj>VN z|3r1*GwW4UNA&NIHe)g>-xt-Pbkqp*P#qYBK8(NO_$<+v_#yES5&!@1NfJ7Cd&JM` z%=d{$2yL3jh;>8&k)*}I@S++jp#l!)juUPVl7(>v49vuY$kp{=!g!yA4|P~ zdEe6R!bTE5x0whoAs!%JAoTtmA-;LIWDXPe*}{HS{b6VzHWCjL?Zi!lcBqcKh*g?c zJ~Z)<_kNXfe2+L7Pw}!^x1!!5ZRah7cA<`^JmUW(ew*|Po7XNpO6UV|Ke3Itn0gQjtCRIh%!QlpO_I(@xM0SNldW$J{Tk>5fwx}v6t9K z%q8^VHxb=O{67w5Qf16tDabI$>GE8M85~iAv;|~OabwMTFz9a5%myD=zcaCVx z=1Ofi5}~R3NLx#|=lw8 z`c_lzZ>G16O^tLpY^uX`VO`#lTcR4g@kD}k8b%@ZG*#c`kJQlv70zr6t_XW)XVyH& zb@D1wnu1Zk*FCo`Z*{+hV4xxF1pH04jbZmnUUBiY+IfIJ`0Im_p2~wEI@IisgyPjL z$-mL(bgj&9_jP?)FxHnCXj~fcx4QcZhPqXS1Cqnh2ooDzDT&2t<9}1;Yc*7!4K=n X_H@%ucf+XL`tX>yBwa6#s`dRJ8e9^( delta 4710 zcmaKudvH|M9mh`;l0bkUApt6o8v+4So@MRMsKp0uy(T>_W=mV^3Wp1 z2YMA02n2)*3I&N(>p&@@)=tR`rF91ELztfGuD> z%!b>b=D!Zx!2OV)ImDwQJZAepgY9U4m15GEjGK(Q}G}{4JEH&cIIWZ_ZQEgjTGo0S?qj%V7^V!?t5k z<5t6)VFT334?vy#11Lj|+V)9^Q_U%;4gUt^iAzwP&Eb*MNeijaXTA%yz$iE#PKBDV z7WRcZpiXogX2H`?p82cgmrx$O06W1JOxF9ZQ2P`?z3&HQ(5Q~YU&%C{4lOtt>LfFu zPCCaj4EdQScxe0vsHEErah}-?<>Fshegsp7LT!B7@+_1A|Ag{z>wNsLg&bOPWq)`B z90rvW z<@QA-)WEqA@0g`fx!^;&tO3dsZ$NqC0F)<=z*N#fdGe%fe-0Iri%^DqW0{YYTE8!J zbpOXv=}t#gy2C7oT5ucGMtd#af=Z@?P=>q*HLeM=w)q6=02iPP%fYSc?`YW%>itA0 zgDPPb`}trHS?fcyaMWEYoJcH9hSob z5L?XOAwQE>nBK4q%5%3tt#^AN{+DHU&>_p_KyHS480w_UET4u7!3N0B?B<~m9feBH zQ&98HLoJ-;r2E@JjVpv&Z!lCy$3R`nsZKI|!u#pa29H9;W)0NIH$W};j%^=;it(Q; zo1r|?sfe#990c|L2T=1DK?lAB71EzWt#=s8u#b}V#UG(8`U_NSE_rm#*d^1gOJp2NtKDAtOtvAYYyyX-q&nIV4k;Roz*}vGnSO(?NXP_3? zZr{HKb&|cd|81!G2O-`!pFrh8vwhzI>vgcsPzLvbx!8LpLRtPkya67E{LIHZ^u8I&#W}sw>vez*?XIu{j)d}50H*GLl8Ul<71Y9O zp$2Y-W8ep{Kg^_4w`B+%4=bT=$t!RQY=Q$|=iVe5oNT!SYW_Yr5Pk|-(zIu>{^Xw- zN=32upia6HX2S-k5bT1?F^6Cl{2c1qor9W}jTOr75~w5|3|qkoP~)dt&VgF*L8yZ! zU{bMJNk!Mfhq|wuph1d-P_aJ@<(cD9hMj?} zq5i$x2y!fQp^`PPFa9TNW-uLM1=NPip+Zp)b%J-HT-yX?z^9g_9ZBT zzJW44w_nNNj8uY(|MN(h{wTU!Hd4`oFQH9nCi*E_izcCVs1cQ+Z770fqc>0s z^b@3mB#_E8XgiYe0dzOQHj|9=cnB>)tjpb*v^;XLi9rR5%U|x9#L3RJx!B%D|9+soTihd9D)+1|rUU`rUx* zkLiB8)tzqGt?`)bpX-+Ik11U5pD5hvH#l80`ukg)o;lj2y4s6H9M?bQOls{!s^V@i z91O?(PDSMmy1OVils&zWQx%CuF$B9pPE9mX7rDlwfEROP!J4aWI$2cTmi7NL&tK7_ zEKg^2qcyHmdt~dvU~R-`e{g|5ERBxz}0Z zpY8LH5)N4xO?XwVnd~}q-B3soBVcha7B4rmcsg}%%+Dzu>Jrs!ycUnT;aFWH8uzXV a?DeVU{Eu, 2014-2015 # blafuente , 2014 -# blafuente , 2014 +# blafuente , 2014-2015 # JaviBas , 2014 # JaviBas , 2014 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:02+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/openuds/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/openuds/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -126,7 +127,7 @@ msgstr "Grupo guardado" #: static/tmp_js/gui-d-authenticators.js:189 msgid "New meta group" -msgstr "Nuevo grupo meta" +msgstr "Nuevo meta grupo" #: static/tmp_js/gui-d-authenticators.js:191 msgid "New group" @@ -155,7 +156,7 @@ msgstr "Borrar grupo" #: static/tmp_js/gui-d-authenticators.js:224 msgid "Group deletion error" -msgstr "Error en el borrado del grupo" +msgstr "Error al borrar grupo" #: static/tmp_js/gui-d-authenticators.js:270 msgid "Edit user" @@ -194,7 +195,7 @@ msgstr "Eliminar usuario" #: static/tmp_js/gui-d-authenticators.js:339 msgid "User deletion error" -msgstr "Error de borrado de usuario" +msgstr "Error al borrar usuario" #: static/tmp_js/gui-d-authenticators.js:352 msgid "New authenticator" @@ -202,7 +203,7 @@ msgstr "Nuevo autenticador" #: static/tmp_js/gui-d-authenticators.js:352 msgid "Authenticator creation error" -msgstr "Error de creación de autenticador" +msgstr "Error al crear autenticador" #: static/tmp_js/gui-d-authenticators.js:353 msgid "Edit authenticator" @@ -218,7 +219,7 @@ msgstr "Eliminar autenticador" #: static/tmp_js/gui-d-authenticators.js:354 msgid "Authenticator deletion error" -msgstr "Error en la eliminación del autenticador" +msgstr "Error al eliminar autenticador" #: static/tmp_js/gui-d-config.js:56 msgid "Configuration saved" @@ -226,7 +227,7 @@ msgstr "Configuración guardada" #: static/tmp_js/gui-d-config.js:60 msgid "No changes has been made" -msgstr "No se han introducido modificaciones" +msgstr "No se han hecho cambios" #: static/tmp_js/gui-d-connectivity.js:21 msgid "New transport" @@ -234,7 +235,7 @@ msgstr "Nuevo transporte" #: static/tmp_js/gui-d-connectivity.js:21 msgid "Transport creation error" -msgstr "Error en creación de transporte" +msgstr "Error al crear transporte" #: static/tmp_js/gui-d-connectivity.js:22 msgid "Edit transport" @@ -250,7 +251,7 @@ msgstr "Eliminar transporte" #: static/tmp_js/gui-d-connectivity.js:23 msgid "Transport deletion error" -msgstr "Error en la eliminación del transporte" +msgstr "Error al eliminar transporte" #: static/tmp_js/gui-d-connectivity.js:30 msgid "New network" @@ -258,7 +259,7 @@ msgstr "Nueva red" #: static/tmp_js/gui-d-connectivity.js:30 msgid "Network creation error" -msgstr "Error de creación de la red" +msgstr "Error al crear red" #: static/tmp_js/gui-d-connectivity.js:31 msgid "Edit network" @@ -266,7 +267,7 @@ msgstr "Editar red" #: static/tmp_js/gui-d-connectivity.js:31 msgid "Network saving error" -msgstr "Error al guardar la red" +msgstr "Error al guardar red" #: static/tmp_js/gui-d-connectivity.js:32 msgid "Delete network" @@ -274,7 +275,7 @@ msgstr "Eliminar red" #: static/tmp_js/gui-d-connectivity.js:32 msgid "Network deletion error" -msgstr "Error de eliminación de la red" +msgstr "Error al eliminar red" #: static/tmp_js/gui-d-dashboard.js:40 msgid "Staff member" @@ -294,7 +295,7 @@ msgstr "Debe seleccionar una imagen" #: static/tmp_js/gui-d-gallery.js:34 msgid "Image is too big (max. upload size is 256Kb)" -msgstr "La imagen es demasiado grande (el tamaño de carga máximo es 256Kb)" +msgstr "La imagen es demasiado grande (el tamaño máximo es de 256Kb)" #: static/tmp_js/gui-d-gallery.js:80 msgid "Delete Image" @@ -302,31 +303,31 @@ msgstr "Borrar imagen" #: static/tmp_js/gui-d-gallery.js:80 msgid "Image deletion error" -msgstr "Error de borrado de imagen" +msgstr "Error al borrar la imagen" #: static/tmp_js/gui-d-osmanagers.js:17 msgid "New OSManager" -msgstr "Nuevo OSManager" +msgstr "Nuevo OS Manager" #: static/tmp_js/gui-d-osmanagers.js:17 msgid "OSManager creation error" -msgstr "Error de creación del OSManager" +msgstr "Error al crear OS Manager" #: static/tmp_js/gui-d-osmanagers.js:18 msgid "Edit OSManager" -msgstr "Editar OSManager" +msgstr "Editar OS Manager" #: static/tmp_js/gui-d-osmanagers.js:18 msgid "OSManager saving error" -msgstr "Error al guardar OSManager" +msgstr "Error al guardar OS Manager" #: static/tmp_js/gui-d-osmanagers.js:19 msgid "Delete OSManager" -msgstr "Eliminar OSManager" +msgstr "Eliminar OS Manager" #: static/tmp_js/gui-d-osmanagers.js:19 msgid "OSManager deletion error" -msgstr "Error en la eliminación del OSManager" +msgstr "Error al eliminarl OS Manager" #: static/tmp_js/gui-d-reports.js:21 static/tmp_js/gui-d-reports.js:34 msgid "Generate report" @@ -338,7 +339,7 @@ msgstr "Error al crear el informe" #: static/tmp_js/gui-d-reports.js:52 msgid "Error obtainint report description" -msgstr "Descripción del informe de error obtainint" +msgstr "Descripción del informe de error" #: static/tmp_js/gui-d-services.js:69 msgid "In Maintenance" @@ -354,7 +355,7 @@ msgstr "Editar servicio" #: static/tmp_js/gui-d-services.js:121 msgid "Service creation error" -msgstr "Error de creación de servicio" +msgstr "Error al crear servicio" #: static/tmp_js/gui-d-services.js:122 msgid "New service" @@ -378,15 +379,15 @@ msgstr "Mantenimiento" #: static/tmp_js/gui-d-services.js:141 msgid "Maintenance Mode" -msgstr "En modo mantenimiento" +msgstr "Modo de mantenimiento" #: static/tmp_js/gui-d-services.js:141 msgid "Enter Maintenance Mode?" -msgstr "Entrar en modo mantenimiento." +msgstr "¿Entrar en modo mantenimiento?" #: static/tmp_js/gui-d-services.js:141 msgid "Exit Maintenance Mode?" -msgstr "Salir del modo mantenimiento." +msgstr "Salir del modo mantenimiento" #: static/tmp_js/gui-d-services.js:158 msgid "Enter maintenance Mode" @@ -420,123 +421,122 @@ msgstr "Eliminar proveedor de servicios" msgid "Services Provider deletion error" msgstr "Error al eliminar el proveedor de servicios" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "error" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "Retirar elemento de la caché" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "Error de eliminación" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "Agregar grupo" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "Debe proporcionar autenticador y grupo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "Quitar grupo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" -msgstr "Error en la desasignación del grupo" +msgstr "Error al quitar grupo" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "Sí" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "No" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "Quitar servicio asignado" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "Añadir transporte" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "Debe proporcionar un transporte" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "Quitar transporte" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" -msgstr "Error en la desasignación del transporte" +msgstr "Error al quitar transporte" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "Cancelar" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "Publicar" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "Cancelar la publicación" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "Forzar cancelación" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "¿Lanzar nueva publicación?" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "No se pudo crear la publicación" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "Contenido" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "Nuevo Pool de Servicios" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "error de creación" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" -msgstr "Publicar en creación" +msgstr "Publicar en la creación" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" -msgstr "Si se selecciona, se iniciará la publicación inmediatamente después de la creación" +msgstr "" +"Si se selecciona, se iniciará la publicación inmediatamente después de la " +"creación" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "Editar" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "error al guardar" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "Borrar" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "error al eliminar" @@ -546,7 +546,7 @@ msgstr "Caché" #: static/tmp_js/gui-definition.js:12 msgid "Cache has been flushed" -msgstr "La caché ha sido vaciada" +msgstr "La caché se ha vaciado" #: static/tmp_js/gui-element.js:482 msgid "Date" @@ -674,7 +674,7 @@ msgstr "Por favor, introduzca un número válido." #: static/tmp_js/gui.js:232 msgid "Please enter only digits." -msgstr "Por favor, introduzca sólo dígitos." +msgstr "Por favor, introduzca sólo cifras." #: static/tmp_js/gui.js:233 msgid "Please enter a valid credit card number." @@ -682,7 +682,7 @@ msgstr "Por favor, introduzca un número de tarjeta de crédito válida." #: static/tmp_js/gui.js:234 msgid "Please enter the same value again." -msgstr "Por favor, introduzca el mismo valor de nuevo." +msgstr "Por favor, introduzca el mismo valor otra vez." #: static/tmp_js/gui.js:235 msgid "Please enter no more than {0} characters." @@ -694,7 +694,7 @@ msgstr "Por favor, introduzca al menos {0} caracteres." #: static/tmp_js/gui.js:237 msgid "Please enter a value between {0} and {1} characters long." -msgstr "Por favor, introduzca un valor de una longitud entre {0} y {1} caracteres." +msgstr "Por favor, introduzca un valor de entre {0} y {1} caracteres." #: static/tmp_js/gui.js:238 msgid "Please enter a value between {0} and {1}." @@ -710,15 +710,15 @@ msgstr "Por favor, introduzca un valor mayor o igual a {0}." #: static/tmp_js/gui.js:277 msgid "Test passed successfully" -msgstr "Test pasado con éxito" +msgstr "Test superado con éxito" #: static/tmp_js/gui.js:280 msgid "Test failed:" -msgstr "Ha fallado el test:" +msgstr "El test ha fallado:" #: static/tmp_js/gui.js:284 msgid "Test error" -msgstr "Error en la prueba" +msgstr "Error en el test" #: static/tmp_js/gui.js:315 msgid "Edition successfully done" @@ -734,7 +734,7 @@ msgstr "Creación realizada con éxito" #: static/tmp_js/gui.js:366 msgid "Are you sure do you want to delete " -msgstr "¿Estás seguro que lo quieres eliminar?" +msgstr "¿Estás seguro de que lo quieres eliminar?" #: static/tmp_js/gui.js:374 msgid "Sucess" @@ -746,4 +746,4 @@ msgstr "Contactando con servicio..." #: static/tmp_js/uds-client.js:186 msgid "Error accessing service: " -msgstr "Error de acceso a servicio: " +msgstr "Error al acceder al servicio: " diff --git a/server/src/uds/locale/eu/LC_MESSAGES/django.mo b/server/src/uds/locale/eu/LC_MESSAGES/django.mo index c949d260072df922f913ed204caa41e80fcac441..24e038fd406bfe875ccc5412d945f4d9e307dd6c 100644 GIT binary patch delta 34 ncmey#@sneNG82c9p@Na2m66e8Z6*Z}$I#Ns&~$S!lNu8Mp)v>w delta 34 mcmey#@sneNG82b^se+-Am5KReZ6*aU$H2, 2015 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:46+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:15+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/openuds/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/openuds/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -42,7 +43,7 @@ msgstr "" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -51,7 +52,7 @@ msgstr "" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -68,8 +69,8 @@ msgstr "" msgid "Tag" msgstr "" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -209,104 +210,104 @@ msgstr "" msgid "User services" msgstr "" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" msgstr "" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" msgstr "" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" msgstr "" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" msgstr "" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "" @@ -349,7 +350,7 @@ msgid "Creation date" msgstr "" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "" @@ -395,7 +396,8 @@ msgid "Cached services" msgstr "" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "" @@ -417,19 +419,23 @@ msgstr "" msgid "Assigned transports" msgstr "" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -460,7 +466,8 @@ msgstr "Erabiltzaile izena" msgid "state" msgstr "" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "" @@ -531,18 +538,18 @@ msgid "requested a template that do not exist" msgstr "" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "" @@ -586,8 +593,8 @@ msgstr "" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 msgid "" -"Username with read privileges on the base selected (use USER@DOMAIN.DOM form" -" for this)" +"Username with read privileges on the base selected (use USER@DOMAIN.DOM form " +"for this)" msgstr "" #: auths/ActiveDirectory_enterprise/Authenticator.py:40 @@ -776,8 +783,8 @@ msgstr "" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" msgstr "" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 @@ -861,8 +868,7 @@ msgid "User Name Attr" msgstr "" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" +msgid "Attributes that contains the user name (list of comma separated values)" msgstr "" #: auths/RegexLdap/Authenticator.py:66 @@ -937,8 +943,7 @@ msgid "Entity ID" msgstr "" #: auths/SAML_enterprise/SAML.py:129 -msgid "" -"ID of the SP. If left blank, this will be autogenerated from server URL" +msgid "ID of the SP. If left blank, this will be autogenerated from server URL" msgstr "" #: auths/SAML_enterprise/SAML.py:131 @@ -967,8 +972,8 @@ msgstr "" #: auths/SAML_enterprise/SAML.py:161 msgid "" -"Server certificate should be a valid PEM (PEM certificates starts with " -"-----BEGIN CERTIFICATE-----)" +"Server certificate should be a valid PEM (PEM certificates starts with -----" +"BEGIN CERTIFICATE-----)" msgstr "" #: auths/SAML_enterprise/SAML.py:166 @@ -1125,15 +1130,15 @@ msgstr "" msgid "Service is in maintenance mode and new publications are not allowed" msgstr "" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" msgstr "" @@ -1202,6 +1207,10 @@ msgstr "" msgid "Base report" msgstr "" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "" @@ -1328,8 +1337,8 @@ msgstr "" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" msgstr "" #: dispatchers/wyse_enterprise/views.py:112 @@ -1464,8 +1473,7 @@ msgstr "" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " -"2.7)" +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" msgstr "" #: osmanagers/LinuxOsManager/__init__.py:54 @@ -1475,18 +1483,31 @@ msgid "" msgstr "" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" -msgstr "" - -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 -msgid "RDS OS Manager" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" msgstr "" #: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +msgid "RDS OS Manager" +msgstr "" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" msgstr "" +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "" + #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" msgstr "" @@ -1631,64 +1652,103 @@ msgstr "" msgid "UDS Actor for windows machines" msgstr "" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#, fuzzy +#| msgid "User" +msgid "User ID" +msgstr "erabiltzaile" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +msgid "Real Name" +msgstr "" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" msgstr "" -#: reports/stats/usage.py:44 -msgid "Usage stats" +#: reports/stats/login.py:345 +msgid "User access to UDS" msgstr "" #: reports/stats/usage.py:45 +msgid "Usage stats" +msgstr "" + +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "" @@ -1698,8 +1758,7 @@ msgstr "" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -msgid "" -"Hyper Services based on templates and differential disks (experimental)" +msgid "Hyper Services based on templates and differential disks (experimental)" msgstr "" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:72 @@ -1745,8 +1804,7 @@ msgstr "" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 msgid "" -"If more than 1 interface is found in machine, use one on this network as " -"main" +"If more than 1 interface is found in machine, use one on this network as main" msgstr "" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:98 @@ -1871,13 +1929,13 @@ msgstr "" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "" @@ -2029,8 +2087,7 @@ msgid "Default password for users in list mapping" msgstr "" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" +msgid "Error: User {} on host {} is being used and cannot be removed right now" msgstr "" #: services/RDS_enterprise/RDSProvider.py:89 @@ -2590,6 +2647,14 @@ msgstr "" msgid "Transport" msgstr "" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "" @@ -2924,8 +2989,8 @@ msgstr "" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" msgstr "" #: templates/uds/html5/templates/base.html:108 @@ -3070,8 +3135,8 @@ msgstr "" #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" msgstr "" #: transports/HTML5RDP/HTML5RDP.py:74 @@ -3155,14 +3220,14 @@ msgid "NX Transport for tunneled connection" msgstr "" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" @@ -3171,21 +3236,21 @@ msgid "" msgstr "" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" msgstr "" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3236,36 +3301,30 @@ msgid "If checked, this transport will allow the use of user serial ports" msgstr "" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" msgstr "" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" msgstr "" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "" @@ -3407,8 +3466,8 @@ msgstr "" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." msgstr "" #: transports/SPICE/SPICETransport.py:52 diff --git a/server/src/uds/locale/eu/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/eu/LC_MESSAGES/djangojs.mo index 989d31c875df5131423bc5a5212888b5e9c5e480..85076d960c4c235ae3b40805f679dfbc4fcf3b13 100644 GIT binary patch delta 33 ncmZqRYT(-Nor%N9P{GL1%E)N)e, 2015 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:46+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/openuds/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/openuds/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -415,123 +416,120 @@ msgstr "" msgid "Services Provider deletion error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.mo b/server/src/uds/locale/fr/LC_MESSAGES/django.mo index 01cb1fab01a9e5fd3bc0699457fb4b0c71c06e0c..079969e8fc404bae4943c192decb44d954c939aa 100644 GIT binary patch delta 17673 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 delta 16445 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 ZE3;oz|3dU=+kStSSHQO4GP&}&{tv&kB*p*$ diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.po b/server/src/uds/locale/fr/LC_MESSAGES/django.po index 234db804..cbadf058 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/django.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Adolfo Gómez , 2012 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:30+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: French (http://www.transifex.com/projects/p/openuds/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/openuds/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -42,7 +43,7 @@ msgstr "Authentificateurs actuels" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -51,7 +52,7 @@ msgstr "Nom" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -68,8 +69,8 @@ msgstr "Priorité" msgid "Tag" msgstr "Tag" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -117,7 +118,9 @@ msgstr "Gamme de réseau" msgid "" "Network range. Accepts most network definitions formats (range, subnet, " "host, etc..." -msgstr "Plage de réseau. Accepte la plupart des formats de définitions réseau (gamme, sous-réseau, hôte, etc..." +msgstr "" +"Plage de réseau. Accepte la plupart des formats de définitions réseau " +"(gamme, sous-réseau, hôte, etc..." #: REST/methods/osmanagers.py:55 msgid "Current OS Managers" @@ -209,104 +212,111 @@ msgstr "Services déployés" msgid "User services" msgstr "Services aux utilisateurs" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "Piscines service" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "Service parent" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "statut" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "Montre transports" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" msgstr "Créez au moins un OS gérant avant de créer un nouveau pool service" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "Créez au moins un service avant de créer un nouveau pool service" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "Service de base" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "Service utilisé comme base de cette piscine service" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "Gestionnaire de système d'exploitation" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "Gestionnaire de l'OS utilisé comme base de cette piscine service" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "Image associée" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "Image assocciated grâce à ce service" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "Initiales services disponibles" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "Services créés initialement pour ce pool service" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "Services pour conserver en cache" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" -msgstr "Services conservés dans le cache pour l'assignation de service utilisateur améliorée" +msgstr "" +"Services conservés dans le cache pour l'assignation de service utilisateur " +"améliorée" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "Services de garder en mémoire cache L2" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" -msgstr "Services conservés dans le cache de niveau 2 pour la production d'un service amélioré" +msgstr "" +"Services conservés dans le cache de niveau 2 pour la production d'un service " +"amélioré" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "Nombre maximum de services à fournir" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" -msgstr "Nombre maximal de service (assignés et cache L1) qui peuvent être créés pour ce service" +msgstr "" +"Nombre maximal de service (assignés et cache L1) qui peuvent être créés pour " +"ce service" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "Voir la transports" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" -msgstr "S'il est activé, les transports alternatifs pour utilisateur seront affichera" +msgstr "" +"S'il est activé, les transports alternatifs pour utilisateur seront affichera" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "Service de base n'existe plus" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "Ce service nécessite un gestionnaire de système d'exploitation" @@ -322,7 +332,9 @@ msgstr "Accès au réseau" msgid "" "If checked, the transport will be enabled for the selected networks.If " "unchecked, transport will be disabled for selected networks" -msgstr "Si coché, le transport sera activé pour les réseaux sélectionnés.If décochée, le transport sera désactivée pour les réseaux sélectionnés" +msgstr "" +"Si coché, le transport sera activé pour les réseaux sélectionnés.If " +"décochée, le transport sera désactivée pour les réseaux sélectionnés" #: REST/methods/transports.py:78 templates/uds/html5/index.html:81 #: templates/uds/index.html:79 @@ -333,7 +345,9 @@ msgstr "Réseaux" msgid "" "Networks associated with this transport. If No network selected, will mean " "\"all networks\"" -msgstr "Réseaux liés à ce transport. Si aucun réseau sélectionné, signifiera « tous les réseaux »" +msgstr "" +"Réseaux liés à ce transport. Si aucun réseau sélectionné, signifiera « tous " +"les réseaux »" #: REST/methods/user_services.py:80 REST/methods/user_services.py:81 msgid "unknown" @@ -349,7 +363,7 @@ msgid "Creation date" msgstr "Date de création" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "Révision" @@ -395,7 +409,8 @@ msgid "Cached services" msgstr "Services de mise en cache" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "État" @@ -417,19 +432,23 @@ msgstr "Commentaires" msgid "Assigned transports" msgstr "Transports assignés" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "Publications" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "La date de publication" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "Raison" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "Changelog" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -460,7 +479,8 @@ msgstr "Nom d'utilisateur" msgid "state" msgstr "État" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "Dernier accès" @@ -500,7 +520,9 @@ msgstr "Commentaires pour cet élément" #: REST/model.py:136 msgid "" "Selects the priority of this element (lower number means higher priority)" -msgstr "Sélectionne la priorité de cet élément (priorité supérieure de moyens nombre inférieur)" +msgstr "" +"Sélectionne la priorité de cet élément (priorité supérieure de moyens nombre " +"inférieur)" #: REST/model.py:147 msgid "Tag for this element" @@ -531,18 +553,18 @@ msgid "requested a template that do not exist" msgstr "demandé un modèle qui n'existent pas" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "Page %(page_number)d de %(page_count)d" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "Impriméen %(now:%Y, %b %d)s à %(now:%H:%M)s" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "Liste des utilisateurs des {}" @@ -577,7 +599,9 @@ msgstr "Compatibilité" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility of AD connection (Usually windows 2000 and later)" -msgstr "Compatibilité de connexion AD (généralement windows 2000 et versions ultérieures)" +msgstr "" +"Compatibilité de connexion AD (généralement windows 2000 et versions " +"ultérieures)" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 #: auths/RegexLdap/Authenticator.py:59 auths/SimpleLDAP/Authenticator.py:60 @@ -586,9 +610,11 @@ msgstr "Utilisateur LDAP" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 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)" +"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:40 #: auths/ActiveDirectory_enterprise/Authenticator.py:58 @@ -677,24 +703,31 @@ msgstr "Domaine semble être incorrect, veuillez bien consulter le" #: auths/ActiveDirectory_enterprise/Authenticator.py:475 msgid "" "Server does not seem an Active Directory (it does not have user objects)" -msgstr "Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets utilisateur)" +msgstr "" +"Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets " +"utilisateur)" #: auths/ActiveDirectory_enterprise/Authenticator.py:483 msgid "" "Server does not seem an Active Directory (it does not have group objects)" -msgstr "Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets de groupe)" +msgstr "" +"Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets de " +"groupe)" #: auths/ActiveDirectory_enterprise/Authenticator.py:491 msgid "" "Server does not seem an Active Directory (it does not have any user nor " "groups)" -msgstr "Serveur ne semble pas un serveur Active Directory (il n'a pas de n'importe quel utilisateur ni groupes)" +msgstr "" +"Serveur ne semble pas un serveur Active Directory (il n'a pas de n'importe " +"quel utilisateur ni groupes)" #: auths/ActiveDirectory_enterprise/Authenticator.py:496 #: auths/EDirectory_enterprise/Authenticator.py:360 #: auths/RegexLdap/Authenticator.py:436 auths/SimpleLDAP/Authenticator.py:435 msgid "Connection params seem correct, test was succesfully executed" -msgstr "Connexion params semblent correctes, le test a été correctement exécutée" +msgstr "" +"Connexion params semblent correctes, le test a été correctement exécutée" #: auths/EDirectory_enterprise/Authenticator.py:62 msgid "EDirectory Server IP or Hostname" @@ -716,7 +749,9 @@ msgstr "Port LDAP (389 pour non ssl, habituellement) et 636 pour ssl" #: auths/EDirectory_enterprise/Authenticator.py:64 #: auths/RegexLdap/Authenticator.py:58 auths/SimpleLDAP/Authenticator.py:59 msgid "If checked, the connection will be ssl, using port 636 instead of 389" -msgstr "S'il est activé, la connexion sera ssl, en utilisant le port 636 au lieu de 389" +msgstr "" +"S'il est activé, la connexion sera ssl, en utilisant le port 636 au lieu de " +"389" #: auths/EDirectory_enterprise/Authenticator.py:65 msgid "Admin user" @@ -752,14 +787,18 @@ msgstr "Base de recherche LDAP est incorrect" #: auths/EDirectory_enterprise/Authenticator.py:330 #: auths/RegexLdap/Authenticator.py:402 auths/SimpleLDAP/Authenticator.py:382 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)" +msgstr "" +"Classe d'utilisateur LDAP semble incorrect (aucun utilisateur ne trouvé par " +"cette classe)" #: auths/EDirectory_enterprise/Authenticator.py:338 #: auths/SimpleLDAP/Authenticator.py:398 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)" +msgstr "" +"Attribut d'id utilisateur LDAP semble incorrect (aucun utilisateur ne " +"trouvée par qui attribut)" #: auths/EDirectory_enterprise/Authenticator.py:346 msgid "Expected group attribute " @@ -768,7 +807,9 @@ msgstr "Attribut groupe attendue " #: auths/EDirectory_enterprise/Authenticator.py:355 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?)" +msgstr "" +"LDAP user class ou utilisateur id attr est probablement faux (Ldap est un " +"eDirectory?)" #: auths/IP/Authenticator.py:52 msgid "Accept proxy" @@ -776,9 +817,12 @@ msgstr "Accepter de procuration" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" -msgstr "Si cochée, les demandes via le proxy obtiendrez transféré l'adresse ip (attention avec ce bein vérifié, peut prendre les adresses IP internes depuis internet)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" +msgstr "" +"Si cochée, les demandes via le proxy obtiendrez transféré l'adresse ip " +"(attention avec ce bein vérifié, peut prendre les adresses IP internes " +"depuis internet)" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 msgid "IP Authenticator" @@ -830,7 +874,8 @@ msgstr "Hôte du serveur LDAP" #: auths/RegexLdap/Authenticator.py:59 auths/SimpleLDAP/Authenticator.py:60 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" +msgstr "" +"Nom d'utilisateur avec des privilèges de lecture sur la base sélectionnée" #: auths/RegexLdap/Authenticator.py:62 auths/SimpleLDAP/Authenticator.py:63 msgid "Base" @@ -838,7 +883,8 @@ msgstr "Base" #: auths/RegexLdap/Authenticator.py:62 auths/SimpleLDAP/Authenticator.py:63 msgid "Common search base (used for \"users\" and \"groups\")" -msgstr "Base de recherche commun (utilisé pour les « utilisateurs » et « groupes »)" +msgstr "" +"Base de recherche commun (utilisé pour les « utilisateurs » et « groupes »)" #: auths/RegexLdap/Authenticator.py:63 auths/SimpleLDAP/Authenticator.py:64 msgid "User class" @@ -861,9 +907,10 @@ msgid "User Name Attr" msgstr "Utilisateur nom Attr" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" -msgstr "Attributs qui contient le nom d'utilisateur (liste de valeurs séparées par des virgules)" +msgid "Attributes that contains the user name (list of comma separated values)" +msgstr "" +"Attributs qui contient le nom d'utilisateur (liste de valeurs séparées par " +"des virgules)" #: auths/RegexLdap/Authenticator.py:66 msgid "Group Name Attr" @@ -885,13 +932,17 @@ msgstr "Authentificateur de LDAP d'Expressions régulière" msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" -msgstr "LDAP user id attr est probablement faux (ne peut pas trouver n'importe quel utilisateur à la fois conditions)" +msgstr "" +"LDAP user id attr est probablement faux (ne peut pas trouver n'importe quel " +"utilisateur à la fois conditions)" #: auths/RegexLdap/Authenticator.py:425 auths/SimpleLDAP/Authenticator.py:406 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -msgstr "Attribut d'id groupe LDAP semble incorrect (aucun groupe ne trouvée par qui attribut)" +msgstr "" +"Attribut d'id groupe LDAP semble incorrect (aucun groupe ne trouvée par qui " +"attribut)" #: auths/SAML_enterprise/SAML.py:81 msgid "SAML Authenticator" @@ -913,7 +964,9 @@ msgstr "Clé privée" msgid "" "Private key used for sign and encription, as generated in base 64 from " "openssl" -msgstr "Clé privée utilisée pour signe et encription, tel que généré en base 64 de OpenSSL" +msgstr "" +"Clé privée utilisée pour signe et encription, tel que généré en base 64 de " +"OpenSSL" #: auths/SAML_enterprise/SAML.py:123 transports/SPICE/BaseSPICETransport.py:83 msgid "Certificate" @@ -930,16 +983,19 @@ msgstr "Métadonnées de l'IDP" #: auths/SAML_enterprise/SAML.py:126 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)" +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:128 msgid "Entity ID" msgstr "ID de l'entité" #: auths/SAML_enterprise/SAML.py:129 -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" +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:131 msgid "User name attrs" @@ -967,9 +1023,11 @@ msgstr "Champs d'où extraire le nom réel" #: auths/SAML_enterprise/SAML.py:161 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---)" +"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:166 msgid "Invalid server certificate. " @@ -979,7 +1037,9 @@ msgstr "Certificat de serveur non valide. " 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---" +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:198 #, python-brace-format @@ -1066,23 +1126,31 @@ msgstr "Simple authentificateur LDAP" #: auths/SimpleLDAP/Authenticator.py:390 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)" +msgstr "" +"Classe de groupe LDAP semble incorrect (aucun groupe ne trouvée par cette " +"classe)" #: auths/SimpleLDAP/Authenticator.py:415 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -msgstr "LDAP user utilisateur ou la classe id attr est probablement erroné (ne peut pas trouver n'importe quel utilisateur avec les deux conditions)" +msgstr "" +"LDAP user utilisateur ou la classe id attr est probablement erroné (ne peut " +"pas trouver n'importe quel utilisateur avec les deux conditions)" #: auths/SimpleLDAP/Authenticator.py:424 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -msgstr "LDAP groupe classe ou groupe id attr est probablement erroné (ne peut pas trouver n'importe quel groupe avec les deux conditions)" +msgstr "" +"LDAP groupe classe ou groupe id attr est probablement erroné (ne peut pas " +"trouver n'importe quel groupe avec les deux conditions)" #: auths/SimpleLDAP/Authenticator.py:431 msgid "Can't locate any group with the membership attribute specified" -msgstr "Ne peut pas localiser n'importe quel groupe avec l'attribut d'appartenance spécifié" +msgstr "" +"Ne peut pas localiser n'importe quel groupe avec l'attribut d'appartenance " +"spécifié" #: core/BaseModule.py:200 msgid "No connection checking method is implemented." @@ -1106,7 +1174,8 @@ msgstr "Nom du groupe" #: core/auths/BaseAuthenticator.py:540 msgid "Users can't be created inside this authenticator" -msgstr "Utilisateurs ne peut pas être créés à l'intérieur de cet authentificateur" +msgstr "" +"Utilisateurs ne peut pas être créés à l'intérieur de cet authentificateur" #: core/auths/auth.py:89 msgid "System Administrator" @@ -1119,23 +1188,28 @@ msgstr "Interdit" #: core/managers/PublicationManager.py:202 msgid "" "Already publishing. Wait for previous publication to finish and try again" -msgstr "Déjà la publication. Attendez une publication antérieure de terminer et réessayez" +msgstr "" +"Déjà la publication. Attendez une publication antérieure de terminer et " +"réessayez" #: core/managers/PublicationManager.py:205 msgid "Service is in maintenance mode and new publications are not allowed" -msgstr "Le service est en mode maintenance et nouvelles publications ne sont pas autorisées" +msgstr "" +"Le service est en mode maintenance et nouvelles publications ne sont pas " +"autorisées" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "Ne peut annuler la publication non courante" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "Ne peut annuler la publication publication non utilisable" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" -msgstr "Ne peut annuler la publication des publications avec services de processus" +msgstr "" +"Ne peut annuler la publication des publications avec services de processus" #: core/managers/UserPrefsManager.py:285 msgid "Screen Size" @@ -1184,7 +1258,9 @@ msgstr "Impossible de supprimer un élément non actif" #: core/managers/UserServiceManager.py:344 #, python-brace-format msgid "Can't remove nor cancel {0} cause its states don't allow it" -msgstr "Ne peut pas supprimer ni annuler {0} cause que ses États ne lui permettent pas" +msgstr "" +"Ne peut pas supprimer ni annuler {0} cause que ses États ne lui permettent " +"pas" #: core/osmanagers/BaseOsManager.py:56 msgid "Base OS Manager" @@ -1202,6 +1278,10 @@ msgstr "Rapport de base" msgid "Base report" msgstr "Rapport de base" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "Généré par UDS" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "Service de base" @@ -1328,9 +1408,10 @@ msgstr "{0} contient des caractères non valides" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" -msgstr "Gamme mac non valide. Gamme Mac doit être au format XX-XX:XX:XX:XX :XX: XX" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" +msgstr "" +"Gamme mac non valide. Gamme Mac doit être au format XX-XX:XX:XX:XX :XX: XX" #: dispatchers/wyse_enterprise/views.py:112 msgid "There are no authenticators available for login" @@ -1383,7 +1464,9 @@ msgstr "Transport introuvable" #: dispatchers/wyse_enterprise/views.py:289 #: 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." +msgstr "" +"Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau de " +"temps en temps." #: models/Permissions.py:80 msgid "Read" @@ -1405,7 +1488,9 @@ msgstr "Gestionnaire de système d'exploitation Linux" msgid "" "Os Manager to control linux virtual machines (basically renames machine and " "notify state)" -msgstr "Gestionnaire de l'os pour contrôler les machines virtuelles de linux (essentiellement renomme machine et notifier l'État)" +msgstr "" +"Gestionnaire de l'os pour contrôler les machines virtuelles de linux " +"(essentiellement renomme machine et notifier l'État)" #: osmanagers/LinuxOsManager/LinuxOsManager.py:59 #: osmanagers/WindowsOsManager/WindowsOsManager.py:50 @@ -1436,7 +1521,9 @@ msgstr "Max.Idle temps" msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max idle time)." -msgstr "Temps d'inactivité maximal (en secondes) avant la session est automaticatlly fermé à l'utilisateur (< = 0 signifie aucune durée d'inactivité maximale)." +msgstr "" +"Temps d'inactivité maximal (en secondes) avant la session est automaticatlly " +"fermé à l'utilisateur (< = 0 signifie aucune durée d'inactivité maximale)." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:47 msgid "Linux Random Password OS Manager" @@ -1444,7 +1531,9 @@ msgstr "Linux OS de mot de passe aléatoire Manager" #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:49 msgid "Os Manager to control linux machines, with user password set randomly." -msgstr "Manager d'os à contrôle des machines linux, avec mot de passe utilisateur défini au hasard." +msgstr "" +"Manager d'os à contrôle des machines linux, avec mot de passe utilisateur " +"défini au hasard." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:53 #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 @@ -1464,28 +1553,50 @@ msgstr "Doit fournir un compte d'utilisateur!!!" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " -"2.7)" -msgstr "Acteur de l'UDS pour Debian, Ubuntu... Machines de Linux (nécessite python 2.7)" +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" +msgstr "" +"Acteur de l'UDS pour Debian, Ubuntu... Machines de Linux (nécessite " +"python 2.7)" #: osmanagers/LinuxOsManager/__init__.py:54 msgid "" "UDS Actor for Centos, Fedora, RH, ... Linux machines (Requires python " "2.7)" -msgstr "Acteur de l'UDS pour Centos, Fedora, RH... (Requires python machines Linux 2.7)" +msgstr "" +"Acteur de l'UDS pour Centos, Fedora, RH... (Requires python machines " +"Linux 2.7)" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" -msgstr "Acteur de l'UDS pour openSUSE... Machines de Linux (nécessite python 2.7)" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" +msgstr "" +"Acteur de l'UDS pour openSUSE... Machines de Linux (nécessite python " +"2.7)" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "Gestionnaire de système d'exploitation de RDS" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" -msgstr "Gestionnaire de système d'exploitation contrôle RDS a fourni des services" +msgstr "" +"Gestionnaire de système d'exploitation contrôle RDS a fourni des services" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "Max. temps de session" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" +"Durée maximale pour une session (0 ne signifie aucune limite). Après cela " +"période, session sortira." + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "" +"Acteur de l'UDS RDS (pour les applications distantes sur Windows Server 2012)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" @@ -1495,7 +1606,9 @@ msgstr "Gestionnaire de système d'exploitation pour le domaine Windows" msgid "" "Os Manager to control windows machines with domain. (Basically renames " "machine)" -msgstr "Os Manager pour contrôler les machines windows avec le domaine. (Essentiellement renomme machine)" +msgstr "" +"Os Manager pour contrôler les machines windows avec le domaine. " +"(Essentiellement renomme machine)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 @@ -1507,7 +1620,9 @@ msgstr "Domaine" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 msgid "Domain to join machines to (use FQDN form, Netbios name not allowed)" -msgstr "Domaine de rejoindre machines pour (utiliser le formulaire nom de domaine complet, nom Netbios non autorisés)" +msgstr "" +"Domaine de rejoindre machines pour (utiliser le formulaire nom de domaine " +"complet, nom Netbios non autorisés)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 msgid "Account with rights to add machines to domain" @@ -1525,7 +1640,10 @@ msgstr "OU" msgid "" "Organizational unit where to add machines in domain (check it before using " "it). i.e.: ou=My Machines,dc=mydomain,dc=local" -msgstr "Unité d'organisation où ajouter des machines dans le domaine (Vérifiez-la avant d'utiliser Il). c'est-à-dire: UO = My Machines, dc = mondomaine, dc = local" +msgstr "" +"Unité d'organisation où ajouter des machines dans le domaine (Vérifiez-la " +"avant d'utiliser Il). c'est-à-dire: UO = My Machines, dc = mondomaine, dc = " +"local" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:46 msgid "Must provide a domain!" @@ -1556,7 +1674,8 @@ msgstr "Vérifiez l'erreur {0}" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:148 #, python-brace-format msgid "Could not find server parameters (_ldap._tcp.{0} can't be resolved)" -msgstr "Paramètres du serveur est introuvable (_ldap._tcp. {0} n'est pas résolu)" +msgstr "" +"Paramètres du serveur est introuvable (_ldap._tcp. {0} n'est pas résolu)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:157 msgid "Server check was successful" @@ -1593,7 +1712,9 @@ msgstr "Windows OS de mot de passe aléatoire Manager" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:28 msgid "" "Os Manager to control windows machines, with user password set randomly." -msgstr "Manager d'os à contrôle des machines windows, avec mot de passe utilisateur défini au hasard." +msgstr "" +"Manager d'os à contrôle des machines windows, avec mot de passe utilisateur " +"défini au hasard." #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:33 msgid "Current (template) password of the user account" @@ -1611,13 +1732,17 @@ msgstr "Gestionnaire de base de Windows OS" msgid "" "Os Manager to control windows machines without domain. (Basically renames " "machine)" -msgstr "Os Manager pour contrôler les machines windows sans domaine. (Essentiellement renomme machine)" +msgstr "" +"Os Manager pour contrôler les machines windows sans domaine. " +"(Essentiellement renomme machine)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:67 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max. idle time)" -msgstr "Temps d'inactivité maximal (en secondes) avant la session est automaticatlly fermé à l'utilisateur (< = 0 signifie aucune durée max. d'inactivité)" +msgstr "" +"Temps d'inactivité maximal (en secondes) avant la session est automaticatlly " +"fermé à l'utilisateur (< = 0 signifie aucune durée max. d'inactivité)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:76 msgid "Length must be numeric!!" @@ -1631,64 +1756,103 @@ msgstr "La longueur doit être comprise entre 1 et 6" msgid "UDS Actor for windows machines" msgstr "Acteur UDS pour les machines windows" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "Listes" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#| msgid "User" +msgid "User ID" +msgstr "ID de l'utilisateur" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +#| msgid "Real name attrs" +msgid "Real Name" +msgstr "De son vrai nom" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "Authentificateur" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "Authentificateur d'où à la liste des utilisateurs" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "Liste des utilisateurs" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "Liste des utilisateurs de la plate-forme" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "Statistiques" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "Accès des utilisateurs par date" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "Accès des utilisateurs par jour de semaine" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "Accès des utilisateurs par heure" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "Plage de dates" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "Les utilisateurs accéder le rapport par date" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "Rapport de l'utilisateur d'accéder à la plate-forme par date" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "Date de départ" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "date de début de rapport" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "Date de fin" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "la date pour le rapport de fin" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "Nombre de points" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "Nombre de points de prélèvement utilisées dans les graphiques" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" -msgstr "Utilisation des utilisateurs de l'UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" +msgstr "Accès des utilisateurs à l'UDS" -#: reports/stats/usage.py:44 +#: reports/stats/login.py:345 +msgid "User access to UDS" +msgstr "Accès des utilisateurs à l'UDS" + +#: reports/stats/usage.py:45 msgid "Usage stats" msgstr "Statistiques d'utilisation" -#: reports/stats/usage.py:45 +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "Statistiques d'utilisation de la plate-forme" @@ -1698,9 +1862,10 @@ msgstr "Cluster HyperV lié Clone (expérimental)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -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)" +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:76 @@ -1717,7 +1882,8 @@ msgstr "Nombre de machines désirés de courir d'attente pour un utilisateur." #: services/Vmware_enterprise/VCLinkedCloneService.py:41 #: services/Xen/XenLinkedService.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" +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:100 @@ -1745,9 +1911,10 @@ msgstr "Réseau" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 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" +"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:104 @@ -1771,7 +1938,8 @@ msgstr "Lecteurs de magasin de données" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:101 #: services/HyperV_enterprise/HyperVLinkedService.py:107 msgid "Datastores where to put incrementals & publications" -msgstr "Entrepôts de données où mettre les sauvegardes incrémentielles & 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:110 @@ -1800,7 +1968,8 @@ msgstr "Longueur du nom" #: services/OVirt/OVirtLinkedService.py:162 #: services/Vmware_enterprise/VCLinkedCloneService.py:82 msgid "Size of numeric part for the names of these machines (between 3 and 6)" -msgstr "Taille de la partie numérique pour les noms de ces machines (entre 3 et 6)" +msgstr "" +"Taille de la partie numérique pour les noms de ces machines (entre 3 et 6)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 #: services/HyperV_enterprise/HyperVLinkedService.py:125 @@ -1808,7 +1977,8 @@ msgstr "Taille de la partie numérique pour les noms de ces machines (entre 3 et #: services/Vmware_enterprise/VCLinkedCloneService.py:100 #: services/Xen/XenLinkedService.py:133 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" +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:127 @@ -1829,7 +1999,8 @@ msgstr "Fournisseur de Service de Cluster HyperV" #: services/HyperV_enterprise/HyperVClusterProvider.py:89 #: services/HyperV_enterprise/HyperVProvider.py:83 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)" +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:84 @@ -1871,13 +2042,13 @@ msgstr "Le serveur sélectionné n'est pas un cluster" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "Test de connexion réussie" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "Échec de la connexion. Vérifiez la connexion params" @@ -1935,7 +2106,9 @@ msgstr "Domaine de magasin de données" #: services/OVirt/OVirtLinkedService.py:116 msgid "Datastore domain where to publish and put incrementals" -msgstr "Domaine de magasin de données où les publier et de mettre des sauvegardes incrémentales" +msgstr "" +"Domaine de magasin de données où les publier et de mettre des sauvegardes " +"incrémentales" #: services/OVirt/OVirtLinkedService.py:135 #: services/Xen/XenLinkedService.py:113 @@ -1977,7 +2150,9 @@ msgstr "oVirt serveur IP ou nom d'hôte" #: services/OVirt/OVirtProvider.py:97 msgid "User with valid privileges on oVirt, (use \"user@domain\" form)" -msgstr "Utilisateur avec des privilèges valides sur oVirt, (formulaire « user@domain »)" +msgstr "" +"Utilisateur avec des privilèges valides sur oVirt, (formulaire « user@domain " +"»)" #: services/OVirt/OVirtProvider.py:98 msgid "Password of the user of oVirt" @@ -2026,12 +2201,15 @@ msgstr "Mot de passe de l'utilisateur" #: services/RDS_enterprise/RDSProvider.py:36 msgid "Default password for users in list mapping" -msgstr "Mot de passe par défaut pour les utilisateurs dans la cartographie de la liste" +msgstr "" +"Mot de passe par défaut pour les utilisateurs dans la cartographie de la " +"liste" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" -msgstr "Erreur : Utilisateur {} sur {} hôte est utilisé et ne peut pas être retiré dès maintenant" +msgid "Error: User {} on host {} is being used and cannot be removed right now" +msgstr "" +"Erreur : Utilisateur {} sur {} hôte est utilisé et ne peut pas être retiré " +"dès maintenant" #: services/RDS_enterprise/RDSProvider.py:89 #: services/Sample/SampleProvider.py:178 @@ -2208,7 +2386,9 @@ msgstr "Mot de passe de l'utilisateur de la CV" msgid "" "Range of valid macs for created machines. Must be inside " "00:50:56:00:00:00-00:50:56:3F:FF:FF" -msgstr "Gamme de Mac valide pour machines créées. Doit être à l'intérieur 00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gamme de Mac valide 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:40 msgid "VMWare Virtual Center Provider" @@ -2233,7 +2413,8 @@ msgstr "Base de clone lié VMWare" #: services/Vmware_enterprise/VCLinkedCloneService.py:33 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" +msgstr "" +"Ce service donne accès aux machines de Clones liés sur un Virtual Center" #: services/Vmware_enterprise/VCLinkedCloneService.py:53 msgid "Datacenter" @@ -2317,7 +2498,9 @@ msgstr "Ombre multiplicateur de mémoire (mémoire approuver)" #: services/Xen/XenLinkedService.py:121 msgid "Length of numeric part for the names of this machines (beetwen 3 and 6" -msgstr "Longueur de la partie numérique pour les noms de cette machines (beetwen 3 et 6" +msgstr "" +"Longueur de la partie numérique pour les noms de cette machines (beetwen 3 " +"et 6" #: services/Xen/XenProvider.py:79 msgid "Xenserver Platform Provider" @@ -2347,7 +2530,9 @@ msgstr "Vérifier le certificat" msgid "" "If selected, certificate will be checked against system valid certificate " "providers" -msgstr "Si sélectionné, certificat sera vérifié contre le certificat de système valide fournisseurs" +msgstr "" +"Si sélectionné, certificat sera vérifié contre le certificat de système " +"valide fournisseurs" #: services/Xen/XenProvider.py:394 #, python-brace-format @@ -2590,13 +2775,23 @@ msgstr "Accès complet" msgid "Transport" msgstr "Transport" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "raison de la publication" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "Raison de la publication (peut être vide)" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "Erreur sur demande" #: templates/uds/admin/tmpl/request_failed.html:7 msgid "There was an error requesting data from server, please, try again" -msgstr "Il y avait une erreur en demandant les données depuis le serveur, s'il vous plaît, essaient à nouveau" +msgstr "" +"Il y avait une erreur en demandant les données depuis le serveur, s'il vous " +"plaît, essaient à nouveau" #: templates/uds/admin/tmpl/request_failed.html:9 #: templates/uds/snippets/admin_user.html:8 @@ -2623,7 +2818,8 @@ msgstr "Cela signifie que vous avez restreint l'accès aux éléments assignés. msgid "" "In order to increase your privileges, please contact your local UDS " "administrator." -msgstr "Afin d'augmenter vos privilèges, contactez votre local UDS administrateur." +msgstr "" +"Afin d'augmenter vos privilèges, contactez votre local UDS administrateur." #: templates/uds/admin/tmpl/restricted.html:36 msgid "Thank you." @@ -2666,7 +2862,9 @@ msgstr "Téléchargements" #: templates/uds/downloads.html:11 templates/uds/html5/downloads.html:10 msgid "" "This page contains a list of downloadables provided by different modules" -msgstr "Cette page contient une liste de téléchargeables fournis par différents modules" +msgstr "" +"Cette page contient une liste de téléchargeables fournis par différents " +"modules" #: templates/uds/html5/about.html:13 msgid "You can access UDS Open Source code at" @@ -2679,7 +2877,9 @@ msgstr "UDS a été développé à l'aide de ces composants :" #: templates/uds/html5/about.html:41 msgid "" "If you found that we missed to mention any component, please let us know" -msgstr "Si vous avez trouvé que nous avons manqué de mentionner tout composant, veuillez nous le faire savoir" +msgstr "" +"Si vous avez trouvé que nous avons manqué de mentionner tout composant, " +"veuillez nous le faire savoir" #: templates/uds/html5/about.html:42 #: templates/uds/html5/service_not_ready.html:21 @@ -2698,7 +2898,9 @@ msgstr "Télécharger le Plugin UDS pour" msgid "" "In order to be able to execute UDS services, you need to have UDS plugin " "installed." -msgstr "Afin d'être capable d'exécuter des services de l'UDS, vous devez avoir le plugin de l'UDS installé." +msgstr "" +"Afin d'être capable d'exécuter des services de l'UDS, vous devez avoir le " +"plugin de l'UDS installé." #: templates/uds/html5/download_client.html:14 msgid "Or download another version" @@ -2708,7 +2910,9 @@ msgstr "Ou télécharger une autre version" msgid "" "In case that your platform has been incorrectly detected, you can download " "manually the version required for your Operating System" -msgstr "Dans le cas que votre plate-forme a été incorrectement détecté, vous pouvez télécharger manuellement la version requise par votre système d'exploitation" +msgstr "" +"Dans le cas que votre plate-forme a été incorrectement détecté, vous pouvez " +"télécharger manuellement la version requise par votre système d'exploitation" #: templates/uds/html5/download_client.html:19 msgid "Linux UDS plugin" @@ -2726,7 +2930,9 @@ msgstr "Mac OSX (> 10,5) plugin de l'UDS" msgid "" "If you already have UDS Plugin installed but this message persists to " "appear, you can disable automatic detection here" -msgstr "Si vous avez déjà installé UDS Plugin, mais ce message persiste à apparaissent, vous pouvez désactiver la détection automatique ici" +msgstr "" +"Si vous avez déjà installé UDS Plugin, mais ce message persiste à " +"apparaissent, vous pouvez désactiver la détection automatique ici" #: templates/uds/html5/download_client.html:39 msgid "Automatic plugin detection is enabled" @@ -2740,13 +2946,18 @@ msgstr "Mise en garde : La détection automatique plugin est désactivée" msgid "" "Please, note that disabling automatic detection will not trigger this page " "again in case you don't have the plugin installed." -msgstr "S'il vous plaît, notez que la désactivation de la détection automatique ne déclenchera pas cette page encore une fois dans le cas vous n'avez pas le plugin installé." +msgstr "" +"S'il vous plaît, notez que la désactivation de la détection automatique ne " +"déclenchera pas cette page encore une fois dans le cas vous n'avez pas le " +"plugin installé." #: templates/uds/html5/download_client.html:45 msgid "" "In this case, you will have to manually download the plugin by using the " "menu on upper right corner." -msgstr "Dans ce cas, vous devrez télécharger manuellement le plugin à l'aide de la menu sur le coin supérieur droit." +msgstr "" +"Dans ce cas, vous devrez télécharger manuellement le plugin à l'aide de la " +"menu sur le coin supérieur droit." #: templates/uds/html5/download_client.html:47 msgid "Return" @@ -2850,17 +3061,23 @@ msgstr "Le service n'est pas prêt" msgid "" "The service is not ready at this moment. Please, try it again after a few " "seconds." -msgstr "Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau après quelques secondes." +msgstr "" +"Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau " +"après quelques secondes." #: templates/uds/html5/service_not_ready.html:18 msgid "" "The service you have requested was not ready, and it is being created right " "now. It will be availabe shortly" -msgstr "Le service que vous avez demandé n'était pas prêt, et il est créé juste maintenant. Il sera disponible sous peu" +msgstr "" +"Le service que vous avez demandé n'était pas prêt, et il est créé juste " +"maintenant. Il sera disponible sous peu" #: templates/uds/html5/service_not_ready.html:23 msgid "Please, close this window and relaunch again after a while." -msgstr "S'il vous plaît, fermez cette fenêtre et relancez à nouveau après un certain temps." +msgstr "" +"S'il vous plaît, fermez cette fenêtre et relancez à nouveau après un certain " +"temps." #: templates/uds/html5/simpleLauncher.html:4 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:4 @@ -2889,7 +3106,9 @@ msgstr "Pour relancer le service, vous devrez le faire depuis l'origine." msgid "" "If the service does not launchs automatically, probably you dont have the " "UDS plugin installed" -msgstr "Si le service n'est pas lance automatiquement, vous n'avez probablement pas la UDS plugin installé" +msgstr "" +"Si le service n'est pas lance automatiquement, vous n'avez probablement pas " +"la UDS plugin installé" #: templates/uds/html5/simpleLauncher.html:17 msgid "You can obtain it from the" @@ -2924,13 +3143,18 @@ msgstr "Préférences" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" -msgstr "Votre navigateur est pris en charge que partiellement. S'il vous plaît, mettre à jour à un moderne HTML5 navigateur tel que Firefox, Chrome, Opera... (IE doit être de 10 ou mieux, et devez également désactiver le \"Mode d'affichage de compatibilité\" pour ce site)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" +msgstr "" +"Votre navigateur est pris en charge que partiellement. S'il vous plaît, " +"mettre à jour à un moderne HTML5 navigateur tel que Firefox, Chrome, " +"Opera... (IE doit être de 10 ou mieux, et devez également désactiver le " +"\"Mode d'affichage de compatibilité\" pour ce site)" #: templates/uds/html5/templates/base.html:108 msgid "We use cookies to track usage and preferences" -msgstr "Nous utilisons des cookies pour suivre les préférences et l'utilisation" +msgstr "" +"Nous utilisons des cookies pour suivre les préférences et l'utilisation" #: templates/uds/html5/templates/base.html:109 msgid "I Understand" @@ -2947,7 +3171,9 @@ msgstr "Java non trouvé" #: templates/uds/index.html:71 msgid "" "Java is not available on your browser, and the selected transport needs it." -msgstr "Java n'est pas disponible sur votre navigateur, et le transport sélectionné en a besoin." +msgstr "" +"Java n'est pas disponible sur votre navigateur, et le transport sélectionné " +"en a besoin." #: templates/uds/index.html:72 msgid "Please, install latest version from" @@ -3017,7 +3243,9 @@ msgstr "Serveur de tunnel" msgid "" "Host of the tunnel server (use http/https & port if needed) as accesible " "from users" -msgstr "Accessible l'hôte du serveur tunnel (utiliser le protocole http/https & port si nécessaire) des utilisateurs" +msgstr "" +"Accessible l'hôte du serveur tunnel (utiliser le protocole http/https & port " +"si nécessaire) des utilisateurs" #: transports/HTML5RDP/HTML5RDP.py:69 transports/NX/NXTransport.py:65 #: transports/NX/TSNXTransport.py:72 transports/RDP/BaseRDPTransport.py:61 @@ -3035,7 +3263,9 @@ msgstr "Références vide" #: transports/RGS_enterprise/TRGSTransport.py:52 #: transports/SPICE/BaseSPICETransport.py:67 msgid "If checked, the credentials used to connect will be emtpy" -msgstr "Si coché, les informations d'identification utilisées pour se connecter sera vide" +msgstr "" +"Si coché, les informations d'identification utilisées pour se connecter sera " +"vide" #: transports/HTML5RDP/HTML5RDP.py:70 transports/NX/NXTransport.py:66 #: transports/NX/TSNXTransport.py:73 transports/RDP/BaseRDPTransport.py:62 @@ -3043,7 +3273,9 @@ msgstr "Si coché, les informations d'identification utilisées pour se connecte #: transports/RGS_enterprise/TRGSTransport.py:53 #: transports/SPICE/BaseSPICETransport.py:72 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 titres de compétences" +msgstr "" +"Si ce n'est vide, ce nom d'utilisateur sera toujours utilisé comme des " +"titres de compétences" #: transports/HTML5RDP/HTML5RDP.py:71 transports/NX/NXTransport.py:67 #: transports/NX/TSNXTransport.py:74 transports/RDP/BaseRDPTransport.py:63 @@ -3051,7 +3283,9 @@ msgstr "Si ce n'est vide, ce nom d'utilisateur sera toujours utilisé comme des #: transports/RGS_enterprise/TRGSTransport.py:54 #: transports/SPICE/BaseSPICETransport.py:77 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 compétences" +msgstr "" +"Si ce n'est vide, ce mot de passe sera toujours utilisé comme des titres de " +"compétences" #: transports/HTML5RDP/HTML5RDP.py:72 transports/RDP/BaseRDPTransport.py:64 #: transports/RDS_enterprise/BaseRDSTransport.py:67 @@ -3063,16 +3297,20 @@ msgstr "Sans nom de domaine" msgid "" "If checked, the domain part will always be emptied (to connecto to xrdp for " "example is needed)" -msgstr "Si cochée, la partie domaine sera toujours vidée (à connecto pour xrdp pour exemple est nécessaire)" +msgstr "" +"Si cochée, la partie domaine sera toujours vidée (à connecto pour xrdp pour " +"exemple est nécessaire)" #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 #: transports/RDS_enterprise/BaseRDSTransport.py:68 #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" -msgstr "Si ce n'est vide, ce domaine sera toujours utilisé comme des titres de compétences (utilisé comme domaine\\User)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" +msgstr "" +"Si ce n'est vide, ce domaine sera toujours utilisé comme des titres de " +"compétences (utilisé comme domaine\\User)" #: transports/HTML5RDP/HTML5RDP.py:74 msgid "Enable Audio" @@ -3082,7 +3320,9 @@ msgstr "Activez l'Audio" msgid "" "If checked, the audio will be redirected to client (if client browser " "supports it)" -msgstr "Si coché, le son sera redirigé vers le client (si navigateur client Il prend en charge)" +msgstr "" +"Si coché, le son sera redirigé vers le client (si navigateur client Il prend " +"en charge)" #: transports/HTML5RDP/HTML5RDP.py:75 msgid "Enable Printing" @@ -3092,7 +3332,9 @@ msgstr "Activer l'impression" msgid "" "If checked, the printing will be redirected to client (if client browser " "supports it)" -msgstr "S'il est activé, l'impression sera redirigée vers le client (si navigateur client Il prend en charge)" +msgstr "" +"S'il est activé, l'impression sera redirigée vers le client (si navigateur " +"client Il prend en charge)" #: transports/HTML5RDP/HTML5RDP.py:81 msgid "The server must be http or https" @@ -3155,37 +3397,42 @@ msgid "NX Transport for tunneled connection" msgstr "Transport NX pour connexion tunnelée" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "Serveur de tunnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" "IP or Hostname of tunnel server sent to client device (\"public\" ip) and " "port. (use HOST:PORT format)" -msgstr "Adresse IP ou nom d'hôte du serveur tunnel envoyée au périphérique client (adresse ip « publique ») et port. (utilisez le format de l'hôte : PORT)" +msgstr "" +"Adresse IP ou nom d'hôte du serveur tunnel envoyée au périphérique client " +"(adresse ip « publique ») et port. (utilisez le format de l'hôte : PORT)" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "Tunnel hôte cocher" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" -msgstr "Si ce n'est vide, ce serveur sera utilisé pour vérifier si le service s'exécute avant assignant à l'utilisateur. (utilisez le format de l'hôte : PORT)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" +msgstr "" +"Si ce n'est vide, ce serveur sera utilisé pour vérifier si le service " +"s'exécute avant assignant à l'utilisateur. (utilisez le format de l'hôte : " +"PORT)" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3213,7 +3460,8 @@ msgstr "Permettre aux imprimantes" #: transports/RDP/BaseRDPTransport.py:67 #: transports/RDS_enterprise/BaseRDSTransport.py:70 msgid "If checked, this transport will allow the use of user printers" -msgstr "Si cochée, ce transport permettra l'utilisation des imprimantes utilisateur" +msgstr "" +"Si cochée, ce transport permettra l'utilisation des imprimantes utilisateur" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 @@ -3223,7 +3471,8 @@ msgstr "Permettre aux lecteurs" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 msgid "If checked, this transport will allow the use of user drives" -msgstr "Si cochée, ce transport permettra l'utilisation des lecteurs de l'utilisateur" +msgstr "" +"Si cochée, ce transport permettra l'utilisation des lecteurs de l'utilisateur" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 @@ -3233,39 +3482,38 @@ msgstr "Permettre aux publications en série" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 msgid "If checked, this transport will allow the use of user serial ports" -msgstr "Si cochée, ce transport permettra l'utilisation de l'utilisateur ports série" +msgstr "" +"Si cochée, ce transport permettra l'utilisation de l'utilisateur ports série" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "Voir la papier peint" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" -msgstr "Si coché, le fond d'écran et thèmes seront montrés sur machine (meilleur utilisateur expérience, plus de bande passante)" +msgstr "" +"Si coché, le fond d'écran et thèmes seront montrés sur machine (meilleur " +"utilisateur expérience, plus de bande passante)" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "Plusieurs moniteurs" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" -msgstr "S'il est activé, tous les moniteurs de client seront utilisés pour l'affichage (fonctionne uniquement sur clients Windows)" +msgstr "" +"S'il est activé, tous les moniteurs de client seront utilisés pour " +"l'affichage (fonctionne uniquement sur clients Windows)" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "Permettre Aero" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "S'il est activé, la composition du bureau sera autorisée" @@ -3343,7 +3591,9 @@ msgstr "Qualité réglable min." 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" +msgstr "" +"La qualité d'image le plus bas appliquée aux images de maintenir la mise à " +"jour minimale Ravel" #: transports/RGS_enterprise/RGSTransport.py:54 #: transports/RGS_enterprise/TRGSTransport.py:62 @@ -3353,7 +3603,8 @@ msgstr "Cadence réglable" #: transports/RGS_enterprise/RGSTransport.py:55 #: transports/RGS_enterprise/TRGSTransport.py:63 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" +msgstr "" +"Seuil de taux de mise à jour pour commencer le réglage qualité de l'image" #: transports/RGS_enterprise/RGSTransport.py:56 #: transports/RGS_enterprise/TRGSTransport.py:64 @@ -3365,7 +3616,9 @@ msgstr "Adapter la résolution locale" 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" +msgstr "" +"Changer la résolution de l'expéditeur pour l'adapter résolution du récepteur " +"lorsque connexion" #: transports/RGS_enterprise/RGSTransport.py:58 #: transports/RGS_enterprise/TRGSTransport.py:66 @@ -3407,9 +3660,12 @@ msgstr "RGS Transport pour connexion par tunnel" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." -msgstr "Certificat serveur (public), se trouvent sur votre moteur ovirt, probablement à /etc/PKI/ovirt-Engine/certs/ca.der (utilisez le contenu de ce fichier)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +msgstr "" +"Certificat serveur (public), se trouvent sur votre moteur ovirt, " +"probablement à /etc/PKI/ovirt-Engine/certs/ca.der (utilisez le contenu de ce " +"fichier)." #: transports/SPICE/SPICETransport.py:52 msgid "RHEV/oVirt SPICE Transport (direct)" @@ -3435,11 +3691,14 @@ msgstr "Erreur inconnue" msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" -msgstr "Service non valide. Le service n'est pas disponible en ce moment. SVP, essayez plus tard" +msgstr "" +"Service non valide. Le service n'est pas disponible en ce moment. SVP, " +"essayez plus tard" #: web/errors.py:75 msgid "Maximum services limit reached. Please, contact administrator" -msgstr "Limite de services maximale atteinte. Veuillez contacter administrateur" +msgstr "" +"Limite de services maximale atteinte. Veuillez contacter administrateur" #: web/errors.py:76 msgid "You need to enable cookies to let this application work" @@ -3461,7 +3720,9 @@ msgstr "Requête non valide reçu" msgid "" "Your browser is not supported. Please, upgrade it to a modern HTML5 browser " "like Firefox or Chrome" -msgstr "Votre navigateur n'est pas pris en charge. S'il vous plaît, mettre à niveau vers un navigateur modern de HTML5 comme Firefox ou Chrome" +msgstr "" +"Votre navigateur n'est pas pris en charge. S'il vous plaît, mettre à niveau " +"vers un navigateur modern de HTML5 comme Firefox ou Chrome" #: web/errors.py:82 msgid "The requested service is in maintenance mode" @@ -3471,7 +3732,9 @@ msgstr "Le service demandé est en mode maintenance" msgid "" "The service is not ready.\n" "Please, try again in a few moments." -msgstr "Le service n'est pas prêt.\nVeuillez réessayer dans quelques instants." +msgstr "" +"Le service n'est pas prêt.\n" +"Veuillez réessayer dans quelques instants." #: web/forms/LoginForm.py:54 msgid "Select authenticator" @@ -3491,4 +3754,6 @@ msgstr "Préférences du Plugin UDS" #: web/views/service.py:114 msgid "Service not ready. Please, try again in a while." -msgstr "Service n'est pas prêt. S'il vous plaît, essayez à nouveau dans un certain temps." +msgstr "" +"Service n'est pas prêt. S'il vous plaît, essayez à nouveau dans un certain " +"temps." diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.mo index 47d35409f0467f10c83d9dec916ac679c0daab4f..af7e2205437f281b24395887d8ada59ab6698e4c 100644 GIT binary patch delta 3907 zcmYk;c~DhV0LSqof@~tOspY~GR1A^isi3%&ByK55iYu9gX(}kFC7OA2SA;Zi#WizZ za)D8^X&O_;tVyRat&6v_ujP`EMi7>o_D1J=jR7>r#p3^R~N%@EZ6!%_FoLDf6ox)q<|{1fDU z$6TS%mesOPt%X6i6L zi65h8>Jm1gee(kaJy2tB2%>h4G!Emit34lsx~~YE;WE_7ccMmq2-T4)dwv?3MDqoz z!S7KsaRW88wdiQ1ft*n`QK$;qVjt{;dY~ASunaY#Qy7TnQ8V+6^$KbRui5iEsQPQ{ z^+%|VG@?@Nq3CGVUlldwf=1v$jWEI53;8oSeCUD6sLeJNnJhCGHMQ?qH=sJW1J&?R z>!+xWokz{=Ra8CqqM3h9;XhpP!$7{(UI;<0Z9J-D$*B9f*zbE;N1!@fh#JUJRKqJ# zQ@;td<_EAHR-*^+qBe23!_#_Q5>c;77Iwoa_%!Z9FJ8oF(65OxZP1JQek7`a1*pBU z8M)PbhWwc;e5hl0k=Zx*QSF5=N?mu7Dd@&jWD-mkY7gY0rmPS(6Z26sQHq+0a@2jB zQB%3ko}WN1$yroKE?9p?)&DnoFoIsU)cfzHpbOck3a6tQa;!^Go2(4gk=3aCwjgzx z{ip$)L3Qk!z5bK+k^R0g^Q{ggqeh;I4QSsCrl1Cfp{8gQs-XhZCM!m*X$fj%>rk6< zyLBgO>Gqp{8;;GDuT^J#ZOnq}8Yy`4Kg<4^cDs*cu$`))y7a{Hx*wF6e>o_KT6I9_OPr z%{*+4<*0^Fq8hr0yh-L3s-Z`yA2L6W`wJO^dJR)h?ewAA@^|1m~(N@%6*o`csIfx$o3bo7cpzaH3?apWzs>89UO_*lwi(0}QWN93e z?-tBlR7Itz8Q6u|1J$TC{SNEnub6;$Q8U-LjXSmNQ6uuA2fHJaVRBI&cF;Ev)C}y# zNWK466x853OvPKMx1l8;9?V3o@dQ+bt1tsAF$wRZewyRyRaYE}y1x`V<8f?gezsu)9Y39`@3YSewlQ8RM^HFI}R z9rB~s+AE>faMZw}kV!M0umk2MG5>0~gbV87A=C)Zp(?zF8flI70cxopqaOxRi_Sw( zQyhu9KLOQ&WUPn!5!y=jlTfmPyhD8d|Jy-9M}>>;Q|q*lEG3%ym1I6yM_85rj$xG2 z$a=EGUiF|F-$ObP9dpTUl1DO#2CbuDEgxfucIpALm#ik*m|DXWGJ`xv>JE)`8`1BD zHe?~mAq>`(l0`(vOp-;OCoH+iEKdoGaz;=ZMe2@C6k3s&NnheedXNONfv~1#7SZvM zi+K|#lV`~SqD9y7F4;wvlfh&NX-n#k3GTq$_onXRBnk)Z$#l#mQ^+x*O>l(#|0w6= zFnPsZY-rW1^afc*7L#J49|pYwItGwAnpnNu!^uvfV;!9O9 z7vFypU!eS!J=ZQgO7uF6Bkz-eB$f0dV~Oveee)vGi>hM~i6y;B5;;Vs5r5((I$kAx zd?o&`jr~bidmfChlkOy)v>{u_2jnH9*Q$Wj9ZmyV3bU@k*|uDXkz^>@NV<@zWF*nQ zuR1!qn2FZSINFxuaXiT;Z`*4{*pBpc&)uE>8YlVg1=Gt~Vl|a5!f*RmwupWZ801ay fcvI57-trdBJvvG0mY$MYnb|xyu=4Zx)4~4&TEJGH delta 4002 zcmZA13y@WH0mtz_vdgk8B=RjJ`Tx&7_xzvd z9H?6{EAy8gc@G4Rr%8WuFh7L%aCQ-29La?t48#)bgf-X^r(q%1VmGWq{u<_@*Qe3z zH=y_39DN2qOZ^YX^_lQ4g+81(gZ`nYdk8(S2lm84Sb<})H#Va;xEu3uJ9frh=>PX% zS3H1x!ePF8;jwuBE&L4i|76XC(BYyG`f;K=axM%-2VaR^I2mndMy%JN9h`?uOX8f-b5SxH#!sVqcdB?SH_VRQ{Y?}j^3aOC*if|AJ$_TK8lX$_gH`@ z(3$yX^j&lYPh(%qU%2piGgThRs%pnK*e z(3yA&or#0!OdQ4RrbB1)wOIcLx+G`Nj(igBO)tHF874me6DSPeL}TtmSdQLs7uwMN z=ribMI)rxQ2zuSi$i2g#&;guAJ66QBdcIe*9Q}PV+M#+Zp#9K7!G@Ni4Xi|`Xf4{% zc65_Hfv)NE=*V6`H{-GBE9la_iY~!fbgldGtlE(YXb0-h&3T*p{4b~AyM)&-jCTOKs#_0w{+kIgTtveel9ly>(KjbLK}P-9mqbky`N#GoWcw7#2Fk+ z{Uda9l&~%?O$}fEVGcSoH={RRhEC;bWUyg7j>G5Bk)B0oq+4-rW{06OH!?c5nECgH zS93yVqJOw0)?3jYZ$mfDJ}kwfXv1%#4V^=tsL(gbHB^qi&?=Bg2{q_r*nqZkYjjnT z$&GX~Cv4~t+R$&&5&aF_6X%dNLS9L(!BS+B!Z>7*p$>fv??M}V1QR@r?u9qeP1%u( zOV<@$%AOet{*a&z4~-X8p$*nVQ|RNh3LSA9`dIG4DR>a=P(JH66$hff&&TXiMOUK( zT8G{*(?%houoLab5p<1SL~n2${lnj}Bc4QWcnaMUAD}bvF(%l*G`HKwqt{)B&TKu} z@rCGSY|WVon<%)JkD+UHDEcz`*t~(x#QW%t`V7jg?GWrp{VKc+tI-*}37z64=zvyW zg7+Yk6!xMWK8D%n{}ctM;sbQk;V0+_ z`|+bUEJH^+F*+4ps#?4NuaEUv=oB}h*WZbDz}IaDOcRfJuKxyN@9!d?9$P7R!w1PW zGM(%r>&Z35X>BJJWEWXLW{{_dQ~wz8Mbtt(){))BS)4<@Mi^VjEavM5vV^z?&Ohui zTOe$SCpY7rjNVKb}|-W%83 zh{vEDVH$ohmSs;Ydyj`=xfFj8%iZwXh_a8KPu=v>Wbv@ ziptSr+TOV&$yP>Hj;d(y-G6pLGOZ!ql$xJPFHX`6T5eA@H>b}3e^TAPaNv=`{{rg2 BbyENU diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po index 817a70a3..9e25f056 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Adolfo Gómez , 2012 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:02+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: French (http://www.transifex.com/projects/p/openuds/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/openuds/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -289,7 +290,8 @@ msgstr "Vous devez sélectionner une image" #: static/tmp_js/gui-d-gallery.js:34 msgid "Image is too big (max. upload size is 256Kb)" -msgstr "L'image est trop grande (taille de téléchargement de max. est de 256Kb)" +msgstr "" +"L'image est trop grande (taille de téléchargement de max. est de 256Kb)" #: static/tmp_js/gui-d-gallery.js:80 msgid "Delete Image" @@ -415,123 +417,120 @@ msgstr "Supprimer le fournisseur de services" msgid "Services Provider deletion error" msgstr "Erreur de suppression de fournisseur de services" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "erreur" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "Remove, élément de Cache" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "Erreur de suppression" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "Ajouter groupe" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "Vous devez fournir authentificateur et groupe" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "Supprimer le groupe" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "Erreur de suppression de groupe" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "Oui" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "Non" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "Supprimer le service affecté" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "Ajouter transport" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "Vous devez fournir un transport" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "Supprimer le transport" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "Erreur de suppression de transport" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "Annuler" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "Publier" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "Annuler la publication" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "Force Cancel" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "Lancement nouvelle publication ?" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "Échec de création de publication" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "Retenu" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "Nouvelle piscine service" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "erreur de création" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "Publier sur création" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" msgstr "Si sélectionné, lancera la publication immédiatement après création" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "Edit" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "erreur de sauvegarde" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "Supprimer" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "erreur de suppression" diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.mo b/server/src/uds/locale/it/LC_MESSAGES/django.mo index e91980b34144a5b6868de463d15f7cdfb9f0622b..a09a3afdee33f313f2a946787f6b08fd76fe98f2 100644 GIT binary patch delta 17646 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 I{DS=c2N-{VQUCw| delta 16438 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 F`aeQ)H}?Pl diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.po b/server/src/uds/locale/it/LC_MESSAGES/django.po index c547eec6..46d65e44 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/django.po +++ b/server/src/uds/locale/it/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:30+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Italian (http://www.transifex.com/projects/p/openuds/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/projects/p/openuds/language/" +"it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -41,7 +42,7 @@ msgstr "Autenticatori correnti" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -50,7 +51,7 @@ msgstr "Nome" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -67,8 +68,8 @@ msgstr "Priorità" msgid "Tag" msgstr "Tag" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -116,7 +117,9 @@ msgstr "Rete gamma" msgid "" "Network range. Accepts most network definitions formats (range, subnet, " "host, etc..." -msgstr "Rete gamma. Accetta la maggior parte dei formati di definizioni di rete (gamma, subnet, host, ecc..." +msgstr "" +"Rete gamma. Accetta la maggior parte dei formati di definizioni di rete " +"(gamma, subnet, host, ecc..." #: REST/methods/osmanagers.py:55 msgid "Current OS Managers" @@ -208,104 +211,107 @@ msgstr "Servizi distribuiti" msgid "User services" msgstr "Servizi utente" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "Servizio piscine" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "Servizio padre" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "stato" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "Trasporti spettacoli" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" msgstr "Creare almeno un OS Manager prima di creare un nuovo pool di servizio" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "Creare almeno un servizio prima di creare un nuovo pool di servizio" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "Servizio di base" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "Servizio utilizzato come base di questo servizio piscina" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "OS Manager" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "OS Manager utilizzato come base di questo servizio piscina" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "Immagine associata" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "Immagine assocciated con questo servizio" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "Servizi disponibili iniziali" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "Servizi creati inizialmente per questo servizio piscina" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "Servizi per mantenere nella cache" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" msgstr "Servizi tenuti in cache per assegnazione servizio utente migliorata" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "Servizi per mantenere in cache L2" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" -msgstr "Servizi mantenuto nella cache di level2 per generazione migliore servizio" +msgstr "" +"Servizi mantenuto nella cache di level2 per generazione migliore servizio" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "Numero massimo di servizi per fornire" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" -msgstr "Numero massimo di servizio (assegnate e cache L1) che possono essere creati per Questo servizio" +msgstr "" +"Numero massimo di servizio (assegnate e cache L1) che possono essere creati " +"per Questo servizio" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "Visualizza trasporti" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "Se attivo, verranno mostrati trasporti alternativi per utente" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "Servizio di base non esiste più" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "Questo servizio richiede un OS Manager" @@ -321,7 +327,9 @@ msgstr "Accesso alla rete" msgid "" "If checked, the transport will be enabled for the selected networks.If " "unchecked, transport will be disabled for selected networks" -msgstr "Se selezionata, il trasporto sarà attivato per le reti selezionate.Se incontrollato, trasporto verrà disabilitato per reti selezionate" +msgstr "" +"Se selezionata, il trasporto sarà attivato per le reti selezionate.Se " +"incontrollato, trasporto verrà disabilitato per reti selezionate" #: REST/methods/transports.py:78 templates/uds/html5/index.html:81 #: templates/uds/index.html:79 @@ -332,7 +340,9 @@ msgstr "Reti" msgid "" "Networks associated with this transport. If No network selected, will mean " "\"all networks\"" -msgstr "Reti associate a questo trasporto. Se nessuna rete selezionata, significherà \"tutte le reti\"" +msgstr "" +"Reti associate a questo trasporto. Se nessuna rete selezionata, significherà " +"\"tutte le reti\"" #: REST/methods/user_services.py:80 REST/methods/user_services.py:81 msgid "unknown" @@ -348,7 +358,7 @@ msgid "Creation date" msgstr "Data di creazione" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "Revisione" @@ -394,7 +404,8 @@ msgid "Cached services" msgstr "Servizi memorizzati nella cache" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "Stato" @@ -416,19 +427,23 @@ msgstr "Commenti" msgid "Assigned transports" msgstr "Trasporti assegnati" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "Pubblicazioni" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "Data di pubblicazione" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "Motivo" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "Changelog" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -459,7 +474,8 @@ msgstr "Nome utente" msgid "state" msgstr "stato" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "Ultimo accesso" @@ -499,7 +515,9 @@ msgstr "Commenti per questo elemento" #: REST/model.py:136 msgid "" "Selects the priority of this element (lower number means higher priority)" -msgstr "Seleziona la priorità di questo elemento (numero significa maggiore priorità inferiore)" +msgstr "" +"Seleziona la priorità di questo elemento (numero significa maggiore priorità " +"inferiore)" #: REST/model.py:147 msgid "Tag for this element" @@ -530,18 +548,18 @@ msgid "requested a template that do not exist" msgstr "richiesto da un modello che non esistono" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "Pagina %(page_number)d di %(page_count)d" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "Stampato in %(now:%Y, %b %d)s a s %(now:%H:%M)s" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "Elenco utenti per {}" @@ -568,7 +586,8 @@ msgstr "Utilizzo SSL" #: auths/ActiveDirectory_enterprise/Authenticator.py:36 msgid "If checked, a ssl connection to Active Directory will be used" -msgstr "Se selezionata, verrà utilizzata una connessione ssl per Active Directory" +msgstr "" +"Se selezionata, verrà utilizzata una connessione ssl per Active Directory" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility" @@ -576,7 +595,9 @@ msgstr "Compatibilità" #: auths/ActiveDirectory_enterprise/Authenticator.py:37 msgid "Compatibility of AD connection (Usually windows 2000 and later)" -msgstr "Compatibilità di connessione AD (solitamente windows 2000 e versioni successive)" +msgstr "" +"Compatibilità di connessione AD (solitamente windows 2000 e versioni " +"successive)" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 #: auths/RegexLdap/Authenticator.py:59 auths/SimpleLDAP/Authenticator.py:60 @@ -585,9 +606,11 @@ msgstr "Utente LDAP" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 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)" +"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:40 #: auths/ActiveDirectory_enterprise/Authenticator.py:58 @@ -693,7 +716,8 @@ msgstr "Server non sembra un'Active Directory (non ha alcun utente né gruppi)" #: auths/EDirectory_enterprise/Authenticator.py:360 #: auths/RegexLdap/Authenticator.py:436 auths/SimpleLDAP/Authenticator.py:435 msgid "Connection params seem correct, test was succesfully executed" -msgstr "Connessione params sembrano corretti, prova era stata correttamente eseguita" +msgstr "" +"Connessione params sembrano corretti, prova era stata correttamente eseguita" #: auths/EDirectory_enterprise/Authenticator.py:62 msgid "EDirectory Server IP or Hostname" @@ -715,7 +739,8 @@ msgstr "Porta LDAP (solitamente 389 per non ssl) e 636 per ssl" #: auths/EDirectory_enterprise/Authenticator.py:64 #: auths/RegexLdap/Authenticator.py:58 auths/SimpleLDAP/Authenticator.py:59 msgid "If checked, the connection will be ssl, using port 636 instead of 389" -msgstr "Se selezionata, la connessione sarà ssl, usando la porta 636 anziché 389" +msgstr "" +"Se selezionata, la connessione sarà ssl, usando la porta 636 anziché 389" #: auths/EDirectory_enterprise/Authenticator.py:65 msgid "Admin user" @@ -751,14 +776,17 @@ msgstr "Base di ricerca LDAP non è corretto" #: auths/EDirectory_enterprise/Authenticator.py:330 #: auths/RegexLdap/Authenticator.py:402 auths/SimpleLDAP/Authenticator.py:382 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)" +msgstr "" +"Classe utente LDAP sembra essere errata (nessun utente trovato di classe)" #: auths/EDirectory_enterprise/Authenticator.py:338 #: auths/SimpleLDAP/Authenticator.py:398 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)" +msgstr "" +"Attributo id di utente LDAP sembra essere errata (nessun utente trovato di " +"che attributo)" #: auths/EDirectory_enterprise/Authenticator.py:346 msgid "Expected group attribute " @@ -767,7 +795,9 @@ msgstr "Attributo di gruppo previsto " #: auths/EDirectory_enterprise/Authenticator.py:355 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?)" +msgstr "" +"LDAP dell'utente utente o classe id attr è probabilmente sbagliato (Ldap è " +"un eDirectory?)" #: auths/IP/Authenticator.py:52 msgid "Accept proxy" @@ -775,9 +805,12 @@ msgstr "Accettare il proxy" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" -msgstr "Se selezionata, le richieste tramite proxy otterrà inoltrato l'indirizzo ip (Prenditi cura con Questo bein controllato, può prendere gli indirizzi IP interni da internet)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" +msgstr "" +"Se selezionata, le richieste tramite proxy otterrà inoltrato l'indirizzo ip " +"(Prenditi cura con Questo bein controllato, può prendere gli indirizzi IP " +"interni da internet)" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 msgid "IP Authenticator" @@ -860,9 +893,9 @@ msgid "User Name Attr" msgstr "Utente nome Attr" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" -msgstr "Attributi che contiene il nome utente (elenco di valori separati da virgola)" +msgid "Attributes that contains the user name (list of comma separated values)" +msgstr "" +"Attributi che contiene il nome utente (elenco di valori separati da virgola)" #: auths/RegexLdap/Authenticator.py:66 msgid "Group Name Attr" @@ -884,13 +917,17 @@ msgstr "Autenticatore di LDAP di espressioni regolari" msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" -msgstr "Attr di id utente LDAP è probabilmente sbagliato (non è possibile trovare qualsiasi utente con entrambi condizioni)" +msgstr "" +"Attr di id utente LDAP è probabilmente sbagliato (non è possibile trovare " +"qualsiasi utente con entrambi condizioni)" #: auths/RegexLdap/Authenticator.py:425 auths/SimpleLDAP/Authenticator.py:406 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -msgstr "Attributo id di gruppo LDAP sembra essere errata (nessun gruppo trovato di che attributo)" +msgstr "" +"Attributo id di gruppo LDAP sembra essere errata (nessun gruppo trovato di " +"che attributo)" #: auths/SAML_enterprise/SAML.py:81 msgid "SAML Authenticator" @@ -912,7 +949,9 @@ msgstr "Chiave privata" msgid "" "Private key used for sign and encription, as generated in base 64 from " "openssl" -msgstr "Chiave privata utilizzata per segno ed encription, come generato in base 64 da OpenSSL" +msgstr "" +"Chiave privata utilizzata per segno ed encription, come generato in base 64 " +"da OpenSSL" #: auths/SAML_enterprise/SAML.py:123 transports/SPICE/BaseSPICETransport.py:83 msgid "Certificate" @@ -929,16 +968,18 @@ msgstr "Metadati IDP" #: auths/SAML_enterprise/SAML.py:126 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)" +msgstr "" +"Qui è possibile immettere l'URL o i metadati IDP o i metadati stesso (xml)" #: auths/SAML_enterprise/SAML.py:128 msgid "Entity ID" msgstr "ID entità" #: auths/SAML_enterprise/SAML.py:129 -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" +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:131 msgid "User name attrs" @@ -966,9 +1007,11 @@ msgstr "Campi da dove estrarre il vero nome" #: auths/SAML_enterprise/SAML.py:161 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---)" +"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:166 msgid "Invalid server certificate. " @@ -978,7 +1021,9 @@ msgstr "Certificato del server non valido. " 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-" +msgstr "" +"Chiave privata deve essere un valido PEM (PEM chiavi private inizia con----" +"BEGIN CHIAVE PRIVATA RSA-" #: auths/SAML_enterprise/SAML.py:198 #, python-brace-format @@ -1065,23 +1110,30 @@ msgstr "Semplice autenticatore LDAP" #: auths/SimpleLDAP/Authenticator.py:390 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)" +msgstr "" +"Classe gruppo LDAP sembra essere errata (nessun gruppo trovato di classe)" #: auths/SimpleLDAP/Authenticator.py:415 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -msgstr "LDAP dell'utente utente o classe id attr è probabilmente sbagliato (non è possibile trovare qualsiasi utente con entrambe le condizioni)" +msgstr "" +"LDAP dell'utente utente o classe id attr è probabilmente sbagliato (non è " +"possibile trovare qualsiasi utente con entrambe le condizioni)" #: auths/SimpleLDAP/Authenticator.py:424 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -msgstr "LDAP gruppo classe o gruppo id attr è probabilmente sbagliato (non è possibile trovare qualsiasi gruppo con entrambe le condizioni)" +msgstr "" +"LDAP gruppo classe o gruppo id attr è probabilmente sbagliato (non è " +"possibile trovare qualsiasi gruppo con entrambe le condizioni)" #: auths/SimpleLDAP/Authenticator.py:431 msgid "Can't locate any group with the membership attribute specified" -msgstr "Non è possibile individuare qualsiasi gruppo con specificato l'attributo di appartenenza" +msgstr "" +"Non è possibile individuare qualsiasi gruppo con specificato l'attributo di " +"appartenenza" #: core/BaseModule.py:200 msgid "No connection checking method is implemented." @@ -1105,7 +1157,8 @@ msgstr "Nome gruppo" #: core/auths/BaseAuthenticator.py:540 msgid "Users can't be created inside this authenticator" -msgstr "Gli utenti non possono essere creati all'interno di questo autenticatore" +msgstr "" +"Gli utenti non possono essere creati all'interno di questo autenticatore" #: core/auths/auth.py:89 msgid "System Administrator" @@ -1118,23 +1171,29 @@ msgstr "Vietato" #: core/managers/PublicationManager.py:202 msgid "" "Already publishing. Wait for previous publication to finish and try again" -msgstr "Già pubblicando. Attendere la pubblicazione precedente finire e riprovare" +msgstr "" +"Già pubblicando. Attendere la pubblicazione precedente finire e riprovare" #: core/managers/PublicationManager.py:205 msgid "Service is in maintenance mode and new publications are not allowed" -msgstr "Il servizio è in modalità di manutenzione e nuove pubblicazioni non sono ammessi" +msgstr "" +"Il servizio è in modalità di manutenzione e nuove pubblicazioni non sono " +"ammessi" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "Non è possibile annullare la pubblicazione non in esecuzione" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" -msgstr "Non è possibile annullare la pubblicazione pubblicazione non utilizzabile" +msgstr "" +"Non è possibile annullare la pubblicazione pubblicazione non utilizzabile" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" -msgstr "Non è possibile annullare la pubblicazione di pubblicazioni con servizi nel processo di" +msgstr "" +"Non è possibile annullare la pubblicazione di pubblicazioni con servizi nel " +"processo di" #: core/managers/UserPrefsManager.py:285 msgid "Screen Size" @@ -1201,6 +1260,10 @@ msgstr "Report di base" msgid "Base report" msgstr "Report di base" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "Generato da UDS" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "Servizio di base" @@ -1327,9 +1390,11 @@ msgstr "{0} contiene caratteri non validi" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" -msgstr "Intervallo valido mac. Gamma Mac deve essere nel formato XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:CAUSA" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" +msgstr "" +"Intervallo valido mac. Gamma Mac deve essere nel formato XX:XX:XX:XX:XX:XX-" +"XX:XX:XX:XX:CAUSA" #: dispatchers/wyse_enterprise/views.py:112 msgid "There are no authenticators available for login" @@ -1382,7 +1447,9 @@ msgstr "Trasporto non trovato" #: dispatchers/wyse_enterprise/views.py:289 #: 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." +msgstr "" +"Servizio non pronta in questo momento. Per favore, provare nuovamente in un " +"istante." #: models/Permissions.py:80 msgid "Read" @@ -1404,7 +1471,9 @@ msgstr "Linux OS Manager" msgid "" "Os Manager to control linux virtual machines (basically renames machine and " "notify state)" -msgstr "OS Manager per controllare le macchine virtuali linux (fondamentalmente Rinomina la macchina e notifica allo stato)" +msgstr "" +"OS Manager per controllare le macchine virtuali linux (fondamentalmente " +"Rinomina la macchina e notifica allo stato)" #: osmanagers/LinuxOsManager/LinuxOsManager.py:59 #: osmanagers/WindowsOsManager/WindowsOsManager.py:50 @@ -1435,7 +1504,9 @@ msgstr "Max.Idle tempo" msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max idle time)." -msgstr "Tempo massimo di inattività (in secondi) prima sessione è automaticatlly chiuso a l'utente (< = 0 significa nessun tempo di inattività massimo)." +msgstr "" +"Tempo massimo di inattività (in secondi) prima sessione è automaticatlly " +"chiuso a l'utente (< = 0 significa nessun tempo di inattività massimo)." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:47 msgid "Linux Random Password OS Manager" @@ -1443,7 +1514,9 @@ msgstr "Linux casuale Password Manager di OS" #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:49 msgid "Os Manager to control linux machines, with user password set randomly." -msgstr "OS Manager per controllo macchine linux con password utente è impostato in modo casuale." +msgstr "" +"OS Manager per controllo macchine linux con password utente è impostato in " +"modo casuale." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:53 #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 @@ -1463,29 +1536,48 @@ msgstr "Deve fornire un account di utente!!!" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " -"2.7)" -msgstr "UDS attore per Debian, Ubuntu,... Linux macchine (richiede python 2.7)" +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" +msgstr "" +"UDS attore per Debian, Ubuntu,... Linux macchine (richiede python 2.7)" #: osmanagers/LinuxOsManager/__init__.py:54 msgid "" "UDS Actor for Centos, Fedora, RH, ... Linux machines (Requires python " "2.7)" -msgstr "UDS attore per Centos, Fedora, RH,... (Requires python macchine Linux 2.7)" +msgstr "" +"UDS attore per Centos, Fedora, RH,... (Requires python macchine Linux " +"2.7)" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" -msgstr "UDS attore per openSUSE,... Linux macchine (richiede python 2.7)" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" +msgstr "" +"UDS attore per openSUSE,... Linux macchine (richiede python 2.7)" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "RDS OS Manager" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" msgstr "OS Manager al controllo RDS fornito servizi" +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "Max. tempo di sessione" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" +"Durata massima in ore per una sessione (0 non indica nessun limite). Dopo " +"questo periodo, sessione verrà rilasciato." + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "" +"Attore di UDS RDS (per le applicazioni in remoti su Windows Server 2012)" + #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" msgstr "Gestore del dominio di Windows OS" @@ -1494,7 +1586,9 @@ msgstr "Gestore del dominio di Windows OS" msgid "" "Os Manager to control windows machines with domain. (Basically renames " "machine)" -msgstr "OS Manager per controllare macchine windows con dominio. (Fondamentalmente Rinomina macchina)" +msgstr "" +"OS Manager per controllare macchine windows con dominio. (Fondamentalmente " +"Rinomina macchina)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 @@ -1506,7 +1600,9 @@ msgstr "Dominio" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 msgid "Domain to join machines to (use FQDN form, Netbios name not allowed)" -msgstr "Dominio di aderire macchine per (utilizzare modulo FQDN, Netbios nome non consentito)" +msgstr "" +"Dominio di aderire macchine per (utilizzare modulo FQDN, Netbios nome non " +"consentito)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 msgid "Account with rights to add machines to domain" @@ -1524,7 +1620,9 @@ msgstr "OU" msgid "" "Organizational unit where to add machines in domain (check it before using " "it). i.e.: ou=My Machines,dc=mydomain,dc=local" -msgstr "Unità organizzativa dove aggiungere macchine nel dominio (verificare prima di utilizzare esso). cioè: ou = My macchine, dc = miodominio, dc = local" +msgstr "" +"Unità organizzativa dove aggiungere macchine nel dominio (verificare prima " +"di utilizzare esso). cioè: ou = My macchine, dc = miodominio, dc = local" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:46 msgid "Must provide a domain!" @@ -1555,7 +1653,9 @@ msgstr "Verifica Errore: {0}" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:148 #, python-brace-format msgid "Could not find server parameters (_ldap._tcp.{0} can't be resolved)" -msgstr "Non riusciva a trovare i parametri del server ( TCP. {0} non può essere risolto)" +msgstr "" +"Non riusciva a trovare i parametri del server ( TCP. {0} non può essere " +"risolto)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:157 msgid "Server check was successful" @@ -1592,7 +1692,9 @@ msgstr "Windows casuale Password Manager di OS" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:28 msgid "" "Os Manager to control windows machines, with user password set randomly." -msgstr "OS Manager alle macchine di controllo windows, con password utente è impostato in modo casuale." +msgstr "" +"OS Manager alle macchine di controllo windows, con password utente è " +"impostato in modo casuale." #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:33 msgid "Current (template) password of the user account" @@ -1610,13 +1712,17 @@ msgstr "Windows base OS Manager" msgid "" "Os Manager to control windows machines without domain. (Basically renames " "machine)" -msgstr "OS Manager per controllare macchine windows senza dominio. (Fondamentalmente Rinomina macchina)" +msgstr "" +"OS Manager per controllare macchine windows senza dominio. (Fondamentalmente " +"Rinomina macchina)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:67 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max. idle time)" -msgstr "Tempo massimo di inattività (in secondi) prima sessione è automaticatlly chiuso a l'utente (< = 0 significa nessun tempo di inattività massimo)" +msgstr "" +"Tempo massimo di inattività (in secondi) prima sessione è automaticatlly " +"chiuso a l'utente (< = 0 significa nessun tempo di inattività massimo)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:76 msgid "Length must be numeric!!" @@ -1630,64 +1736,103 @@ msgstr "Lunghezza deve essere compresa tra 1 e 6" msgid "UDS Actor for windows machines" msgstr "UDS attore per macchine windows" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "Elenchi" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#| msgid "User" +msgid "User ID" +msgstr "ID utente" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +#| msgid "Real name attrs" +msgid "Real Name" +msgstr "Vero nome" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "Autenticatore" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "Autenticatore da dove agli utenti elenco" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "Elenco utenti" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "Elenco utenti della piattaforma" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "Statistiche" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "Agli utenti l'accesso per data" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "Agli utenti l'accesso di giorno della settimana" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "Agli utenti di accedere da ore" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "Intervallo di date" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "Gli utenti accedere ai report di data" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "Relazione dell'utente l'accesso alla piattaforma di data" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "Data di partenza" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "Data di partenza per report" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "Data di fine" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "Data per la relazione di fine" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "Numero di punti" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "Numero di punti di campionamento utilizzato nelle classifiche" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" -msgstr "Utilizzo di utenti di UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" +msgstr "Accesso utenti a UDS" -#: reports/stats/usage.py:44 +#: reports/stats/login.py:345 +msgid "User access to UDS" +msgstr "Accesso utente a UDS" + +#: reports/stats/usage.py:45 msgid "Usage stats" msgstr "Statistiche di utilizzo" -#: reports/stats/usage.py:45 +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "Statistiche di utilizzo della piattaforma" @@ -1697,8 +1842,7 @@ msgstr "HyperV Cluster collegati Clone (sperimentale)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -msgid "" -"Hyper Services based on templates and differential disks (experimental)" +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 @@ -1708,7 +1852,8 @@ msgstr "Iper servizi basati su modelli e differenziale dischi (sperimentale)" #: services/Vmware_enterprise/VCLinkedCloneService.py:39 #: services/Xen/XenLinkedService.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" +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:82 @@ -1744,9 +1889,10 @@ msgstr "Rete" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 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" +"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:104 @@ -1799,7 +1945,8 @@ msgstr "Lunghezza del nome" #: services/OVirt/OVirtLinkedService.py:162 #: services/Vmware_enterprise/VCLinkedCloneService.py:82 msgid "Size of numeric part for the names of these machines (between 3 and 6)" -msgstr "Dimensione della parte numerica per i nomi di queste macchine (tra 3 e 6)" +msgstr "" +"Dimensione della parte numerica per i nomi di queste macchine (tra 3 e 6)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:116 #: services/HyperV_enterprise/HyperVLinkedService.py:125 @@ -1828,7 +1975,9 @@ msgstr "HyperV Cluster Service Provider" #: services/HyperV_enterprise/HyperVClusterProvider.py:89 #: services/HyperV_enterprise/HyperVProvider.py:83 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)" +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:84 @@ -1870,13 +2019,13 @@ msgstr "Il server selezionato non è un cluster" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "Test di connessione riuscita" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "Connessione non riuscita. Controllare la connessione params" @@ -1976,7 +2125,8 @@ msgstr "oVirt Server IP o l'Hostname" #: services/OVirt/OVirtProvider.py:97 msgid "User with valid privileges on oVirt, (use \"user@domain\" form)" -msgstr "Utente con privilegi validi su oVirt, (uso la forma dei \"user@domain\")" +msgstr "" +"Utente con privilegi validi su oVirt, (uso la forma dei \"user@domain\")" #: services/OVirt/OVirtProvider.py:98 msgid "Password of the user of oVirt" @@ -2028,9 +2178,9 @@ msgid "Default password for users in list mapping" msgstr "Password predefinita per gli utenti in mappatura lista" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" -msgstr "Errore: Utente {} su {} host viene utilizzato e non può essere rimosso subito" +msgid "Error: User {} on host {} is being used and cannot be removed right now" +msgstr "" +"Errore: Utente {} su {} host viene utilizzato e non può essere rimosso subito" #: services/RDS_enterprise/RDSProvider.py:89 #: services/Sample/SampleProvider.py:178 @@ -2207,7 +2357,9 @@ msgstr "Password dell'utente di VC" msgid "" "Range of valid macs for created machines. Must be inside " "00:50:56:00:00:00-00:50:56:3F:FF:FF" -msgstr "Gamma di Mac valido per macchine creati. Deve essere all'interno 00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gamma di Mac valido per macchine creati. Deve essere all'interno " +"00:50:56:00:00:00-00:50:56:3F:FF:FF" #: services/Vmware_enterprise/ServiceProviderVC.py:40 msgid "VMWare Virtual Center Provider" @@ -2232,7 +2384,9 @@ msgstr "Base di clone collegato VMWare" #: services/Vmware_enterprise/VCLinkedCloneService.py:33 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" +msgstr "" +"Questo servizio fornisce l'accesso alle macchine collegate cloni su un " +"Virtual Center" #: services/Vmware_enterprise/VCLinkedCloneService.py:53 msgid "Datacenter" @@ -2316,7 +2470,8 @@ msgstr "Ombra moltiplicatore di memoria (memory overcommit)" #: services/Xen/XenLinkedService.py:121 msgid "Length of numeric part for the names of this machines (beetwen 3 and 6" -msgstr "Lunghezza della parte numerica per i nomi di questa macchine (tra 3 e 6" +msgstr "" +"Lunghezza della parte numerica per i nomi di questa macchine (tra 3 e 6" #: services/Xen/XenProvider.py:79 msgid "Xenserver Platform Provider" @@ -2346,7 +2501,9 @@ msgstr "Verificare il certificato" msgid "" "If selected, certificate will be checked against system valid certificate " "providers" -msgstr "Se selezionato, certificato verrà controllato contro certificato valido sistema fornitori" +msgstr "" +"Se selezionato, certificato verrà controllato contro certificato valido " +"sistema fornitori" #: services/Xen/XenProvider.py:394 #, python-brace-format @@ -2522,7 +2679,9 @@ msgstr "Selezionare l'immagine da caricare" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:10 msgid "Name of the image. If left empty, will get the filename as name" -msgstr "Nome dell'immagine. Se lasciato vuoto, sarà possibile ottenere il nome del file come nome" +msgstr "" +"Nome dell'immagine. Se lasciato vuoto, sarà possibile ottenere il nome del " +"file come nome" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:7 @@ -2589,6 +2748,14 @@ msgstr "Accesso completo" msgid "Transport" msgstr "Trasporto" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "motivo della pubblicazione" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "Motivo per la pubblicazione (può essere vuoto)" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "Errore su richiesta" @@ -2622,7 +2789,9 @@ msgstr "Questo significa che hanno limitato l'accesso agli elementi assegnati." msgid "" "In order to increase your privileges, please contact your local UDS " "administrator." -msgstr "Al fine di aumentare i privilegi, si prega di contattare il vostro locale UDS amministratore." +msgstr "" +"Al fine di aumentare i privilegi, si prega di contattare il vostro locale " +"UDS amministratore." #: templates/uds/admin/tmpl/restricted.html:36 msgid "Thank you." @@ -2665,7 +2834,8 @@ msgstr "Download" #: templates/uds/downloads.html:11 templates/uds/html5/downloads.html:10 msgid "" "This page contains a list of downloadables provided by different modules" -msgstr "Questa pagina contiene un elenco di scaricabili forniti da diversi moduli" +msgstr "" +"Questa pagina contiene un elenco di scaricabili forniti da diversi moduli" #: templates/uds/html5/about.html:13 msgid "You can access UDS Open Source code at" @@ -2678,7 +2848,9 @@ msgstr "UDS è stato sviluppato utilizzando questi componenti:" #: templates/uds/html5/about.html:41 msgid "" "If you found that we missed to mention any component, please let us know" -msgstr "Se hai trovato che ci è sfuggito di citare qualsiasi componente, fatecelo sapere" +msgstr "" +"Se hai trovato che ci è sfuggito di citare qualsiasi componente, fatecelo " +"sapere" #: templates/uds/html5/about.html:42 #: templates/uds/html5/service_not_ready.html:21 @@ -2697,7 +2869,8 @@ msgstr "Scarica UDS Plugin per" msgid "" "In order to be able to execute UDS services, you need to have UDS plugin " "installed." -msgstr "Per poter eseguire servizi di UDS, devi avere il plugin UDS installati." +msgstr "" +"Per poter eseguire servizi di UDS, devi avere il plugin UDS installati." #: templates/uds/html5/download_client.html:14 msgid "Or download another version" @@ -2707,7 +2880,9 @@ msgstr "O scaricare un'altra versione" msgid "" "In case that your platform has been incorrectly detected, you can download " "manually the version required for your Operating System" -msgstr "Nel caso che la piattaforma è stata rilevata in modo errato, è possibile scaricare manualmente la versione necessaria per il sistema operativo" +msgstr "" +"Nel caso che la piattaforma è stata rilevata in modo errato, è possibile " +"scaricare manualmente la versione necessaria per il sistema operativo" #: templates/uds/html5/download_client.html:19 msgid "Linux UDS plugin" @@ -2725,7 +2900,9 @@ msgstr "Mac OSX (> 10.5) UDS plugin" msgid "" "If you already have UDS Plugin installed but this message persists to " "appear, you can disable automatic detection here" -msgstr "Se avete già installato UDS Plugin ma questo messaggio persiste a apparire, è possibile disattivare il rilevamento automatico qui" +msgstr "" +"Se avete già installato UDS Plugin ma questo messaggio persiste a apparire, " +"è possibile disattivare il rilevamento automatico qui" #: templates/uds/html5/download_client.html:39 msgid "Automatic plugin detection is enabled" @@ -2739,13 +2916,17 @@ msgstr "Attenzione: Rilevamento plugin automatico è disabilitato" msgid "" "Please, note that disabling automatic detection will not trigger this page " "again in case you don't have the plugin installed." -msgstr "Si prega di notare che disabilitando il rilevamento automatico non attiveranno questa pagina ancora nel caso non hai installato il plugin." +msgstr "" +"Si prega di notare che disabilitando il rilevamento automatico non " +"attiveranno questa pagina ancora nel caso non hai installato il plugin." #: templates/uds/html5/download_client.html:45 msgid "" "In this case, you will have to manually download the plugin by using the " "menu on upper right corner." -msgstr "In questo caso, si dovrà scaricare manualmente il plugin utilizzando il menu in alto a destra." +msgstr "" +"In questo caso, si dovrà scaricare manualmente il plugin utilizzando il menu " +"in alto a destra." #: templates/uds/html5/download_client.html:47 msgid "Return" @@ -2849,17 +3030,22 @@ msgstr "Il servizio non è pronto" msgid "" "The service is not ready at this moment. Please, try it again after a few " "seconds." -msgstr "Il servizio non è pronto in questo momento. Per favore, provare nuovamente dopo pochi secondi." +msgstr "" +"Il servizio non è pronto in questo momento. Per favore, provare nuovamente " +"dopo pochi secondi." #: templates/uds/html5/service_not_ready.html:18 msgid "" "The service you have requested was not ready, and it is being created right " "now. It will be availabe shortly" -msgstr "Il servizio che hai richiesto non era pronto, e si è creato giusto ora. Si renderanno presto disponibili" +msgstr "" +"Il servizio che hai richiesto non era pronto, e si è creato giusto ora. Si " +"renderanno presto disponibili" #: templates/uds/html5/service_not_ready.html:23 msgid "Please, close this window and relaunch again after a while." -msgstr "Per favore, chiudere questa finestra e rilanciare nuovamente dopo un po'." +msgstr "" +"Per favore, chiudere questa finestra e rilanciare nuovamente dopo un po'." #: templates/uds/html5/simpleLauncher.html:4 #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:4 @@ -2888,7 +3074,9 @@ msgstr "Per rilanciare il servizio, devi farlo da origine." msgid "" "If the service does not launchs automatically, probably you dont have the " "UDS plugin installed" -msgstr "Se il servizio fa non launchs automaticamente, probabilmente non hai il UDS plugin installati" +msgstr "" +"Se il servizio fa non launchs automaticamente, probabilmente non hai il UDS " +"plugin installati" #: templates/uds/html5/simpleLauncher.html:17 msgid "You can obtain it from the" @@ -2901,7 +3089,8 @@ msgstr "Pagina di download del Plugin UDS" #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:12 msgid "Close this window and try to relaunch service from origin." -msgstr "Chiudere questa finestra e provare a rilanciare il servizio dall'origine." +msgstr "" +"Chiudere questa finestra e provare a rilanciare il servizio dall'origine." #: templates/uds/html5/simpleLauncherAlreadyLaunched.html:14 msgid "You can obtain required UDS plugin from the" @@ -2923,9 +3112,13 @@ msgstr "Preferenze" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" -msgstr "Il tuo browser è supportato solo parzialmente. Per favore, eseguire l'aggiornamento a un moderno HTML5 browser come Firefox, Chrome, Opera,... (IE deve essere 10 o migliore, e necessario disattivare anche la \"Modalità visualizzazione compatibilità\" per questo sito)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" +msgstr "" +"Il tuo browser è supportato solo parzialmente. Per favore, eseguire " +"l'aggiornamento a un moderno HTML5 browser come Firefox, Chrome, Opera,... " +"(IE deve essere 10 o migliore, e necessario disattivare anche la \"Modalità " +"visualizzazione compatibilità\" per questo sito)" #: templates/uds/html5/templates/base.html:108 msgid "We use cookies to track usage and preferences" @@ -2946,7 +3139,9 @@ msgstr "Java non trovato" #: templates/uds/index.html:71 msgid "" "Java is not available on your browser, and the selected transport needs it." -msgstr "Java non è disponibile sul vostro browser, e il trasporto selezionato di cui ha bisogno." +msgstr "" +"Java non è disponibile sul vostro browser, e il trasporto selezionato di cui " +"ha bisogno." #: templates/uds/index.html:72 msgid "Please, install latest version from" @@ -3016,7 +3211,9 @@ msgstr "Server di tunnel" msgid "" "Host of the tunnel server (use http/https & port if needed) as accesible " "from users" -msgstr "Hosting di server di tunnel (USA http/https & porta se necessario) come accessibile da parte degli utenti" +msgstr "" +"Hosting di server di tunnel (USA http/https & porta se necessario) come " +"accessibile da parte degli utenti" #: transports/HTML5RDP/HTML5RDP.py:69 transports/NX/NXTransport.py:65 #: transports/NX/TSNXTransport.py:72 transports/RDP/BaseRDPTransport.py:61 @@ -3042,7 +3239,8 @@ msgstr "Se selezionata, le credenziali utilizzate per connettersi sarà emtpy" #: transports/RGS_enterprise/TRGSTransport.py:53 #: transports/SPICE/BaseSPICETransport.py:72 msgid "If not empty, this username will be always used as credential" -msgstr "Se non vuota, questo nome utente verrà sempre utilizzato come credenziale" +msgstr "" +"Se non vuota, questo nome utente verrà sempre utilizzato come credenziale" #: transports/HTML5RDP/HTML5RDP.py:71 transports/NX/NXTransport.py:67 #: transports/NX/TSNXTransport.py:74 transports/RDP/BaseRDPTransport.py:63 @@ -3062,16 +3260,20 @@ msgstr "Senza dominio" msgid "" "If checked, the domain part will always be emptied (to connecto to xrdp for " "example is needed)" -msgstr "Se selezionata, la parte di dominio sarà sempre essere svuotata (a connecto a xrdp per esempio è necessaria)" +msgstr "" +"Se selezionata, la parte di dominio sarà sempre essere svuotata (a connecto " +"a xrdp per esempio è necessaria)" #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 #: transports/RDS_enterprise/BaseRDSTransport.py:68 #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" -msgstr "Se non vuota, questo dominio verrà sempre utilizzato come credenziale (usato come dominio\\User)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" +msgstr "" +"Se non vuota, questo dominio verrà sempre utilizzato come credenziale (usato " +"come dominio\\User)" #: transports/HTML5RDP/HTML5RDP.py:74 msgid "Enable Audio" @@ -3081,7 +3283,9 @@ msgstr "Abilitare Audio" msgid "" "If checked, the audio will be redirected to client (if client browser " "supports it)" -msgstr "Se selezionata, l'audio verrà reindirizzato al client (se browser client lo supporta)" +msgstr "" +"Se selezionata, l'audio verrà reindirizzato al client (se browser client lo " +"supporta)" #: transports/HTML5RDP/HTML5RDP.py:75 msgid "Enable Printing" @@ -3091,7 +3295,9 @@ msgstr "Attivare la stampa" msgid "" "If checked, the printing will be redirected to client (if client browser " "supports it)" -msgstr "Se selezionata, la stampa verrà reindirizzata al client (se browser client lo supporta)" +msgstr "" +"Se selezionata, la stampa verrà reindirizzata al client (se browser client " +"lo supporta)" #: transports/HTML5RDP/HTML5RDP.py:81 msgid "The server must be http or https" @@ -3154,37 +3360,42 @@ msgid "NX Transport for tunneled connection" msgstr "Trasporto di NX per connessione con tunnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "Server per il tunnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" "IP or Hostname of tunnel server sent to client device (\"public\" ip) and " "port. (use HOST:PORT format)" -msgstr "IP o l'Hostname del server di tunnel inviato a un dispositivo client (ip \"pubblico\") e porto. (utilizzare il formato HOST: PORT)" +msgstr "" +"IP o l'Hostname del server di tunnel inviato a un dispositivo client (ip " +"\"pubblico\") e porto. (utilizzare il formato HOST: PORT)" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "Controllo host tunnel" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" -msgstr "Se non vuota, questo server verrà utilizzato per verificare se il servizio è in esecuzione prima di assegnandolo all'utente. (utilizzare il formato HOST: PORT)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" +msgstr "" +"Se non vuota, questo server verrà utilizzato per verificare se il servizio è " +"in esecuzione prima di assegnandolo all'utente. (utilizzare il formato HOST: " +"PORT)" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3212,7 +3423,8 @@ msgstr "Permettono di stampanti" #: transports/RDP/BaseRDPTransport.py:67 #: transports/RDS_enterprise/BaseRDSTransport.py:70 msgid "If checked, this transport will allow the use of user printers" -msgstr "Se selezionata, questo trasporto consentirà l'utilizzo di stampanti utente" +msgstr "" +"Se selezionata, questo trasporto consentirà l'utilizzo di stampanti utente" #: transports/RDP/BaseRDPTransport.py:68 #: transports/RDS_enterprise/BaseRDSTransport.py:71 @@ -3232,39 +3444,39 @@ msgstr "Consentire pubblicazioni periodiche" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 msgid "If checked, this transport will allow the use of user serial ports" -msgstr "Se selezionata, questo trasporto consentirà l'utilizzo dell'utente porte seriali" +msgstr "" +"Se selezionata, questo trasporto consentirà l'utilizzo dell'utente porte " +"seriali" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "Visualizza sfondi" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" -msgstr "Se selezionata, la carta da parati e temi verranno mostrati sulla macchina (migliore utente esperienza, più larghezza di banda)" +msgstr "" +"Se selezionata, la carta da parati e temi verranno mostrati sulla macchina " +"(migliore utente esperienza, più larghezza di banda)" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "Monitor multipli" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" -msgstr "Se selezionata, tutti i client monitor verranno utilizzati per la visualizzazione (funziona solo su client Windows)" +msgstr "" +"Se selezionata, tutti i client monitor verranno utilizzati per la " +"visualizzazione (funziona solo su client Windows)" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "Consentire Aero" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "Se selezionata, sarà consentito composizione desktop" @@ -3330,7 +3542,9 @@ msgstr "Qualità regolabili" #: transports/RGS_enterprise/RGSTransport.py:51 #: transports/RGS_enterprise/TRGSTransport.py:59 msgid "If checked, the image quality will be adjustable with bandwidth" -msgstr "Se selezionata, la qualità dell'immagine sarà regolabile con larghezza di banda" +msgstr "" +"Se selezionata, la qualità dell'immagine sarà regolabile con larghezza di " +"banda" #: transports/RGS_enterprise/RGSTransport.py:52 #: transports/RGS_enterprise/TRGSTransport.py:60 @@ -3342,7 +3556,9 @@ msgstr "Qualità regolabile min." 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." +msgstr "" +"La qualità d'immagine più bassa applicata alle immagini per mantenere " +"l'aggiornamento minimo tasso." #: transports/RGS_enterprise/RGSTransport.py:54 #: transports/RGS_enterprise/TRGSTransport.py:62 @@ -3352,7 +3568,9 @@ msgstr "Frequenza fotogrammi regolabile" #: transports/RGS_enterprise/RGSTransport.py:55 #: transports/RGS_enterprise/TRGSTransport.py:63 msgid "Update rate threshold to begin adjusting image quality" -msgstr "Soglia tasso di aggiornamento per iniziare a regolare la qualità dell'immagine" +msgstr "" +"Soglia tasso di aggiornamento per iniziare a regolare la qualità " +"dell'immagine" #: transports/RGS_enterprise/RGSTransport.py:56 #: transports/RGS_enterprise/TRGSTransport.py:64 @@ -3364,7 +3582,9 @@ msgstr "Risoluzione locale partita" 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" +msgstr "" +"Cambiare risoluzione del mittente per abbinare la risoluzione del ricevitore " +"quando collegamento" #: transports/RGS_enterprise/RGSTransport.py:58 #: transports/RGS_enterprise/TRGSTransport.py:66 @@ -3406,9 +3626,12 @@ msgstr "RGS trasporto per connessione con tunnel" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." -msgstr "Certificato server (pubblico), si possono trovare sul vostro motore ovirt, probabilmente a /etc/PKI/ovirt-Engine/certs/ca.der (utilizzare il contenuto di questo file)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +msgstr "" +"Certificato server (pubblico), si possono trovare sul vostro motore ovirt, " +"probabilmente a /etc/PKI/ovirt-Engine/certs/ca.der (utilizzare il contenuto " +"di questo file)." #: transports/SPICE/SPICETransport.py:52 msgid "RHEV/oVirt SPICE Transport (direct)" @@ -3434,15 +3657,19 @@ msgstr "Errore sconosciuto" msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" -msgstr "Servizio non valido. Il servizio non è disponibile in questo momento. Per favore, prova più tardi" +msgstr "" +"Servizio non valido. Il servizio non è disponibile in questo momento. Per " +"favore, prova più tardi" #: web/errors.py:75 msgid "Maximum services limit reached. Please, contact administrator" -msgstr "Raggiunto il limite massimo di servizi. Si prega di contattare amministratore" +msgstr "" +"Raggiunto il limite massimo di servizi. Si prega di contattare amministratore" #: web/errors.py:76 msgid "You need to enable cookies to let this application work" -msgstr "È necessario abilitare i cookies lasciare che questa applicazione funziona" +msgstr "" +"È necessario abilitare i cookies lasciare che questa applicazione funziona" #: web/errors.py:78 msgid "Authenticator not found" @@ -3460,7 +3687,9 @@ msgstr "Richiesta non valida ricevuta" msgid "" "Your browser is not supported. Please, upgrade it to a modern HTML5 browser " "like Firefox or Chrome" -msgstr "Il tuo browser non è supportato. Per favore, eseguire l'aggiornamento a un browser HTML5 moderno come Firefox o Chrome" +msgstr "" +"Il tuo browser non è supportato. Per favore, eseguire l'aggiornamento a un " +"browser HTML5 moderno come Firefox o Chrome" #: web/errors.py:82 msgid "The requested service is in maintenance mode" @@ -3470,7 +3699,9 @@ msgstr "Il servizio richiesto è in modalità di manutenzione" msgid "" "The service is not ready.\n" "Please, try again in a few moments." -msgstr "Il servizio non è pronto.\nPer favore, provare nuovamente in pochi istanti." +msgstr "" +"Il servizio non è pronto.\n" +"Per favore, provare nuovamente in pochi istanti." #: web/forms/LoginForm.py:54 msgid "Select authenticator" diff --git a/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/it/LC_MESSAGES/djangojs.mo index f4f13bab0a5c38f96e17291dedf7cc597c669f14..de9a0887b19089ba710cb2dbd47ac1ca87e17411 100644 GIT binary patch delta 3907 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 nHM+c`sNcD{#nttx#^!lRs%73?^\n" -"Language-Team: Italian (http://www.transifex.com/projects/p/openuds/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/projects/p/openuds/language/" +"it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -414,123 +415,120 @@ msgstr "Eliminare il provider di servizi" msgid "Services Provider deletion error" msgstr "Errore di omissione del Provider di servizi" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "errore" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "Rimuovere l'elemento della Cache" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "Errore di omissione" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "Aggiungi gruppo" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "È necessario fornire autenticatore e gruppo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "Rimuovere il gruppo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "Errore di rimozione di gruppo" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "Sì" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "No" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "Rimuovere il servizio assegnato" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "Aggiungi trasporti" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "È necessario fornire un trasporto" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "Rimuovere il trasporto" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "Trasporto rimozione errore" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "Annulla" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "Pubblicare" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "Annullare la pubblicazione" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "Forza Annulla" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "Lancio nuova pubblicazione?" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "Fallita creazione pubblicazione" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "Trattenuto" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "Nuovo servizio piscina" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "errore di creazione" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "Pubblicare sulla creazione" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" msgstr "Se selezionata, avvia la pubblicazione inmediatly dopo la creazione" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "Modifica" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "errore di risparmio" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "Eliminare" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "errore di omissione" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/django.mo b/server/src/uds/locale/pt/LC_MESSAGES/django.mo index c40ff54ce28350fbe710b17b1c3a045546efeccb..4a569f60a756d90106a718d84e865c6e2d28d1b8 100644 GIT binary patch delta 17620 zcmZ|V37k(={QvPgjM*8xv41g`VGL%n8w_LL$y$~#GZ@WgX6(z?zLsqwN+ek-A`_BC zRAeVgqL7p%OQDqdz24t*riaJx|Nq@b$MbWRd+yopol#v{?b|^063<4NwDVg~hNhmcSG&iqla8ScXCP3NjaG0~W!3sQyl4 zB|L}WJl}apppMG5G&jbeW)O#kumfr){je|&$M!f5)$svT$7gN*c?=+b14Hp1s$ITT zj#CPYqb3lAg?YZyf}k08$8cPXT9F-C1utS-bP^n=Dzw9jn1&kILac$SQ1=}|J?K}| z1pHc?`%0h&(gaoC89lxPNd)R>Bx)tbVIVF<)vrJ;@vB%8x1m<(ko7ETrdLo~b=Q_Z z#`5HY+L(bwpo@H0RJ)8etiL*%M1f{H4|Q0!phma@3*d3o4PT&U{+;z-)PpOsJf*QV zhGTndglVWVunD!oAEWl(X~!x+<#w!pHG+W@)WccmhkGyp51>}!C~5%bQ1w@^JN{(r z8*?CZHWIKV_QEKfhFZCIP%Hc~YCnN;Gemd$b?8aF9*5-?LHTO5bqI&;Z64anUFVyQX z6}1veF%(y$2J{Z<3;7{xOTI=8WnNwb+8$=B0FvUC)QKgkn)SDftKiL22>t(Uo`6b(hxO) zEZeudnAP0*$Qdvn&%PVrSfloDb(d>b-9}z;VXo zEL8qq)Dp+>bPZq$e~iI97=gnFdB3vGV$=$MjauQqQF|Xg*t>Nerv`z({S8rj{VZz9 zhokm38%yJK)Sj1P8(B93* zBKQhwhFh>4-b5X`fT8B}hFPPr8085VhJ8_ocNA(MlTrPhLfwBA)$Sgu-(W`9mFGJV z1Zpr2^Wj`9gA1?(Za|IrL+pr0ZN5~JS*dEMcClC%+gp=RhjAKeVDnKEU5@I1BYN~+ z9v~=%$8Zo{!`7Io7v5!9YWU^FIR5N4qUJOwM@O4OlxAGMX| zP)mLbHE_Q)(_a`ykgtt3(9@S7hF}I(#GR-Ieu<6n9!6qRx*1?^)L|QfdeAtmjEhk# zk&9Z<^QZ}3!sd7bi(_Pl*_vipi03Geu z7FY}WqXsk=_2AW51=pcg_7FD30-5HFwM4BzPxROOKZ!sc&qOWl9E`%HwtOE3l0Sgn zw*<99*Kj;KS>|`X38>S(0X5)T*cIDmoA1F(*pB?qsENgnW>7reX-ZHHTOv#1BwNR! z8qPtzMvGAccn7rtpP}~tGHS*CMYXHMcUa}kQ4<=7E=)!}XFfK;chRGzx2CR|U zKMHi}ldPGj8F;WHuEsFjfg11$bm2YJjEYS#9X3X7O?%YakYw}I(c2Gt`$2C%6IlPM z>WG5+7&g%~?22kQ4AszsYPZhjKezc?SeEi)lgx*vHtKNI!)I|IYUTEz&d`4A5ey}N z))9JMz(mwxn~$Y&Gim^zp&oo3b!fjv4d^Or=^vr` zEy9ZHzS789@HnvqI&^KY0ZzmUn2Y+boI!2DeJqZpr<$2WqYhIuYj-R|J`uI#9@OET zi5l24)I`>z2D}xE>;2zJpd~(v8tHj#kGHWEHk!s8fs=747MyPOd=z#i{{pK0C2WV) zXP5_NpawhzTVW1rKwqJr_Y-P0ocjdL(SIg?y~4Iw1jnJ4YCdXf-asww2~@kUuqg)2 z;%kVlQCl_}wb#qA9Ii+8a{#pk7f~y44Lwl=Hwkn@*lg251Zt!WP&c$gbq!7J+Kj~VLa+>=!6>3 z1k{o)!2I}{&A)*3Dn*e zoM&FM0T@nxCc5xV)XE*PucEBUp2ur+RX3!P=$!DS7qKQ}ow_yZ+gVoS?q4|qQP1M;+L_N(JQFe)LCr$DTaDp zRg?EPwFwGQ5RW=s-B7P#GHT>gQG348`XNS>KaFbVEHNFILJc?))n5awk8Lm*C!)<8SObRVCD^MD>HPuivZjO3=2BG$N2I~EO9W}5` zsQ&h#R_vtBU$Wjs4Ya^=)?eT3ddtlNyP-z>461`v>onAtY#G+V?Wirej5Y8!YJg>4 zG9Ri~)amYw8c+tR{S1u6rKpK~_!8?MO>of`1g|hNtBG2fuBcP~9M;2h)S+CD9q|}y z0%0r77RF)&@`G>)zJ#an5o!yMzHGMm8`K2<_7G@^3cq6ZwgQHcuZ|_L1*%~mEQ`-! zL!5(}!G0`-mr*P92kMNJSY`Xe66C9+1|Em%KM}QMp2-A$1T#=eKOgm)tU`742I@gu zP#=`zsE!_>23G!6{31hus7Q5_FLtzb5)pV`;}Uq%h|2UNfJQTP3WK|J3n z{<;}?MN~x$y09H;Z2WGPn0Q>dQ}zhPAjTW5agG{Xwym!M|84fP@W9Q9rK z67~B1gPw8((Qla7qa((W?~l51Ay&kVsJ%Ocn&}DDecz)7=Bzhg&?2b%lBj{#L~U&= z)CzP*t)$!L=dNe{)nEk$Rd54pghwz6@7abGH<*rUVXN^Q{S$))fy;1!w!3123`VwA84bXF+KqL7Fwdb`ro26=pEyzEEdL37x4%J!I zOnyUc-D6Zo!CTCywK%pT-wX%h9Mpra+kDM;>~{v)a*wl$AcO|{ZN+iaUVVpp8}4C2 z4A^Rxwj}D%Rkp^WUb_U0#NMd;r(zK1U^uQuy)_4|*Rhk{|G;hLSE}9^PlLs%!*K@H zQGs{OX%55s=UO~0LgN^WS4B+`r{q5!qG)FC2 z7HTWbSZ|`1+&969)0mWo8OI|t`r<5&;!HX zGac4N-4KT^?1T}Ridy33sG03Y?fq%g7G1!y_>(R7-C_DEh#Fuy)WD*!6*kzx`s-9r zv<+vVMz|D9<4dUb`d!omcA+}@6m@3Kp*}QMZT%zEzyfxfl_-r`f!e71>tk_DKs~45 zPS)Q|Fpz@wxF2g`&@MBR`dFQO53Gt4unxY4TDjAx*R0a}W@gV~ck;tg1KExF@CfR4 zJ&u~dY3mga!4wMaq7GliZnHGoF_ruS)B_VgFo$LtzD@olYAYu0F`v}+)??V0^53u} zcKXo#g=P_^lRtsgu-RVoVe=#rJWIhAT!29z@ioNd*cwCjnT~p3Tk^}W8(zYvF?zrG zO=kwSAb%ZKVD*p9-v{>N0P=+nn8Tfdv&kPt&XmXLanN)$5jC8&rKCEQM({KO4)De-$;L4{$ioca9L~u*4iT zwnCl$r?CpA;b2^fMesMwhXp=29R{EtR24PAIMhsg*!)|lw`Ct{0LQR0-awCnkRxWs zwNW!}fF-aER={UbOFa?wpn0f6yB2$*>!{h|Y-~jS3|7UEW9Dqd;7sz1upbsb&ZIEy zIO{)@;1UHcj6Y#UHUvA8pM~Lg8rAUw)JoMkX=W6Ug~)e7oq+-9!ciECOR+Y-j)8av z3*bfT)sw8hI{3*JJVfOmTSHEnGf@_ODX)xWu{vriTA`M<7y9E6)C!G6E%kI;zXofQ z-;7$>i>UkWc?dEHd{2A-hU|>S7s&gaF-!L%)*ycu+he&e%vKCT4Ky1ypc$yszXtU| z`WS=oZ(Htv*3?I$4s%D;8S^|xpbloCMzj{oU@mG8PhfTY9pkXvIrEzKN8L9KTi~l$ z2fszFNa&a5EhvY2P%Nsy&KQYV$clQLR|!f|@H%SGcVjUu@ReEe(x{nMKn<`KreJf_ z;oXed(~~$D&!M)e{&}-wYwI7NRv`bk=Ery-YQ-v}R<QLTBy#@JyHvN^sO5~qHKc4UOCeVxrpjIFgb;zb;04_$I+Lfpk*^Zjo zr`QXB!PeOFruQ$x&RiTuKKd7P29{wr@*iLV2H!HjNp-{GJl|PCpqXyL?sy2b=cRu& zOIjN>fEL&j`=L78V$1JYgKwKd6^?<_cgIHf3~B(&umfI4O{DG})?a&;K%gb*g%xlt zYOj`~AFf92`FhlnUPKM}4yvP|yQW=vRCze+P&PyL(+}IC8?~ZuqWax_m-R19u$zKV zJYp*@U_tU%uqNKNR9Z)`Kw(M)PvJe zE4>o+-Pz+I7)o#+J7d!a=E3tZh5SCOhfxpB5)MI~_P4ML9>*S7?hmu~>8SiF)Qa3j z-CyHR^93D@P06QX40_%oh$gs%Q5f>b{Dq+r79~FpHKPR>gzsS)+=qIPFQD38N6qX{ zn=kv9`O-zBwjdU}V*~7l^NW%i<}l zfxn>Im3nNxCv{O1>xw0D3hIn4L+$-~^#1q1T?AVCW8MO0_m4TXwNV3TfO;$9QKxq> zYR1W^0Zl?3!UeW`6>0)oQ3LuEb%wsfTIlz$x&JAw#QAgD5~zb@>jW%MegSHxZ=yOp zf%WkkYD>yGKHgs{6R;EcY}Cv?M)mgvy6_sdzydx#-oFF3!RF+5qWAy*c|f3%I{AFO zr?L#{heQLLAAnlo38;4KF%I{kR^l=0fraz?cz+63vbIK@sbs8x%TeEh9jFQI&F|y! zKJW_)w3m0V9ESM%c=s$48R>#E;0i2->rs2V*XGZn4&g7@01Fi`18akg$oIiA zxCFJ5n+te+y#Fi2_Y`O*75&TuVo-;tIqGnxVO?B;TA72Wy}W@gEamUxJ>?Ct1^K2J zi<7Y{zKfcmPk>pG@)%FPgNI-&!Si?@eFM!59-(GjF38NV32Np&tbwj zz>2sRHRDUDtt%C5+P6ft?~m%wGl`%8!8}w4i%^Gd18M+AQQzvHt#?r?^#`hh;1ILK zVW^HHtsPPQq@wy=iauC6AKOEagU$5*|L^Mq3f@pld(9*MkoYHVxKDaS`kbd9P7q+%!tUC{lOQN>k;Xt-kg3 zNS$e;>qpXN+VG>^>5aQ6Uxt%Z$(2E@>ly0;>UWU;hI|5P3-Ky7(DSpXj3O1Yja9ys z^cVRX%5W8?elSUwwnNu^@_Jjgk*d)4ADo04sJEspu@3DFlCB-JzhnE*mTV*TyiKD+ z-fDgYC+56(uY6R#X=4>UL;gGLg?mVOR~_QkWct{$>%=vQ|Hd1*A9b}QKCk{rk8Qtu z^D%#aDteOi<5E`vVqL>&6k=oLuh@7jZdSqnx+>7VElEFSE6`>RerE6KM%;_KSMWv5 zZ_C?g{})rZ)fNysrD^aPDeqchgJ!hpNa{{{ht!tx5~wSlbdy+L$G26$wf>1dl-DQw zH`>fq#$I1|D9{&)?~jv3+G}spe^T3F<3DLLGVcznFJ-#A;$d7vs!SSa@A;ni8&Wdq zI&I#l z$+XoKL|R7vQ}Sns^%3H$>`WweB-X{pQ|F&|l7>4;-;ie54zls0jlGTR9}{p0?Q|Wn z?x)>c+jbxJqplCGBAp_QBTXUgCY>hf3g_NEdVVL{$yXHCC;d%+HV&ZSCDL>DhW992 zKs=lDlD%gLWhZSMOx%Nb5H=yj5uYJ-rTx3)b-h5^Y5S`w&HQYi%{SP)j z-QM&jWlvtWZFytb&9QA&Ka+IJ*7dV4#pU+qUuipyeBSfD|L^uWDw9YRpXlfn;)OQf ziW^GV&i=t!wli^(G?+49oM79$gkju!1NBSp8@8Xj#Aitjo_Ic4eqSd&r19&ds>CVW zFwEYhdR=v?%e(qhH;T-;C(1sym9JW#!)v6fw0)NpO!}JqUF@GX|5Q2{N!n;Ta?wE7 zcp9C+e<^QDoOkUaf0+C`wtye+P7l&W%8ujDcoTIUz-jmz=`CCKyLFI$a_Ne<_9X5} z{N57}Q+;d72HCP_$-hBrPuW^LMcPE&b@CsRUM1=J04GvjnE0?Q8%{i&vi4XMJpugj zBWV(;3xyFh{G0TMIPcm*K8Mtqq-!>9TM&nm+7oZUtCYV_szv-0DVy>@(mi5bkFX-1 zr_6`A4ym8M|9RJBDlU+5*&Dtjo=RMV@^s>lQP);d25~O-A`PX@ucYRbePr9D;{ob) zttV|HUjc973Jk)XSS_D@enUF=h%}nQ6F30B!|gPDjijp)=@#ieG`g>XG-i@xQcbOg!D@J--k%e&UAl#79V<+6H;_=Egc??mW?U zg?->Cyhq)4$X|@T*I)cOpR~xfS&px8?*PNMp!9L&F%7 zu5T&(gtF&}-NcQE*AZW~_o+=H<#|^@%BzqfNx77NmREsmDZA~>v;LLT8EHFd3l%?L z)Dw+k$R|-=ANNxJ74b@9T?wS>#GUb7>|o39kiSUEyRK5clKUo*x)BH3c7J&&Xh*Bn zScCKl@eKTu24yhsx=%2Zd?#D*B7Q}i{5JoSwT-R+(&ZsN+sm(hFv zOAwTM;$c0=XXZ7gJez!FTmJ>|HR|S(uSEKkbcM1slCEmhJ*Mmk@jeVApF-RWb#24q zq%Nes+W+qf%8_(UE>Zpm{!W@@+fO9^nfPUFP5pNKfu!qcQW5HE zQ@+ewV*c1b{v1iyWX->w?d%YKXydCi_=9wU6iCCjaTs;SiI0*Rk}raPlB$sQlh@^A zy+YeEq*%%}Q}&MS*V~9c3fufleg8X95KW_l#4S*LG~kb?Nb`utP@YNLAGKdgi8Jwc z%uiW;j6_}E5~mQ)!emke=|xfvTdy{Yh|@`zNuCZ=t|fRL=iogoMWdfdXUPYUbbUlR zNLoR@i7ktzZ6#H5wK6!bQTKp&D0Nvlp0v@{J*4b);%J+%t^L2i4X;w6E7jorv#c#s zW-)O-+8x9gTVBZOrhXUc6!{Xgc})B=uCeva$#){JtDto*b#dO9^*l?a5S2etFw)+1 zjQlb3m#`jXtw>Lk(nxw`qisiL@F~&=%KoKoG17WsUCES}#Sqd!QZdR~lENu}k2GEF z)LD5lr-{EM`H_!9U2mxYS6%#qHplQZsUT%fk%o~fQXY=)<0jG+d(Q~U5{SoAHWmNG zag<%N^@Ps*#5zw-ES0%rzOk6f;BjRoWo0F&r@69|Q&xRMEdB=EZ4B~Oqct=TO;bYQj^?iS+2BnS4whfa&~02 zD}GpZQl=|=L~@oZBPlaEJu&LP=3|pnQd~nATvAGsuRAL#G3Q9~@Z5dL&xAHi=&2#P z;)iDQfCxP$GbuHliMTT|vRsUyPjXsf`q(U2&!o&T^dD2FZcL=pqixRGaV2x>jvwI@ z-^I-|dL+41TxmoucXoDWmhxHYX%_F`Ge!?dNgiru6*1JErtu`DW@L|#%zbOZqrlvi zGj|91B;<5l6dT0)xU$o|OE-E^R=$QTV2wxl#|V9haQy)0#zjs4Bb}!(3fCC-gyi(d+$vYM2IqcqYhg%%_6ZCir`@B3 z((&4BmMYyfI&1X7wH#}g+nkIAkDBHmlvkbfUp334;jBu0FZ5Hn`XNbJ4$UbR<=J^D3krlhf|MyahuMQM#vRkSEY zTU#kgmC{sI>&O4~{+{FU@c7@y<9MFWIp>~x*1ZY+{Wibnb9I4_`&ziqVu$MwZ^y}x zi}E6InOW_tJF3t(hapDGq3?}!Z>_{1u=IWGq6M~L0lKLlEYCC zT7sIuHq?CwPy_kJ);~eF4+WuhO-JFVm2hDoCZZ3fpq98E=Ejbw6&h}xgqrCb)K*ruA;)SR) zaT7~o7M8+-4b6%*MV*}<=!-+K8m6K@ZgZ2#M`kzb!Dms2<01y&1Jum^#`2hhlcx^r zU^2F{aXRYou11}OEvT*f0rl4Wj!Ed%*t~|xn3vc+l#FIJ8?_aSP$OG|TFT9+8^1%& zixbksacW>ohNsBKs<^;cm@mOWz>BytYOVKu*5FZz&l_CoMhu2sDb=|CGalh)cYUN+^j$x>M)hV zP^^XeBDO$n#Sqj0Mx$0}3Tno)QCs&Jmd1m~0e2pt4srPw#>S|L^hOsB!BRZmNh1@C zdocu$Vi=x7J?IzI;kl3M;IWPWL#=>UOY?mQN1c_JgZ zHjc7p7>0_YP=_NH)j=|9MH<=q4%R+ch4SI3fo?*z-+}s$>_rXy4C?+LF$`~^p7U2L z)?W>s)@H=HF$ZBGRKxP9rLB#g0ifQF4(Nk}u?@b74e$tRh9MMc=__MFY=Js6!%-{o zF6vP4ZNvH}kokuKEq#1j(@`ZCHk7ig~x4t4>iz#`?LN! z9DW1L(&fV3#IdNAsE(zuG5X+G^uu>qE_mC^utZ4`?jN2Vi)Rpr%~;% z4q*M2xl4ieFbg#R-+`t)KgJRlL*3XEM_^~`N#qT7Y7R2LVlBob;(e$YK0^)2cd+R< z9JO`Du?*I8lL;a-3N=E-F}NIccs@t%*^j70^$;~s{~@NsXpAQ=izToVmd6=b5ci-S z_!CyeEG&+thnfMpJCM<#>VtaFcr1+RsG09VE#XBB#%q|2zhN#cG0bd5GHS~jU?{dn zK8ns8SO`DI0KANRo19z7Ti|wT4ma<8Ei6q%7u0~}pdP#$i{Luc(jLbe==Y{MTy;<@ z&=z$jCZk@jnW&YWjioTdmLI}E;;%4|-v3i%v_!X2Up_B3xFk+Qo#KtC5kJHh*l?tI z@0Vdi;`^wXRZKO9GYN|l*TL*K$T}X?ZZ>+}F3iL8o$X|z@fd3FZ=jaU8D$z4MwO?a zX4C^+I0*Hic~~8HqE_l5PR8)j38Jpu?EQ5h#&978dQ0<$b+IPkf>}O3yO<)S<#?`39yn8I`uMwZ7z=c_;8RZ&h zI;@V`n#QQNp`VSXqo*T`qI@@c`oTEjEL43o`>Fb}sQN~z`k^+?7|;5vU=Ia)&{fn2 z<{8H0OVpPyeu7!DnW)1v7sGH7`r$g%3T{QM#6{E!+_gSI4a9q*nP5KDeYM?W@{nnS zTDo4gVkmmP3#bRFojP8CI_0ZSTeSi8K5w_>7g6nQpkBjAs0qG6ovGMK=B(964Zz)# zj2_${)nO`XK$B2QxCr&Ytr(4&7>=h8UpzNmqY#6~y=>)<(DfO^IH;6}`c z!Bfm@TnroO{U1xFAr)Vu9uzdyJRl0yQEAj`GXnL%X_yliU^1@3vUtOmhfgyr6^q)M zny8f>fND1aYv5W;;rY&WGTJlObhAVWn4dTqwd7qy|$nYSm%O{N3|$rz7=P&3HD zD!3PQ*s@R$^qp@$K=BwsTpok4K58Xfq1yMb@d)%GcB8gn2DZZ4*i7Y@$TT1mpJtZy zP1O6j0M*f248&bF{sMK_&Y)KAI_mZN2Q~1pcg&tATAN@Q%6p>PEkO0V0YiDd^BI}! z6dc7w`~ib8WPw?#D60!K<9O7JYM^Fb3q!Ces-I3s$IbvOh-0ugEiHR`^r7=RB@EBH5-$G~*+J7Nt?AkIKv z{0ejG{r`rHzD$>~EIvhzH2z&PvkIsVQ&3CZ1~s!Gs6#a$_15e_b$lAb@dwn3-9@d) za~lU`nDQ8OYeePA=>6`Edhle-iL)^Rms_`?K1_$PG+sw7dFUc@i1VWc*Z}q6>4`eD z6Ho(MiE6(CwIv4^vHqILJqpTT;9@hgDyW%tM6Jvu)ahM@m2d^>u${#w_zX3HdP~e! z^+f$pnvcEl2%f=WOU+jOgD&ELWvqV$nc~aL5+$MbunB4=Z80|vMYWrO8qhMVg1b-? zc!2tVg}!H2C=S(6ZEF+MfZJjePDE|hA~zX7GRsj*z6SMy$V7Fp5A}c}7>~D59fdA8 z1FDFtz4-WG4$AMoZ|;9)^;%)#K-6<`q8=QDI<)Q>GCCY(Y()*!($%){1auKk!4kLz zHGq?-4zf_+hiog&9*1H9Vi&rwCThk#Fc*$P4Im9U3vMTajAphLwZtb-Grx{{?e3x; zm}`~Uit4BVx5h~9iRyR^Y6a(^`dNvM@e|ZQpQHK>S#9o%#2~%@CCTV?CfbTd=pycc z+S4hhrCo+exEXb-e?@)kgFZ07VkKZ};&vE=n@}@9hWbGLjQVaozyyq3!&z~YsYgby zMQ^NtBTzT4$Ab6;YVWS0W_la*icxuST~T zY$v1F?Eq?oH?R~2erRq?M767rg|IDZ&&OZ^oPyfZRj3E8!*aOGdIz<_QR~ciqa>Cm z?zE2ee}l|?3e?eKY>#2<&6ltrHXvS#+RN+M7E5d}d+A0EWHtujyQrTXD{cK|RR23s zXC==@({E|iN_W>Uh5B&3OMyoIG5X;FtcFL>A77#d=)cK)h~iLtTHKn5+NwIJ`}&~z zTZMIT8)}QQFaW(bn}Gzo$!M=@pq8i|rr-e7Yq%M8m~LPoI$O+E1fe>L!s1v68)6ge zj*Cza&a!cpt>*1mibW{jjGBP^l&!dg8o=+UrFx0l^T?0Pk`_T7wghVm>UC>{8bBY^ z{b?A4A7CtQ#lm>TnuSe?bARml&4~a0N2V49D^Z8yI_mU>Z!^CSlt2xr7Y5^4)Pts@ z2CxKmC^w-7_$_9~%c%ChVO9JawPIzro4v1!-Sz$tC8I4kX}yhF>KCXP1ne-Uwlu24 zE*OUWQ3D%`nsFNH>?}hKU^V*SHXCPR3*y75=Y@Yle>~qQNk%tRMigU>W9%yTmAyokN-|Hz}%>T6~#JO4t1DEqXsq^-O*&Gk@3Y9sE*g7X1D`G z@DOTCPTBg~r~zf6R=_9I%semZ{z9k^Q3C2gb+H#V!bZ3iOX8DE)?YIyw99;Wk}!_A zFP6o5s3qHvdaXh}H8W~}t%zHr2C@#l@l(u(pP?qO-+B_?BEEt;Yh8Am6GyqK42}eEAcX% zhfi=cPId1y|IYsu)lt%ZbHfyDNqijJV)Oy?o6ImwA^skhVfYv3_xP>YjrbXM#|{Vi zTMq6_$zbY5ackrom4V<&_pbVb1@fg!Q6NdYv7Mq03(i=Juio< zuZ?-IlZ{7Ue&X4v2d~He_$lhF6!_X$2BY=M#rSpd3fd z0OL_JO|tP~)Z4NJ)qW2a#`D&vsMjy=F*D)97|HXUa%5t#0cxrHp&m2}-@^IW27`~A zJ??>3i4R~LKE@+FWC5+^}$Kj-;V~*De%E;r_2{E z0JR0N7=nrDk9ANh(*(7|eQf;{^b7!X-vL~Rr!ftCerHzbA(kL+a@u@|#++vTLn$~! zfkyfr>VtF@3*j@YhWXBz4^Mkkc`xg9)S+FE(fBp${_CiL{D*ll^n0^a@mP$wIVRy4 zH<_YjcA;*(j4AjO%VL$YW(5YKPWu?tgVIoYzY&Y$Dbxx+MYVg5+S-V7X3Kh@>Qhk@ z9fvv5J&Vi`GVh^ItKWIEhsCicaRTbbg{Y-ljFs^aYQX=XwlLQZ<_zV-*2F28j2Wm0 zox?=Dje(f|N6*0APEj&C{nfBGc0zAlf$DfQYQ`H-dw&QQ;{~jX!+zo)t}qkzwiLZ! zKI!YN5f{yWvYCoHOIfHbcP?q=*#GQg)NvJ5gO;dM+zq3!4{FIKVQ!p%V6|1^JBUpY9ifH6CH}4-~T6&$wk3zjK!6x86Cy~colU> z|FagpZVp`|REMdU52s;%T!lJI`_Qv8sD7TI`pNUNIZHKvX8pBf11V6$si;r!3e;c-lrj+>+EJD>|kqYm8?jK(#n2kgTnJcYF|__k@^3=0#x zhmp|-BptOC`%s7P9O|_Hit6wM7Q(1IW<{!@W?T!k0_{h zlK5*IKSsTt|6nNkKQ#A6Vm0ET=+;Pjkafj2P3RQX$Gg}A6CRl#ZVMi<|M3(YqM#Vw!wQ)5v3YPk)DjOzeOS`5 z4{pO|82+bua8DdUycjE?ca~YXDyUOF1)JlC*c$)DQdsXV)?Wo9|1wMRHL3&WiTOk( zVhzGNSRSWf8O%g=a1(1{*xzPPo1-Sw3xjYjY6TW!Fz&!`+>e^rX}2wSj6M|jJT+So zh^>f2u_g9E&3FfDMlUco7W&7W`YISm+#GetI%0MliLp2pwRIb?1Rh4Ub3Y)X4~hRX zGqX5U$89kT2V+j0hie%5Kq%^M$b&kxiKrPTV-9R><31Rv_kRo- z9h&)A8Z&K!8>l7v3w2}e|BS^@1FnLaS$m`-XCfwII%*4!V*)@SOsJCN?bs_4k?7|ql zfm$)=B?IUAP5_zw7=!t+x{W)awqg`k!Fi|-j$jD>f_mU1RJ#Dj%M%wwtz2cSjGa(3 zPRFXa7W3j2bZg0;lBtemyu3U!8iablWYlS&i#l|lV>!HnahToP%d=$_(M8-F_5GNR zDL4x&;Bjn$&ruU>n$63zA_KB{xt&@RET&*A{)D_yP75D1gL=MRo*DN?&G2p1z*btf zpjKcHYR0Eg?H*%64Dd5Ejz?`>Z&dpznu0y3>m+#} z(!VxV*yLtmn$YH0sacVsG<&PsL{x z{7Oy-W+(ZaG}5(-{8-Ww6FTo>GwQw~>1Re1b$WYVzeZ8Emb8Gv`KYTBerWqt+=@8H zoB97h<^u|*kcN>uzSd|Hbr(pjD4R*zL>fwbuN=pLiX9 zPnt{FA>yvs6aS_x8Y_}?^`PASF_|l*Nwx!3=-N)IVjC)6p+C6Bk*1RLGodQ=Z<1<| zx{ylK$4ydk@~dorEAc$>>sMKVv!*`G*-R#!26~;|@XlyeK0<4vuYs;w)byl9BT_Qy zC(87HRnZ4{9yTPsL;k3J#3J&#^p=lOd&a8b^S$oip>u)MV>!nDgT-B|4`RF zgXhoMdM6&+ir*X3`>3S<1@d>la@dC&ZSOqN0MmuRMAE5*A7vNd0%D z1GXKXThFB*@W=QjI|C^=L2!h|eXyXX+HqWz@1krAX(MGfNtehs$3WEA{a?~x@}c

kJN~yOaD#Q$!>#^G;T=#n!RZ;`A^gc7o&bI?jkiMT_@=}K-)Cx zFOz>8b?IZQYbkY?OxE+KKJGAug?+Hfc2SwG3|D{Ku|xe+@>?m( z#Iv3g{2`Hk-)luWM_NkK#gBf^KS=elcgJz}FO>a8s!IL>t|nC?zle07bei-vWjE|S zTkr$Qx?>#aEmAJxSJxbVsyhR1)RoF}R2C$CM(Rzx8?%v8$m_aGI$`svScJF(=?eL5 zSc$z(2 z=W$X7=>%;ydrEn?tgUH3$L2pIUy(Lvh$pHaJ-;3)!800u3#KsK=7*~RR}gW3(p#i2 zC~IKrn^5#v^VQNo`O20c+wEt zc>x;CBCVwCJ?v-8$KpT4KBW1iFG$}}HW=ebx_-B9H<3>#AA_@T0DbA2K)yGQ()uqa z&{Y>xNdrjV(y$O^)$9%XC<`O?CM9@Un?E9mr`vcW`5d(GN}OfOZWBjS&M$AyY|ur80_Tr|$upQ|g?yEt3n3UVL=}6gJ@{h1M zA?<2 zC#3F_6{f5k`6{GomnxqHh-=!=+sXzJYcn?cpM?8+rFbZE?TW#N$ zv4zRIoswj>(&!*AF@;Vlcbp`>VPkdhC;3CP+iN@YCHAL$Kk>(;=EQeNqt*DeYdvMp zNbO1Sv}=Q2Bwb(X{U1i*4TAj??!e!ObyYWb{ya@xdCF&DqOG5SgLDrTAe|y#kfbY~ z^tsI|UP0cQHup%nro5`t{!gKBFa>$Zf2&%1UB$Jea-{F6ze2lp_`=>ioVX^bFZD_I z>iUjMDcUTcY#}bU?O)aZW8(-4+}#LVWHM-cko59ZE9^oXK)OhNJa!_@B)<(aN%y&T zBffrhuyG|@*q8W@&6gp+ll+&q&E!{qs~S&XPC5&+4M&i_MAG#hjlZ=w{78JnmaDEL zX(Fi^WoKy9nEVmaINN>(`TtSZ1z%m`h&z*pkYe=y7p8G#dqaI}OUu$!29tD+uyvmh zKOtUkAX<+ZWyDMs9sxD5FNq_(#1ZB^RqAs*7JQisN)Y4APH!(*tcI{E3O zQ#NjgpWD3Z>yqve_odByq~A%p0!i-7xRgABne`j}>6=-n#m#J)iER$$&UilXLdKmz z;Th)!cgy@@aF?*mmJ{7xIfwNc+Sk=<)ToiEPV2tCQil)A%rW`jz|6>5+k!Gqq?gJJ zdUud_#@, 2012 msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-05 12:34+0200\n" -"PO-Revision-Date: 2015-06-05 10:30+0000\n" +"POT-Creation-Date: 2015-06-21 21:22+0200\n" +"PO-Revision-Date: 2015-06-21 19:16+0000\n" "Last-Translator: Adolfo Gómez \n" -"Language-Team: Portuguese (http://www.transifex.com/projects/p/openuds/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/projects/p/openuds/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: REST/methods/actor.py:94 REST/methods/client.py:88 @@ -42,7 +43,7 @@ msgstr "Autenticadores atuais" #: REST/methods/authenticators.py:59 REST/methods/images.py:60 #: REST/methods/networks.py:60 REST/methods/osmanagers.py:57 #: REST/methods/providers.py:64 REST/methods/reports.py:58 -#: REST/methods/services_pools.py:71 REST/methods/transports.py:56 +#: REST/methods/services_pools.py:72 REST/methods/transports.py:56 #: REST/methods/user_services.py:218 REST/methods/user_services.py:253 #: REST/methods/users_groups.py:95 REST/model.py:119 #: templates/uds/admin/tmpl/user.html:29 templates/uds/admin/tmpl/user.html:32 @@ -51,7 +52,7 @@ msgstr "Nome" #: REST/methods/authenticators.py:60 REST/methods/osmanagers.py:58 #: REST/methods/providers.py:65 REST/methods/services.py:179 -#: REST/methods/services_pools.py:75 REST/methods/transports.py:57 +#: REST/methods/services_pools.py:76 REST/methods/transports.py:57 #: REST/methods/user_services.py:255 REST/methods/users_groups.py:96 #: REST/methods/users_groups.py:209 REST/model.py:126 #: templates/uds/admin/tmpl/group.html:49 @@ -68,8 +69,8 @@ msgstr "Prioridade" msgid "Tag" msgstr "Tag" -#: REST/methods/authenticators.py:63 -#: templates/uds/admin/tmpl/authenticators.html:30 +#: REST/methods/authenticators.py:63 reports/stats/login.py:107 +#: reports/stats/login.py:372 templates/uds/admin/tmpl/authenticators.html:30 #: templates/uds/admin/tmpl/dashboard.html:34 #: templates/uds/admin/tmpl/permissions.html:7 msgid "Users" @@ -117,7 +118,9 @@ msgstr "Intervalo de rede" msgid "" "Network range. Accepts most network definitions formats (range, subnet, " "host, etc..." -msgstr "Intervalo de rede. Aceita a maioria dos formatos de definições de rede (gama, sub-rede, anfitrião, etc..." +msgstr "" +"Intervalo de rede. Aceita a maioria dos formatos de definições de rede " +"(gama, sub-rede, anfitrião, etc..." #: REST/methods/osmanagers.py:55 msgid "Current OS Managers" @@ -125,7 +128,9 @@ msgstr "Atual OS gerentes" #: REST/methods/osmanagers.py:79 msgid "Can't delete an OS Manager with services pools associated" -msgstr "Não é possível excluir um Gerenciador de sistema operacional com serviços de piscinas associadas" +msgstr "" +"Não é possível excluir um Gerenciador de sistema operacional com serviços de " +"piscinas associadas" #: REST/methods/providers.py:60 msgid "Service providers" @@ -209,104 +214,109 @@ msgstr "Serviços implantados" msgid "User services" msgstr "Serviços de usuário" -#: REST/methods/services_pools.py:69 +#: REST/methods/services_pools.py:70 #: templates/uds/admin/snippets/navbar.html:25 #: templates/uds/admin/tmpl/services_pool.html:4 #: templates/uds/admin/tmpl/services_pool.html:7 msgid "Service Pools" msgstr "Piscinas de serviço" -#: REST/methods/services_pools.py:72 +#: REST/methods/services_pools.py:73 msgid "Parent Service" msgstr "Pai serviço" -#: REST/methods/services_pools.py:73 REST/methods/user_services.py:118 +#: REST/methods/services_pools.py:74 REST/methods/user_services.py:118 msgid "status" msgstr "status" -#: REST/methods/services_pools.py:74 +#: REST/methods/services_pools.py:75 msgid "Shows transports" msgstr "Mostra transportes" -#: REST/methods/services_pools.py:113 +#: REST/methods/services_pools.py:114 msgid "Create at least one OS Manager before creating a new service pool" -msgstr "Criar pelo menos um Gerenciador de sistema operacional antes de criar um novo pool de serviço" +msgstr "" +"Criar pelo menos um Gerenciador de sistema operacional antes de criar um " +"novo pool de serviço" -#: REST/methods/services_pools.py:115 +#: REST/methods/services_pools.py:116 msgid "Create at least a service before creating a new service pool" msgstr "Criar pelo menos um serviço antes de criar um novo pool de serviço" -#: REST/methods/services_pools.py:122 +#: REST/methods/services_pools.py:123 msgid "Base service" msgstr "Serviço base" -#: REST/methods/services_pools.py:123 +#: REST/methods/services_pools.py:124 msgid "Service used as base of this service pool" msgstr "Serviço usado como base da piscina serviço" -#: REST/methods/services_pools.py:130 +#: REST/methods/services_pools.py:131 msgid "OS Manager" msgstr "Gerente de sistema operacional" -#: REST/methods/services_pools.py:131 +#: REST/methods/services_pools.py:132 msgid "OS Manager used as base of this service pool" msgstr "Gerente de sistema operacional usado como base da piscina serviço" -#: REST/methods/services_pools.py:138 +#: REST/methods/services_pools.py:139 msgid "Associated Image" msgstr "Imagem associada" -#: REST/methods/services_pools.py:139 +#: REST/methods/services_pools.py:140 msgid "Image assocciated with this service" msgstr "Imagem assocciated com este serviço" -#: REST/methods/services_pools.py:146 +#: REST/methods/services_pools.py:147 msgid "Initial available services" msgstr "Iniciais serviços disponíveis" -#: REST/methods/services_pools.py:147 +#: REST/methods/services_pools.py:148 msgid "Services created initially for this service pool" msgstr "Serviços criados inicialmente para este pool de serviço" -#: REST/methods/services_pools.py:154 +#: REST/methods/services_pools.py:155 msgid "Services to keep in cache" msgstr "Serviços para manter em cache" -#: REST/methods/services_pools.py:155 +#: REST/methods/services_pools.py:156 msgid "Services kept in cache for improved user service assignation" -msgstr "Serviços mantidos no cache para atribuição de serviço do usuário aprimorada" +msgstr "" +"Serviços mantidos no cache para atribuição de serviço do usuário aprimorada" -#: REST/methods/services_pools.py:162 +#: REST/methods/services_pools.py:163 msgid "Services to keep in L2 cache" msgstr "Serviços para manter em cache L2" -#: REST/methods/services_pools.py:163 +#: REST/methods/services_pools.py:164 msgid "Services kept in cache of level2 for improved service generation" msgstr "Serviços mantidos no cache de level2 para geração de serviço melhorada" -#: REST/methods/services_pools.py:170 +#: REST/methods/services_pools.py:171 msgid "Maximum number of services to provide" msgstr "Número máximo de serviços para fornecer" -#: REST/methods/services_pools.py:171 +#: REST/methods/services_pools.py:172 msgid "" "Maximum number of service (assigned and L1 cache) that can be created for " "this service" -msgstr "Número máximo de serviço (atribuído e cache L1) que podem ser criados para Este serviço" +msgstr "" +"Número máximo de serviço (atribuído e cache L1) que podem ser criados para " +"Este serviço" -#: REST/methods/services_pools.py:177 +#: REST/methods/services_pools.py:178 msgid "Show transports" msgstr "Mostrar transportes" -#: REST/methods/services_pools.py:178 +#: REST/methods/services_pools.py:179 msgid "If active, alternative transports for user will be shown" msgstr "Se ativo, transportes alternativos para usuário serão mostrados" -#: REST/methods/services_pools.py:193 +#: REST/methods/services_pools.py:194 msgid "Base service does not exist anymore" msgstr "Serviço de base não existe mais" -#: REST/methods/services_pools.py:212 +#: REST/methods/services_pools.py:213 msgid "This service requires an OS Manager" msgstr "Este serviço requer um gestor de sistema operacional" @@ -322,7 +332,9 @@ msgstr "Acesso à rede" msgid "" "If checked, the transport will be enabled for the selected networks.If " "unchecked, transport will be disabled for selected networks" -msgstr "Se marcada, o transporte será habilitado para as redes selecionadas.Se desmarcada, o transporte será desabilitado para redes selecionadas" +msgstr "" +"Se marcada, o transporte será habilitado para as redes selecionadas.Se " +"desmarcada, o transporte será desabilitado para redes selecionadas" #: REST/methods/transports.py:78 templates/uds/html5/index.html:81 #: templates/uds/index.html:79 @@ -333,7 +345,9 @@ msgstr "Redes" msgid "" "Networks associated with this transport. If No network selected, will mean " "\"all networks\"" -msgstr "Redes associadas com este transporte. Se nenhuma rede selecionada, significará \"todas as redes\"" +msgstr "" +"Redes associadas com este transporte. Se nenhuma rede selecionada, " +"significará \"todas as redes\"" #: REST/methods/user_services.py:80 REST/methods/user_services.py:81 msgid "unknown" @@ -349,7 +363,7 @@ msgid "Creation date" msgstr "Data de criação" #: REST/methods/user_services.py:114 REST/methods/user_services.py:180 -#: REST/methods/user_services.py:319 +#: REST/methods/user_services.py:321 REST/methods/user_services.py:350 msgid "Revision" msgstr "Revisão" @@ -395,7 +409,8 @@ msgid "Cached services" msgstr "Serviços em cache" #: REST/methods/user_services.py:184 REST/methods/user_services.py:220 -#: REST/methods/user_services.py:321 templates/uds/admin/tmpl/group.html:54 +#: REST/methods/user_services.py:323 REST/methods/user_services.py:352 +#: templates/uds/admin/tmpl/group.html:54 #: templates/uds/admin/tmpl/user.html:45 msgid "State" msgstr "Estado" @@ -417,19 +432,23 @@ msgstr "Comentários" msgid "Assigned transports" msgstr "Transportes atribuídos" -#: REST/methods/user_services.py:315 +#: REST/methods/user_services.py:317 #: templates/uds/admin/tmpl/services_pool.html:34 msgid "Publications" msgstr "Publicações" -#: REST/methods/user_services.py:320 +#: REST/methods/user_services.py:322 REST/methods/user_services.py:351 msgid "Publish date" msgstr "Data de publicação" -#: REST/methods/user_services.py:322 +#: REST/methods/user_services.py:324 templates/uds/admin/tmpl/publish.html:5 msgid "Reason" msgstr "Razão" +#: REST/methods/user_services.py:346 +msgid "Changelog" +msgstr "Changelog" + #: REST/methods/users_groups.py:88 #, python-brace-format msgid "Users of {0}" @@ -460,7 +479,8 @@ msgstr "Nome de usuário" msgid "state" msgstr "Estado" -#: REST/methods/users_groups.py:98 +#: REST/methods/users_groups.py:98 reports/lists/users.py:86 +#: reports/lists/users.py:161 msgid "Last access" msgstr "Último acesso" @@ -500,7 +520,9 @@ msgstr "Comentários para este elemento" #: REST/model.py:136 msgid "" "Selects the priority of this element (lower number means higher priority)" -msgstr "Seleciona a prioridade deste elemento (número significa maior prioridade mais baixa)" +msgstr "" +"Seleciona a prioridade deste elemento (número significa maior prioridade " +"mais baixa)" #: REST/model.py:147 msgid "Tag for this element" @@ -531,18 +553,18 @@ msgid "requested a template that do not exist" msgstr "solicitado um modelo que não existe" #: admin/views/reporting/usage.py:84 admin/views/reporting/users.py:87 -#: reports/lists/users.py:85 reports/stats/login.py:96 +#: core/reports/tools/report.py:69 reports/lists/users.py:87 #, python-format msgid "Page %(page_number)d of %(page_count)d" msgstr "Página %(page_number)d de %(page_count)d" #: admin/views/reporting/usage.py:93 admin/views/reporting/users.py:97 -#: reports/lists/users.py:95 reports/stats/login.py:106 +#: core/reports/tools/report.py:79 reports/lists/users.py:97 #, python-format msgid "Printed in %(now:%Y, %b %d)s at %(now:%H:%M)s" msgstr "Impresso em %(now:%Y, %b %d)s a %(now:%H:%M)s" -#: admin/views/reporting/users.py:112 reports/lists/users.py:135 +#: admin/views/reporting/users.py:112 reports/lists/users.py:137 msgid "Users List for {}" msgstr "Lista de usuários por {}" @@ -586,9 +608,11 @@ msgstr "Usuário LDAP" #: auths/ActiveDirectory_enterprise/Authenticator.py:39 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)" +"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:40 #: auths/ActiveDirectory_enterprise/Authenticator.py:58 @@ -688,7 +712,8 @@ msgstr "Servidor não parece um Active Directory (não tem objetos de grupo)" msgid "" "Server does not seem an Active Directory (it does not have any user nor " "groups)" -msgstr "Servidor não parece um Active Directory (não tem qualquer usuário nem grupos)" +msgstr "" +"Servidor não parece um Active Directory (não tem qualquer usuário nem grupos)" #: auths/ActiveDirectory_enterprise/Authenticator.py:496 #: auths/EDirectory_enterprise/Authenticator.py:360 @@ -752,14 +777,18 @@ msgstr "Base de pesquisa LDAP está incorreta" #: auths/EDirectory_enterprise/Authenticator.py:330 #: auths/RegexLdap/Authenticator.py:402 auths/SimpleLDAP/Authenticator.py:382 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)" +msgstr "" +"Classe de usuário LDAP parece ser incorreto (nenhum usuário encontrado por " +"essa classe)" #: auths/EDirectory_enterprise/Authenticator.py:338 #: auths/SimpleLDAP/Authenticator.py:398 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)" +msgstr "" +"Atributo de id de usuário LDAP parece ser incorreto (nenhum usuário " +"encontrado por isso atributo)" #: auths/EDirectory_enterprise/Authenticator.py:346 msgid "Expected group attribute " @@ -768,7 +797,9 @@ msgstr "Atributo esperado grupo " #: auths/EDirectory_enterprise/Authenticator.py:355 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?)" +msgstr "" +"LDAP usuário classe ou usuário id attr provavelmente está errado (Ldap é do " +"eDirectory?)" #: auths/IP/Authenticator.py:52 msgid "Accept proxy" @@ -776,9 +807,12 @@ msgstr "Aceitar o proxy" #: auths/IP/Authenticator.py:52 msgid "" -"If checked, requests via proxy will get FORWARDED ip address (take care with" -" this bein checked, can take internal IP addresses from internet)" -msgstr "Se verificado, solicitações via proxy irão obter o endereço de ip de encaminhadas (tome cuidado com esta sendo verificado, pode ter endereços IP internos de internet)" +"If checked, requests via proxy will get FORWARDED ip address (take care with " +"this bein checked, can take internal IP addresses from internet)" +msgstr "" +"Se verificado, solicitações via proxy irão obter o endereço de ip de " +"encaminhadas (tome cuidado com esta sendo verificado, pode ter endereços IP " +"internos de internet)" #: auths/IP/Authenticator.py:54 auths/IP/Authenticator.py:56 msgid "IP Authenticator" @@ -861,9 +895,10 @@ msgid "User Name Attr" msgstr "Usuário nome Attr" #: auths/RegexLdap/Authenticator.py:65 auths/SimpleLDAP/Authenticator.py:66 -msgid "" -"Attributes that contains the user name (list of comma separated values)" -msgstr "Atributos que contém o nome do usuário (lista de valores separados por vírgula)" +msgid "Attributes that contains the user name (list of comma separated values)" +msgstr "" +"Atributos que contém o nome do usuário (lista de valores separados por " +"vírgula)" #: auths/RegexLdap/Authenticator.py:66 msgid "Group Name Attr" @@ -885,13 +920,17 @@ msgstr "Autenticador de LDAP de expressões regular" msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" -msgstr "LDAP usuário id attr provavelmente está errado (não pode encontrar qualquer usuário com ambos condições)" +msgstr "" +"LDAP usuário id attr provavelmente está errado (não pode encontrar qualquer " +"usuário com ambos condições)" #: auths/RegexLdap/Authenticator.py:425 auths/SimpleLDAP/Authenticator.py:406 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" -msgstr "Atributo de id de grupo LDAP parece ser incorreto (nenhum grupo encontrado por isso atributo)" +msgstr "" +"Atributo de id de grupo LDAP parece ser incorreto (nenhum grupo encontrado " +"por isso atributo)" #: auths/SAML_enterprise/SAML.py:81 msgid "SAML Authenticator" @@ -913,7 +952,9 @@ msgstr "Chave privada" 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" +msgstr "" +"A chave privada usada para sinal e encription, conforme gerado em base 64 de " +"OpenSSL" #: auths/SAML_enterprise/SAML.py:123 transports/SPICE/BaseSPICETransport.py:83 msgid "Certificate" @@ -930,16 +971,19 @@ msgstr "Metadados do IDP" #: auths/SAML_enterprise/SAML.py:126 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)" +msgstr "" +"Você pode entrar aqui a URL ou os metadados do IDP ou os metadados em si " +"(xml)" #: auths/SAML_enterprise/SAML.py:128 msgid "Entity ID" msgstr "ID da entidade" #: auths/SAML_enterprise/SAML.py:129 -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" +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:131 msgid "User name attrs" @@ -967,9 +1011,11 @@ msgstr "Campos de onde extrair o verdadeiro nome" #: auths/SAML_enterprise/SAML.py:161 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--)" +"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:166 msgid "Invalid server certificate. " @@ -979,7 +1025,9 @@ msgstr "Certificado de servidor inválido. " 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--" +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:198 #, python-brace-format @@ -1066,23 +1114,31 @@ msgstr "Autenticador LDAP simples" #: auths/SimpleLDAP/Authenticator.py:390 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)" +msgstr "" +"Classe do grupo LDAP parece ser incorreto (nenhum grupo encontrado por essa " +"classe)" #: auths/SimpleLDAP/Authenticator.py:415 msgid "" "Ldap user class or user id attr is probably wrong (can't find any user with " "both conditions)" -msgstr "LDAP usuário classe ou usuário id attr provavelmente está errado (não pode encontrar qualquer usuário com ambas as condições)" +msgstr "" +"LDAP usuário classe ou usuário id attr provavelmente está errado (não pode " +"encontrar qualquer usuário com ambas as condições)" #: auths/SimpleLDAP/Authenticator.py:424 msgid "" "Ldap group class or group id attr is probably wrong (can't find any group " "with both conditions)" -msgstr "LDAP grupo classe ou grupo id attr provavelmente está errado (não consigo encontrar qualquer grupo com ambas as condições)" +msgstr "" +"LDAP grupo classe ou grupo id attr provavelmente está errado (não consigo " +"encontrar qualquer grupo com ambas as condições)" #: auths/SimpleLDAP/Authenticator.py:431 msgid "Can't locate any group with the membership attribute specified" -msgstr "Não é possível localizar qualquer grupo com o atributo de associação especificado" +msgstr "" +"Não é possível localizar qualquer grupo com o atributo de associação " +"especificado" #: core/BaseModule.py:200 msgid "No connection checking method is implemented." @@ -1119,23 +1175,26 @@ msgstr "Proibido" #: core/managers/PublicationManager.py:202 msgid "" "Already publishing. Wait for previous publication to finish and try again" -msgstr "Já a publicar. Aguardar publicação anterior terminar e tentar novamente" +msgstr "" +"Já a publicar. Aguardar publicação anterior terminar e tentar novamente" #: core/managers/PublicationManager.py:205 msgid "Service is in maintenance mode and new publications are not allowed" -msgstr "Serviço está em modo de manutenção e novas publicações não são permitidas" +msgstr "" +"Serviço está em modo de manutenção e novas publicações não são permitidas" -#: core/managers/PublicationManager.py:236 +#: core/managers/PublicationManager.py:238 msgid "Can't cancel non running publication" msgstr "Não posso cancelar a publicação não execução" -#: core/managers/PublicationManager.py:258 +#: core/managers/PublicationManager.py:260 msgid "Can't unpublish non usable publication" msgstr "Não é possível cancelar a publicação de publicação não utilizável" -#: core/managers/PublicationManager.py:261 +#: core/managers/PublicationManager.py:263 msgid "Can't unpublish publications with services in process" -msgstr "Não é possível cancelar a publicação de publicações com serviços em processo" +msgstr "" +"Não é possível cancelar a publicação de publicações com serviços em processo" #: core/managers/UserPrefsManager.py:285 msgid "Screen Size" @@ -1202,6 +1261,10 @@ msgstr "Relatório base" msgid "Base report" msgstr "Relatório base" +#: core/reports/tools/report.py:78 +msgid "Generated by UDS" +msgstr "Gerado por UDS" + #: core/services/BaseService.py:89 core/services/BaseService.py:101 msgid "Base Service" msgstr "Serviço base" @@ -1328,9 +1391,11 @@ msgstr "{0} contém caracteres inválidos" #: core/util/validators.py:114 msgid "" -"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-" -"XX:XX:XX:XX:XX:XX" -msgstr "Intervalo de mac inválido. Intervalo de Mac deve estar no formato XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:XX: XX" +"Invalid mac range. Mac range must be in format XX:XX:XX:XX:XX:XX-XX:XX:XX:XX:" +"XX:XX" +msgstr "" +"Intervalo de mac inválido. Intervalo de Mac deve estar no formato XX:XX:XX:" +"XX:XX:XX-XX:XX:XX:XX:XX: XX" #: dispatchers/wyse_enterprise/views.py:112 msgid "There are no authenticators available for login" @@ -1383,7 +1448,9 @@ msgstr "Transporte não encontrado" #: dispatchers/wyse_enterprise/views.py:289 #: 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." +msgstr "" +"Serviço não está pronto, neste momento. Por favor, tente novamente em " +"instantes." #: models/Permissions.py:80 msgid "Read" @@ -1405,7 +1472,9 @@ msgstr "Gerente de sistema operacional Linux" msgid "" "Os Manager to control linux virtual machines (basically renames machine and " "notify state)" -msgstr "Gerente de sistema operacional para controlar as máquinas virtuais linux (basicamente renomeia a máquina e Informe o estado)" +msgstr "" +"Gerente de sistema operacional para controlar as máquinas virtuais linux " +"(basicamente renomeia a máquina e Informe o estado)" #: osmanagers/LinuxOsManager/LinuxOsManager.py:59 #: osmanagers/WindowsOsManager/WindowsOsManager.py:50 @@ -1436,7 +1505,9 @@ msgstr "Tempo de Max.Idle" msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max idle time)." -msgstr "Tempo ocioso máximo (em segundos) antes da sessão é automaticatlly fechado para o usuário (< = 0 significa que nenhum tempo ocioso máximo)." +msgstr "" +"Tempo ocioso máximo (em segundos) antes da sessão é automaticatlly fechado " +"para o usuário (< = 0 significa que nenhum tempo ocioso máximo)." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:47 msgid "Linux Random Password OS Manager" @@ -1444,7 +1515,9 @@ msgstr "Gerenciador de sistema operacional Linux aleatória senha" #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:49 msgid "Os Manager to control linux machines, with user password set randomly." -msgstr "Gerente de sistema operacional para controle de máquinas em linux, com senha de usuário definida aleatoriamente." +msgstr "" +"Gerente de sistema operacional para controle de máquinas em linux, com senha " +"de usuário definida aleatoriamente." #: osmanagers/LinuxOsManager/LinuxRandomPassOsManager.py:53 #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 @@ -1464,29 +1537,48 @@ msgstr "Deve fornecer uma conta de usuário!!!" #: osmanagers/LinuxOsManager/__init__.py:49 msgid "" -"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python " -"2.7)" -msgstr "Ator UDS para Debian, Ubuntu,... Máquinas para Linux (requer python 2.7)" +"UDS Actor for Debian, Ubuntu, ... Linux machines (Requires python 2.7)" +msgstr "" +"Ator UDS para Debian, Ubuntu,... Máquinas para Linux (requer python 2.7)" #: osmanagers/LinuxOsManager/__init__.py:54 msgid "" "UDS Actor for Centos, Fedora, RH, ... Linux machines (Requires python " "2.7)" -msgstr "Ator UDS para Centos, Fedora, RH,... Linux máquinas (Requires python 2.7)" +msgstr "" +"Ator UDS para Centos, Fedora, RH,... Linux máquinas (Requires python " +"2.7)" #: osmanagers/LinuxOsManager/__init__.py:59 -msgid "" -"UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" -msgstr "Ator de UDS para openSUSE,... Máquinas para Linux (requer python 2.7)" +msgid "UDS Actor for openSUSE, ... Linux machines (Requires python 2.7)" +msgstr "" +"Ator de UDS para openSUSE,... Máquinas para Linux (requer python 2.7)" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:29 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 msgid "RDS OS Manager" msgstr "RDS OS Manager" -#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:31 +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:33 msgid "Os Manager to control RDS provided services" msgstr "Gerente de sistema operacional para controle RDS fornecido serviços" +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:40 +msgid "Max. session time" +msgstr "Max. tempo de sessão" + +#: osmanagers/RDSOsManager_enterprise/RDSOsManager.py:44 +msgid "" +"Maximum duration in hours for a session (0 means no limit). After this " +"period, session will be released." +msgstr "" +"Duração máxima de horas para uma sessão (0: não há limite). Depois disto " +"período, sessão será lançado." + +#: osmanagers/RDSOsManager_enterprise/__init__.py:49 +msgid "RDS UDS Actor (for remote apps on Windows Server 2012)" +msgstr "Ator de UDS RDS (para aplicativos remotos no Windows Server 2012)" + #: osmanagers/WindowsOsManager/WinDomainOsManager.py:28 msgid "Windows Domain OS Manager" msgstr "Gerenciador de domínio do Windows sistema operacional" @@ -1495,7 +1587,9 @@ msgstr "Gerenciador de domínio do Windows sistema operacional" msgid "" "Os Manager to control windows machines with domain. (Basically renames " "machine)" -msgstr "Gerente de sistema operacional para controlar máquinas windows com domínio. (Basicamente renomeia máquina)" +msgstr "" +"Gerente de sistema operacional para controlar máquinas windows com domínio. " +"(Basicamente renomeia máquina)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 @@ -1507,7 +1601,9 @@ msgstr "Domínio" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:34 msgid "Domain to join machines to (use FQDN form, Netbios name not allowed)" -msgstr "Domínio para juntar-se a máquinas para (use o formulário FQDN, nome Netbios não permitido)" +msgstr "" +"Domínio para juntar-se a máquinas para (use o formulário FQDN, nome Netbios " +"não permitido)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:35 msgid "Account with rights to add machines to domain" @@ -1525,7 +1621,9 @@ msgstr "UO" msgid "" "Organizational unit where to add machines in domain (check it before using " "it). i.e.: ou=My Machines,dc=mydomain,dc=local" -msgstr "Unidade organizacional onde adicionar máquinas no domínio (verifique isso antes de usar isso). ou seja: UO = My Machines, dc = mydomain, dc = local" +msgstr "" +"Unidade organizacional onde adicionar máquinas no domínio (verifique isso " +"antes de usar isso). ou seja: UO = My Machines, dc = mydomain, dc = local" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:46 msgid "Must provide a domain!" @@ -1556,7 +1654,9 @@ msgstr "Verifique o erro: {0}" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:148 #, python-brace-format msgid "Could not find server parameters (_ldap._tcp.{0} can't be resolved)" -msgstr "Não foi possível encontrar parâmetros de servidor (_ldap._tcp. {0} não pode ser resolvido)" +msgstr "" +"Não foi possível encontrar parâmetros de servidor (_ldap._tcp. {0} não pode " +"ser resolvido)" #: osmanagers/WindowsOsManager/WinDomainOsManager.py:157 msgid "Server check was successful" @@ -1593,7 +1693,9 @@ msgstr "Gerenciador de sistema operacional Windows aleatória senha" #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:28 msgid "" "Os Manager to control windows machines, with user password set randomly." -msgstr "Gerente de sistema operacional para controle de máquinas windows, com senha de usuário definida aleatoriamente." +msgstr "" +"Gerente de sistema operacional para controle de máquinas windows, com senha " +"de usuário definida aleatoriamente." #: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:33 msgid "Current (template) password of the user account" @@ -1611,13 +1713,17 @@ msgstr "Windows básico OS Manager" msgid "" "Os Manager to control windows machines without domain. (Basically renames " "machine)" -msgstr "Gerente de sistema operacional para controlar máquinas windows sem domínio. (Basicamente renomeia máquina)" +msgstr "" +"Gerente de sistema operacional para controlar máquinas windows sem domínio. " +"(Basicamente renomeia máquina)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:67 msgid "" "Maximum idle time (in seconds) before session is automaticatlly closed to " "the user (<= 0 means no max. idle time)" -msgstr "Tempo ocioso máximo (em segundos) antes da sessão é automaticatlly fechado para o usuário (< = 0 significa que nenhum tempo ocioso máx.)" +msgstr "" +"Tempo ocioso máximo (em segundos) antes da sessão é automaticatlly fechado " +"para o usuário (< = 0 significa que nenhum tempo ocioso máx.)" #: osmanagers/WindowsOsManager/WindowsOsManager.py:76 msgid "Length must be numeric!!" @@ -1631,64 +1737,103 @@ msgstr "Comprimento deve ser entre 1 e 6" msgid "UDS Actor for windows machines" msgstr "Ator de UDS para máquinas windows" -#: reports/lists/users.py:110 templates/uds/admin/tmpl/permissions_add.html:5 +#: reports/lists/base.py:42 +msgid "Lists" +msgstr "Listas de" + +#: reports/lists/users.py:84 reports/lists/users.py:161 +#| msgid "User" +msgid "User ID" +msgstr "ID de usuário" + +#: reports/lists/users.py:85 reports/lists/users.py:161 +#| msgid "Real name attrs" +msgid "Real Name" +msgstr "Nome real" + +#: reports/lists/users.py:112 templates/uds/admin/tmpl/permissions_add.html:5 #: templates/uds/admin/tmpl/pool_add_group.html:5 web/forms/LoginForm.py:77 msgid "Authenticator" msgstr "Autenticador" -#: reports/lists/users.py:112 +#: reports/lists/users.py:114 msgid "Authenticator from where to list users" msgstr "Autenticador de onde para os usuários da lista" -#: reports/lists/users.py:116 +#: reports/lists/users.py:118 msgid "Users list" msgstr "Lista de usuários" -#: reports/lists/users.py:117 +#: reports/lists/users.py:119 msgid "List users of platform" msgstr "Lista de usuários da plataforma" -#: reports/stats/login.py:135 +#: reports/stats/base.py:46 +msgid "Statistics" +msgstr "Estatísticas" + +#: reports/stats/login.py:77 reports/stats/login.py:103 +msgid "Users access by date" +msgstr "Acesso de usuários por data" + +#: reports/stats/login.py:83 +msgid "Users access by day of week" +msgstr "Acesso de usuários por dia da semana" + +#: reports/stats/login.py:89 +msgid "Users access by hour" +msgstr "Acesso de usuários por hora" + +#: reports/stats/login.py:105 reports/stats/login.py:372 +msgid "Date range" +msgstr "Intervalo de datas" + +#: reports/stats/login.py:125 reports/stats/login.py:357 msgid "Users access report by date" msgstr "Os usuários acessam o relatório por data" -#: reports/stats/login.py:136 +#: reports/stats/login.py:126 reports/stats/login.py:358 msgid "Report of user access to platform by date" msgstr "Relatório de acesso do usuário a plataforma por data" -#: reports/stats/login.py:142 +#: reports/stats/login.py:132 msgid "Starting date" msgstr "Data de início" -#: reports/stats/login.py:143 +#: reports/stats/login.py:133 msgid "starting date for report" msgstr "data inicial para o relatório" -#: reports/stats/login.py:150 +#: reports/stats/login.py:140 msgid "Finish date" msgstr "Data de término" -#: reports/stats/login.py:151 +#: reports/stats/login.py:141 msgid "finish date for report" msgstr "terminar a data para o relatório" -#: reports/stats/login.py:158 +#: reports/stats/login.py:148 msgid "Number of points" msgstr "Número de pontos" -#: reports/stats/login.py:162 +#: reports/stats/login.py:152 msgid "Number of sampling points used in charts" msgstr "Número de pontos de amostragem utilizados nas paradas" -#: reports/stats/login.py:258 -msgid "Users usage of UDS" -msgstr "Uso de usuários de UDS" +#: reports/stats/login.py:230 reports/stats/login.py:273 +#: reports/stats/login.py:287 reports/stats/login.py:312 +msgid "Users access to UDS" +msgstr "Acesso de usuários a UDS" -#: reports/stats/usage.py:44 +#: reports/stats/login.py:345 +msgid "User access to UDS" +msgstr "Acesso do usuário ao UDS" + +#: reports/stats/usage.py:45 msgid "Usage stats" msgstr "Estatísticas de uso" -#: reports/stats/usage.py:45 +#: reports/stats/usage.py:46 msgid "Statistics of platform use" msgstr "Estatísticas de utilização da plataforma" @@ -1698,9 +1843,9 @@ msgstr "Cluster Hyper-v ligada Clone (Experimental)" #: services/HyperV_enterprise/HyperVClusterLinkedService.py:55 #: services/HyperV_enterprise/HyperVLinkedService.py:59 -msgid "" -"Hyper Services based on templates and differential disks (experimental)" -msgstr "Hiper serviços baseados em modelos e discos diferenciais (experimentais)" +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:76 @@ -1709,7 +1854,9 @@ msgstr "Hiper serviços baseados em modelos e discos diferenciais (experimentais #: services/Vmware_enterprise/VCLinkedCloneService.py:39 #: services/Xen/XenLinkedService.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" +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:82 @@ -1745,9 +1892,10 @@ msgstr "Rede" #: services/HyperV_enterprise/HyperVLinkedService.py:102 #: services/Vmware_enterprise/VCLinkedCloneService.py:62 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" +"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:104 @@ -1829,7 +1977,9 @@ msgstr "Provedor de serviço de Cluster Hyper-v" #: services/HyperV_enterprise/HyperVClusterProvider.py:89 #: services/HyperV_enterprise/HyperVProvider.py:83 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)" +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:84 @@ -1871,13 +2021,13 @@ msgstr "O servidor selecionado não é um cluster" #: services/HyperV_enterprise/HyperVClusterProvider.py:299 #: services/HyperV_enterprise/HyperVProvider.py:255 -#: services/OVirt/OVirtProvider.py:414 services/Xen/XenProvider.py:392 +#: services/Xen/XenProvider.py:392 msgid "Connection test successful" msgstr "Teste de conexão bem sucedida" #: services/HyperV_enterprise/HyperVClusterProvider.py:300 #: services/HyperV_enterprise/HyperVProvider.py:256 -#: services/OVirt/OVirtProvider.py:415 +#: services/OVirt/OVirtProvider.py:419 #: services/Vmware_enterprise/ServiceProviderVC.py:123 msgid "Connection failed. Check connection params" msgstr "Falhado na conexão. Verifique a conexão params" @@ -1935,7 +2085,8 @@ msgstr "Domínio do armazenamento de dados" #: services/OVirt/OVirtLinkedService.py:116 msgid "Datastore domain where to publish and put incrementals" -msgstr "Armazenamento de dados domínio onde publicar e colocar backups incrementais" +msgstr "" +"Armazenamento de dados domínio onde publicar e colocar backups incrementais" #: services/OVirt/OVirtLinkedService.py:135 #: services/Xen/XenLinkedService.py:113 @@ -1977,7 +2128,8 @@ msgstr "oVirt Server IP ou nome do host" #: services/OVirt/OVirtProvider.py:97 msgid "User with valid privileges on oVirt, (use \"user@domain\" form)" -msgstr "Usuário com privilégios válidos no oVirt, (forma de \"user@domain\" de uso)" +msgstr "" +"Usuário com privilégios válidos no oVirt, (forma de \"user@domain\" de uso)" #: services/OVirt/OVirtProvider.py:98 msgid "Password of the user of oVirt" @@ -2029,9 +2181,9 @@ msgid "Default password for users in list mapping" msgstr "Senha padrão para os usuários em mapeamento da lista" #: services/RDS_enterprise/RDSProvider.py:59 -msgid "" -"Error: User {} on host {} is being used and cannot be removed right now" -msgstr "Erro: O usuário {} em {} host está sendo usado e não pode ser removido agora" +msgid "Error: User {} on host {} is being used and cannot be removed right now" +msgstr "" +"Erro: O usuário {} em {} host está sendo usado e não pode ser removido agora" #: services/RDS_enterprise/RDSProvider.py:89 #: services/Sample/SampleProvider.py:178 @@ -2208,7 +2360,9 @@ msgstr "Senha do usuário do VC" msgid "" "Range of valid 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 criadas. Deve estar lá dentro 00:50:56:00:00:00-00:50:56:3F:FF:FF" +msgstr "" +"Gama de macs válidos 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:40 msgid "VMWare Virtual Center Provider" @@ -2233,7 +2387,9 @@ msgstr "Base de clones vinculados da VMWare" #: services/Vmware_enterprise/VCLinkedCloneService.py:33 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" +msgstr "" +"Este serviço fornece acesso a máquinas de Clones vinculados em um Virtual " +"Center" #: services/Vmware_enterprise/VCLinkedCloneService.py:53 msgid "Datacenter" @@ -2317,7 +2473,8 @@ msgstr "Sombra memória multiplicador (overcommit de memória)" #: services/Xen/XenLinkedService.py:121 msgid "Length of numeric part for the names of this machines (beetwen 3 and 6" -msgstr "Comprimento da parte numérica para os nomes desta máquinas (beetwen 3 e 6" +msgstr "" +"Comprimento da parte numérica para os nomes desta máquinas (beetwen 3 e 6" #: services/Xen/XenProvider.py:79 msgid "Xenserver Platform Provider" @@ -2347,7 +2504,9 @@ msgstr "Verificar certificado" msgid "" "If selected, certificate will be checked against system valid certificate " "providers" -msgstr "Se selecionado, certificado será verificado contra certificado válido do sistema provedores" +msgstr "" +"Se selecionado, certificado será verificado contra certificado válido do " +"sistema provedores" #: services/Xen/XenProvider.py:394 #, python-brace-format @@ -2523,7 +2682,8 @@ msgstr "Selecione a imagem para fazer o upload" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:10 msgid "Name of the image. If left empty, will get the filename as name" -msgstr "Nome da imagem. Se deixado em branco, receberá o nome do arquivo como nome" +msgstr "" +"Nome da imagem. Se deixado em branco, receberá o nome do arquivo como nome" #: templates/uds/admin/tmpl/new_image.html:6 #: templates/uds/admin/tmpl/new_image.html:7 @@ -2590,13 +2750,22 @@ msgstr "Acesso completo" msgid "Transport" msgstr "Transporte" +#: templates/uds/admin/tmpl/publish.html:5 +msgid "reason of publication" +msgstr "motivo da publicação" + +#: templates/uds/admin/tmpl/publish.html:7 +msgid "Reason for publication (can be empty)" +msgstr "Razão para publicação (pode ser vazio)" + #: templates/uds/admin/tmpl/request_failed.html:4 msgid "Error on request" msgstr "Erro no pedido" #: templates/uds/admin/tmpl/request_failed.html:7 msgid "There was an error requesting data from server, please, try again" -msgstr "Houve um erro solicitando dados do servidor, por favor, tente novamente" +msgstr "" +"Houve um erro solicitando dados do servidor, por favor, tente novamente" #: templates/uds/admin/tmpl/request_failed.html:9 #: templates/uds/snippets/admin_user.html:8 @@ -2617,13 +2786,16 @@ msgstr "Você está acessando UDS administração como membro da equipe." #: templates/uds/admin/tmpl/restricted.html:33 msgid "This means that you have restricted access to assigned elements." -msgstr "Isto significa que você tenha restringido o acesso aos elementos atribuídos." +msgstr "" +"Isto significa que você tenha restringido o acesso aos elementos atribuídos." #: templates/uds/admin/tmpl/restricted.html:34 msgid "" "In order to increase your privileges, please contact your local UDS " "administrator." -msgstr "A fim de aumentar seus privilégios, entre em contato com seu local UDS administrador." +msgstr "" +"A fim de aumentar seus privilégios, entre em contato com seu local UDS " +"administrador." #: templates/uds/admin/tmpl/restricted.html:36 msgid "Thank you." @@ -2666,7 +2838,9 @@ msgstr "Downloads" #: templates/uds/downloads.html:11 templates/uds/html5/downloads.html:10 msgid "" "This page contains a list of downloadables provided by different modules" -msgstr "Esta página contém uma lista de downloadables fornecidos por diferentes módulos" +msgstr "" +"Esta página contém uma lista de downloadables fornecidos por diferentes " +"módulos" #: templates/uds/html5/about.html:13 msgid "You can access UDS Open Source code at" @@ -2679,7 +2853,9 @@ msgstr "UDS foi desenvolvido usando estes componentes:" #: templates/uds/html5/about.html:41 msgid "" "If you found that we missed to mention any component, please let us know" -msgstr "Se você achou que perdemos mencionar qualquer componente, por favor deixe-nos saber" +msgstr "" +"Se você achou que perdemos mencionar qualquer componente, por favor deixe-" +"nos saber" #: templates/uds/html5/about.html:42 #: templates/uds/html5/service_not_ready.html:21 @@ -2698,7 +2874,9 @@ msgstr "Download Plugin UDS para" msgid "" "In order to be able to execute UDS services, you need to have UDS plugin " "installed." -msgstr "A fim de ser capaz de executar serviços UDS, você precisa ter o plugin UDS instalado." +msgstr "" +"A fim de ser capaz de executar serviços UDS, você precisa ter o plugin UDS " +"instalado." #: templates/uds/html5/download_client.html:14 msgid "Or download another version" @@ -2708,7 +2886,9 @@ msgstr "Ou baixar outra versão" msgid "" "In case that your platform has been incorrectly detected, you can download " "manually the version required for your Operating System" -msgstr "No caso que sua plataforma foi detectada incorretamente, você pode baixar manualmente a versão necessária para seu sistema operacional" +msgstr "" +"No caso que sua plataforma foi detectada incorretamente, você pode baixar " +"manualmente a versão necessária para seu sistema operacional" #: templates/uds/html5/download_client.html:19 msgid "Linux UDS plugin" @@ -2726,7 +2906,9 @@ msgstr "Mac OSX (> 10.5) plugin UDS" msgid "" "If you already have UDS Plugin installed but this message persists to " "appear, you can disable automatic detection here" -msgstr "Se você já tiver instalado Plugin UDS mas essa mensagem persiste para aparecer, você pode desabilitar a detecção automática aqui" +msgstr "" +"Se você já tiver instalado Plugin UDS mas essa mensagem persiste para " +"aparecer, você pode desabilitar a detecção automática aqui" #: templates/uds/html5/download_client.html:39 msgid "Automatic plugin detection is enabled" @@ -2740,13 +2922,17 @@ msgstr "Aviso: Deteção automática do plugin está desativada." msgid "" "Please, note that disabling automatic detection will not trigger this page " "again in case you don't have the plugin installed." -msgstr "Por favor, note que desabilitar a deteção automática não dispararão nesta página novamente, caso você não tem o plugin instalado." +msgstr "" +"Por favor, note que desabilitar a deteção automática não dispararão nesta " +"página novamente, caso você não tem o plugin instalado." #: templates/uds/html5/download_client.html:45 msgid "" "In this case, you will have to manually download the plugin by using the " "menu on upper right corner." -msgstr "Neste caso, você terá que baixar manualmente o plugin usando o menu no canto superior direito." +msgstr "" +"Neste caso, você terá que baixar manualmente o plugin usando o menu no canto " +"superior direito." #: templates/uds/html5/download_client.html:47 msgid "Return" @@ -2850,13 +3036,17 @@ msgstr "O serviço não está pronto" msgid "" "The service is not ready at this moment. Please, try it again after a few " "seconds." -msgstr "O serviço, neste momento, não está pronto. Por favor, tente novamente depois de alguns segundos." +msgstr "" +"O serviço, neste momento, não está pronto. Por favor, tente novamente depois " +"de alguns segundos." #: templates/uds/html5/service_not_ready.html:18 msgid "" "The service you have requested was not ready, and it is being created right " "now. It will be availabe shortly" -msgstr "O serviço que você solicitou não estava pronto, e está sendo criado certo agora. Em breve será availabe" +msgstr "" +"O serviço que você solicitou não estava pronto, e está sendo criado certo " +"agora. Em breve será availabe" #: templates/uds/html5/service_not_ready.html:23 msgid "Please, close this window and relaunch again after a while." @@ -2889,7 +3079,9 @@ msgstr "Para relançar o serviço, você terá que fazê-lo de origem." msgid "" "If the service does not launchs automatically, probably you dont have the " "UDS plugin installed" -msgstr "Se o serviço não lança automaticamente, provavelmente você não tem o UDS plugin instalado" +msgstr "" +"Se o serviço não lança automaticamente, provavelmente você não tem o UDS " +"plugin instalado" #: templates/uds/html5/simpleLauncher.html:17 msgid "You can obtain it from the" @@ -2924,9 +3116,13 @@ msgstr "Preferências" #: templates/uds/html5/templates/base.html:60 msgid "" "Your browser is supported only partially. Please, upgrade it to a modern " -"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and" -" must also disable \"Compatibility View Mode\" for this site)" -msgstr "Seu navegador é suportado apenas parcialmente. Por favor, atualize-o para um moderno HTML5 navegador como o Firefox, Chrome, Opera,... (IE deve ser 10 ou melhor, e também deve desativar o \"Modo de exibição de compatibilidade\" para este site)" +"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better, and " +"must also disable \"Compatibility View Mode\" for this site)" +msgstr "" +"Seu navegador é suportado apenas parcialmente. Por favor, atualize-o para um " +"moderno HTML5 navegador como o Firefox, Chrome, Opera,... (IE deve ser 10 ou " +"melhor, e também deve desativar o \"Modo de exibição de compatibilidade\" " +"para este site)" #: templates/uds/html5/templates/base.html:108 msgid "We use cookies to track usage and preferences" @@ -2947,7 +3143,9 @@ msgstr "Java não encontrado" #: templates/uds/index.html:71 msgid "" "Java is not available on your browser, and the selected transport needs it." -msgstr "Java não está disponível em seu navegador, e o transporte selecionado precisa disso." +msgstr "" +"Java não está disponível em seu navegador, e o transporte selecionado " +"precisa disso." #: templates/uds/index.html:72 msgid "Please, install latest version from" @@ -3017,7 +3215,9 @@ msgstr "Servidor de túnel" msgid "" "Host of the tunnel server (use http/https & port if needed) as accesible " "from users" -msgstr "Host do servidor de túnel (uso de http/https & Porto se necessário) como accesible de usuários" +msgstr "" +"Host do servidor de túnel (uso de http/https & Porto se necessário) como " +"accesible de usuários" #: transports/HTML5RDP/HTML5RDP.py:69 transports/NX/NXTransport.py:65 #: transports/NX/TSNXTransport.py:72 transports/RDP/BaseRDPTransport.py:61 @@ -3043,7 +3243,8 @@ msgstr "Se marcada, as credenciais usadas para se conectar será vazio" #: transports/RGS_enterprise/TRGSTransport.py:53 #: transports/SPICE/BaseSPICETransport.py:72 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" +msgstr "" +"Se não for vazio, este nome de utilizador será sempre usado como credencial" #: transports/HTML5RDP/HTML5RDP.py:71 transports/NX/NXTransport.py:67 #: transports/NX/TSNXTransport.py:74 transports/RDP/BaseRDPTransport.py:63 @@ -3063,16 +3264,20 @@ msgstr "Sem domínio" msgid "" "If checked, the domain part will always be emptied (to connecto to xrdp for " "example is needed)" -msgstr "Se verificado, a parte de domínio sempre será esvaziada (para connecto para xrdp para exemplo é necessário)" +msgstr "" +"Se verificado, a parte de domínio sempre será esvaziada (para connecto para " +"xrdp para exemplo é necessário)" #: transports/HTML5RDP/HTML5RDP.py:73 transports/RDP/BaseRDPTransport.py:65 #: transports/RDS_enterprise/BaseRDSTransport.py:68 #: transports/RGS_enterprise/RGSTransport.py:47 #: transports/RGS_enterprise/TRGSTransport.py:55 msgid "" -"If not empty, this domain will be always used as credential (used as " -"DOMAIN\\user)" -msgstr "Se não for vazio, este domínio será sempre utilizado como credencial (usado como domínio\\User)" +"If not empty, this domain will be always used as credential (used as DOMAIN" +"\\user)" +msgstr "" +"Se não for vazio, este domínio será sempre utilizado como credencial (usado " +"como domínio\\User)" #: transports/HTML5RDP/HTML5RDP.py:74 msgid "Enable Audio" @@ -3082,7 +3287,9 @@ msgstr "Ativar o áudio" msgid "" "If checked, the audio will be redirected to client (if client browser " "supports it)" -msgstr "Se marcada, o áudio será redirecionado para o cliente (se o navegador cliente suporta)" +msgstr "" +"Se marcada, o áudio será redirecionado para o cliente (se o navegador " +"cliente suporta)" #: transports/HTML5RDP/HTML5RDP.py:75 msgid "Enable Printing" @@ -3092,7 +3299,9 @@ msgstr "Permitir a impressão" msgid "" "If checked, the printing will be redirected to client (if client browser " "supports it)" -msgstr "Se marcada, a impressão será redirecionado para o cliente (se o navegador cliente suporta)" +msgstr "" +"Se marcada, a impressão será redirecionado para o cliente (se o navegador " +"cliente suporta)" #: transports/HTML5RDP/HTML5RDP.py:81 msgid "The server must be http or https" @@ -3155,37 +3364,41 @@ msgid "NX Transport for tunneled connection" msgstr "Transporte de NX para ligação em túnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "Tunnel server" msgstr "Servidor de túnel" #: transports/NX/TSNXTransport.py:69 transports/RDP/TRDPTransport.py:69 -#: transports/RDS_enterprise/TRDSTransport.py:69 +#: transports/RDS_enterprise/TRDSTransport.py:67 #: transports/RGS_enterprise/TRGSTransport.py:49 #: transports/SPICE/TSPICETransport.py:65 msgid "" "IP or Hostname of tunnel server sent to client device (\"public\" ip) and " "port. (use HOST:PORT format)" -msgstr "IP ou nome do host do servidor de túnel, enviado para o dispositivo cliente (ip \"público\") e Port. (usar formato HOST: PORT)" +msgstr "" +"IP ou nome do host do servidor de túnel, enviado para o dispositivo cliente " +"(ip \"público\") e Port. (usar formato HOST: PORT)" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "Tunnel host check" msgstr "Seleção de anfitrião do túnel" #: transports/NX/TSNXTransport.py:70 transports/RDP/TRDPTransport.py:70 -#: transports/RDS_enterprise/TRDSTransport.py:70 +#: transports/RDS_enterprise/TRDSTransport.py:68 #: transports/RGS_enterprise/TRGSTransport.py:50 msgid "" -"If not empty, this server will be used to check if service is running before" -" assigning it to user. (use HOST:PORT format)" -msgstr "Se não for vazio, este servidor será usado para verificar se o serviço está sendo executado antes atribuí-la ao usuário. (usar formato HOST: PORT)" +"If not empty, this server will be used to check if service is running before " +"assigning it to user. (use HOST:PORT format)" +msgstr "" +"Se não for vazio, este servidor será usado para verificar se o serviço está " +"sendo executado antes atribuí-la ao usuário. (usar formato HOST: PORT)" #: transports/NX/TSNXTransport.py:113 transports/RDP/TRDPTransport.py:88 -#: transports/RDS_enterprise/TRDSTransport.py:83 +#: transports/RDS_enterprise/TRDSTransport.py:81 #: transports/RGS_enterprise/TRGSTransport.py:76 #: transports/SPICE/TSPICETransport.py:72 msgid "Must use HOST:PORT in Tunnel Server Field" @@ -3233,39 +3446,38 @@ msgstr "Permitir seriados" #: transports/RDP/BaseRDPTransport.py:69 #: transports/RDS_enterprise/BaseRDSTransport.py:72 msgid "If checked, this transport will allow the use of user serial ports" -msgstr "Se marcada, este transporte permitirá a utilização do usuário portas seriais" +msgstr "" +"Se marcada, este transporte permitirá a utilização do usuário portas seriais" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "Show wallpaper" msgstr "Mostrar o papel de parede" #: transports/RDP/BaseRDPTransport.py:70 -#: transports/RDS_enterprise/BaseRDSTransport.py:73 msgid "" "If checked, the wallpaper and themes will be shown on machine (better user " "experience, more bandwidth)" -msgstr "Se marcada, o papel de parede e temas serão mostrados máquina (usuário melhor experiência, mais largura de banda)" +msgstr "" +"Se marcada, o papel de parede e temas serão mostrados máquina (usuário " +"melhor experiência, mais largura de banda)" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "Multiple monitors" msgstr "Vários monitores" #: transports/RDP/BaseRDPTransport.py:71 -#: transports/RDS_enterprise/BaseRDSTransport.py:74 msgid "" "If checked, all client monitors will be used for displaying (only works on " "windows clients)" -msgstr "Se marcada, todos os monitores do cliente serão usados para exibição (só funciona no clientes do Windows)" +msgstr "" +"Se marcada, todos os monitores do cliente serão usados para exibição (só " +"funciona no clientes do Windows)" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "Allow Aero" msgstr "Permitir Aero" #: transports/RDP/BaseRDPTransport.py:72 -#: transports/RDS_enterprise/BaseRDSTransport.py:75 msgid "If checked, desktop composition will be allowed" msgstr "Se marcada, composição desktop será permitida" @@ -3343,7 +3555,9 @@ msgstr "Min. qualidade ajustável" 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." +msgstr "" +"A qualidade de imagem mais baixa aplicada às imagens para manter a " +"atualização mínima taxa." #: transports/RGS_enterprise/RGSTransport.py:54 #: transports/RGS_enterprise/TRGSTransport.py:62 @@ -3353,7 +3567,8 @@ msgstr "Taxa de Frame ajustável" #: transports/RGS_enterprise/RGSTransport.py:55 #: transports/RGS_enterprise/TRGSTransport.py:63 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" +msgstr "" +"Limite de taxa de atualização para começar a ajustar a qualidade da imagem" #: transports/RGS_enterprise/RGSTransport.py:56 #: transports/RGS_enterprise/TRGSTransport.py:64 @@ -3365,7 +3580,9 @@ msgstr "Resolução Local de partida" 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" +msgstr "" +"Alterar a resolução do remetente para coincidir com a resolução do receptor " +"quando Conectando-se" #: transports/RGS_enterprise/RGSTransport.py:58 #: transports/RGS_enterprise/TRGSTransport.py:66 @@ -3407,9 +3624,12 @@ msgstr "RGS transporte para ligação em túnel" #: transports/SPICE/BaseSPICETransport.py:84 msgid "" -"Server certificate (public), can be found on your ovirt engine, probably at " -"/etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." -msgstr "Certificado de servidor (público), podem ser encontradas no seu motor de ovirt, provavelmente em /etc/PKI/ovirt-Engine/certs/ca.der (Use o conteúdo desse arquivo)." +"Server certificate (public), can be found on your ovirt engine, probably at /" +"etc/pki/ovirt-engine/certs/ca.der (Use the contents of this file)." +msgstr "" +"Certificado de servidor (público), podem ser encontradas no seu motor de " +"ovirt, provavelmente em /etc/PKI/ovirt-Engine/certs/ca.der (Use o conteúdo " +"desse arquivo)." #: transports/SPICE/SPICETransport.py:52 msgid "RHEV/oVirt SPICE Transport (direct)" @@ -3435,11 +3655,14 @@ msgstr "Erro desconhecido" msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" -msgstr "Serviço inválido. O serviço não está disponível neste momento. Por favor, tente mais tarde" +msgstr "" +"Serviço inválido. O serviço não está disponível neste momento. Por favor, " +"tente mais tarde" #: web/errors.py:75 msgid "Maximum services limit reached. Please, contact administrator" -msgstr "Atingiu o limite máximo de serviços. Por favor, contate o administrador" +msgstr "" +"Atingiu o limite máximo de serviços. Por favor, contate o administrador" #: web/errors.py:76 msgid "You need to enable cookies to let this application work" @@ -3461,7 +3684,9 @@ msgstr "Pedido inválido recebido" msgid "" "Your browser is not supported. Please, upgrade it to a modern HTML5 browser " "like Firefox or Chrome" -msgstr "Seu navegador não é suportado. Por favor, faça o upgrade para um navegador moderno do HTML5 como o Firefox ou Chrome" +msgstr "" +"Seu navegador não é suportado. Por favor, faça o upgrade para um navegador " +"moderno do HTML5 como o Firefox ou Chrome" #: web/errors.py:82 msgid "The requested service is in maintenance mode" @@ -3471,7 +3696,9 @@ msgstr "O serviço solicitado está no modo de manutenção" msgid "" "The service is not ready.\n" "Please, try again in a few moments." -msgstr "O serviço não está pronto.\nPor favor, tente novamente em alguns instantes." +msgstr "" +"O serviço não está pronto.\n" +"Por favor, tente novamente em alguns instantes." #: web/forms/LoginForm.py:54 msgid "Select authenticator" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.mo index f30c3a4cd9feaf60c3a3028e1cf671cdf25f08eb..9b217b0e1ed3783a96640383799643dec415e7ba 100644 GIT binary patch delta 3907 zcmYk;2~bs49LMpaBAcSJ1X`j`P(VNkvgH zx6}}4+{TnNDf>_UGM z?eVX%3Hw)lI>!7)qd5m2A%7+`)EG@Z26bXGs-sN1pM@G=HU{G)REK%iLezv-p{_4S zRq8Odz!RuSUBW2(H$TwO1^4U;f!tj)jlmd9xBH_|=gq>Wa3yNy6{wjXL=EJq-TxFR zqWKcl;T2RRZlEgr03FRVfIZqK9Cd>@?2W0Y3kt9U7Ncf#5(Dr&sxseMt5FraX7~R< z-T$6FUW*z?6K<+C6cNGm*NvKUKr`^5W*BeniTs(NeCUE{sKquDDV8ZjmG)ihCe#3T zqB^d$o<hMd1Nc^JAsF>+V^IT3MxEEye&5qN95vv4)I?UG zI$nz^{T9?SKY$5%4n24qwTPQKT&>q75%ro3!tOX7+v9HZ;zjI)^`newhhEh8BTyYI zL9Lao$f@QG@@J~~(7g#i&ZGK~3D~Dfij^W2i@R7B!G>tiPb{{}??O%BWlE{rA$)fo#+bXQMiDtjkf0tQa+rb*S^o zkb9Z^s0n66K&e%0(@*0@O1tLd|Rg zYB82uD^QPaFX|DTLp|%8r~!uZu4;gZsKuFO&Blg$|HrF=lTjm^fm)1n?fyK}j2-kn z0@MIXaC<#tHeww6-J;#=$D#&08MO%WQKesm>SsM_4QxS2H#|e54SsIDiJDO`4@eip zqkbPcqDtHgHKV?$l1{)hEI{4(Fft}{302uUs0#jtnxJXzRwA%9^;e0bIG`J~N6oaC zbs(zak;t_s7d4YLsKvPhb^Q_4M9$jd7f_G#I_iFRQ3I$&RV2vcPOyc?aXU!kfWGL9 z>L3R-^O?vsW-d|`Q;Mq05#;fji_!IffFg2)(G-IXp$5>RU^RPFrMs@HlY7zg4y6^9(M|TfZu^QB) zaT@c$)Ilg}=B-d8PDP!NiMlWg^`7@f-YAn}or78n#i;XlqgMHTR7WRJ1G#{jaW!gy zKOy}%<~|MG_%UjR!EN0Ncu*&1ps!=}V?PH~;<2bo6rxJI7B$cfsI{^kRhdsv1H6h_ zeD_fUsljG?|NYy!t2PRs=8FtW!UE*aRPfOWzq0!^sPjB=?s;RdGyAJh=bgk3cng`6 ziHdj4K&_>5s0lb2N&lvdhDLrARe{sUpSfg@|Bbr9FTtHr45}hMQIBi@2H*tiRO>9% z+M185R1xZ}D8oRkL`OG1Nkd*imFyuVVpx0kADK+l{uI;=*P%MxWj%lm*{?zk?1c3T z)LOZWy6+v-T5H73REg$^)ZarR-5$t6t^WC_6HBc-Fp&L2sDU0s4dgQFcjH%7!H5eM)s3NWHnhxeE`uNFj4bFH*N@(QPMs z1bSTgWGLxK){vz{+gvh;JV#XSJ|!t3;m&YcIizmeLPHN{40)c^Cwjl)$tFVS%{-#* zkc)W(r;%sK5~63KZ4uc`R*`{ZFo`2|+hliQ?y9LfIF-gnc4sz@Cez6gqE+=V`TthJ z&S5gn9&BvYug>daC0RxaNGGEI1Ze9^7O1doX$&J3MBCeBpRZ+1x%EBN%Nk6IiB^@i zT`s==B=)EMrrp;ntR#9p#*_C+KaxgXAY+Mdqkr=f(T}vY0i-o~mUJKoNgnYdUZQOR z>FsOre{Fn`q}%-lSB;KM3i=nLo>uSx delta 3999 zcmZA332;@_9mnwlgpd%d>>^tpl7IvvA(djH0+3^h8d~Xx@J8P*bb7u~%I>UlgDUqUPOE}p~l!$<6RLoTg)K>{6VIi81A@pv(M-D>QEP3Xvv zpd)`4?Z^x9_ykha@L%+SAEK4`6s>F?A1Ozg&kpCpP_%*3I1Ve(8`k15d;}fQ%h&-= zqLq0kdJ3)JX*>tBxY_UfqR$zCeqW4sXmoex-^DbJ6E-*r9Z3~B(&^D8@)Pdl!|OMr zi*6fIys!r?@srV`nC>Y0;FHn!(GGluR=8si>Tg2{jx6N`*cL~jYoZ*T-G1fA<%ysLJk0_{LGx;U>_-~W~D_&ThOZbawm zA#^eBipRUr5%0tF6rdew#qDkQ1%rb)p4%^T|Gj8OH=>KM2`&A8^m)%>%0+OD9UJ@r z2jHjCUd)RlDo1aaj{ctb1zO@o=!kAYOS%q!gw1HX|3Uf`+T~{|n~zqo03BdSKJ~X0 z7jeQ8PedD(YCB8E7A}7-4Tk=4v)o3oQjruJC4IYqYrQ%T*RHx zcKe`HHvp|zs)!v+dI`GvuR$L)3$4IHwCAhh_iNAw)}inFX5@_v&C#dPHSuq>y))<( ze}+CVry$dz-pIgHp^zPWIs$!A1=?^WI?@?vCF;@Z8sqnyF^l77wA6diiX1~r{2JQP zH_-u}LMwDuVWxvaF#Y~lu;Ua=MyFsJ(%CQvFTq9}iq9iI;WQt^@!Ua~2{-yn9uqPkF(JFv{EN9XuG3}n12^rH79(%=3)XH;&C%N_eas|-iUsPcKA!Q!`al` zjufC39Eq--Dd>H**beKXi;)*AEE`JwSr=gwCul1?i3xlMeUCd1%dFbL(K5{9d?jXM z721*M@%${b5_RZeU5Hj^-SEhU|aG#@(`Iy9w%$bMB*#e zLQ2UFQctFlCx{(;)j*6N?XZHay@Z-!1sS(W;^v&rNbhA9-rel) zj>kLkQu4!i?5pNBiQGk8i2uJe#uK+ki*e)kFLM6pkU``MatFDGbRw=$x55lz3XYBY z@>txrjcswi0Dl|zef54xE+^yTxk~&oDT~Lc>)7#~Y$6Hr6VioDAT`8oA=yg~kXlki z++68y*N}WN*8{d@vY+fD-N-ufQ}Q5jJ4h}j!=3+&*eM|uq!$@OIuqYxxBE#IxtdHT z-)`5k^GH1KU3Z(EA^mTcyFZV|lcW9}7)>_B<8(KwIhaQVliNr+8A(wQvWGMf zx9#NNmiA}Aoz=5uX>#_wM6zyKV$sst1@mXuESX=Q9Mke{x6eD|l#EP_C@sHm)Q0!_ wB+>^Z\n" -"Language-Team: Portuguese (http://www.transifex.com/projects/p/openuds/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/projects/p/openuds/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/adm/js/dataTables.bootstrap.js:6 static/tmp_js/gui.js:19 @@ -414,123 +415,120 @@ msgstr "Exclua o provedor de serviços" msgid "Services Provider deletion error" msgstr "Erro de exclusão do provedor de serviços" -#: static/tmp_js/gui-d-servicespools.js:133 +#: static/tmp_js/gui-d-servicespools.js:134 msgid "error" msgstr "erro" -#: static/tmp_js/gui-d-servicespools.js:165 +#: static/tmp_js/gui-d-servicespools.js:166 msgid "Remove Cache element" msgstr "Remover o elemento de Cache" -#: static/tmp_js/gui-d-servicespools.js:165 -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:166 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Deletion error" msgstr "Erro de exclusão" -#: static/tmp_js/gui-d-servicespools.js:186 +#: static/tmp_js/gui-d-servicespools.js:187 msgid "Add group" msgstr "Adicionar grupo" -#: static/tmp_js/gui-d-servicespools.js:209 +#: static/tmp_js/gui-d-servicespools.js:210 msgid "You must provide authenticator and group" msgstr "Você deve fornecer o autenticador e grupo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Remove group" msgstr "Remover grupo" -#: static/tmp_js/gui-d-servicespools.js:223 +#: static/tmp_js/gui-d-servicespools.js:224 msgid "Group removal error" msgstr "Erro de remoção do grupo" -#: static/tmp_js/gui-d-servicespools.js:247 +#: static/tmp_js/gui-d-servicespools.js:248 msgid "Yes" msgstr "Sim" -#: static/tmp_js/gui-d-servicespools.js:249 +#: static/tmp_js/gui-d-servicespools.js:250 msgid "No" msgstr "Não" -#: static/tmp_js/gui-d-servicespools.js:265 +#: static/tmp_js/gui-d-servicespools.js:266 msgid "Remove Assigned service" msgstr "Remover o serviço atribuído" -#: static/tmp_js/gui-d-servicespools.js:288 +#: static/tmp_js/gui-d-servicespools.js:289 msgid "Add transport" msgstr "Adicionar transporte" -#: static/tmp_js/gui-d-servicespools.js:295 +#: static/tmp_js/gui-d-servicespools.js:296 msgid "You must provide a transport" msgstr "Você deve fornecer um transporte" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Remove transport" msgstr "Remover o transporte" -#: static/tmp_js/gui-d-servicespools.js:309 +#: static/tmp_js/gui-d-servicespools.js:310 msgid "Transport removal error" msgstr "Erro de remoção de transporte" -#: static/tmp_js/gui-d-servicespools.js:333 -#: static/tmp_js/gui-d-servicespools.js:352 +#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:355 msgid "Cancel" msgstr "Cancelar" -#: static/tmp_js/gui-d-servicespools.js:336 -#: static/tmp_js/gui-d-servicespools.js:362 +#: static/tmp_js/gui-d-servicespools.js:339 +#: static/tmp_js/gui-d-servicespools.js:368 +#: static/tmp_js/gui-d-servicespools.js:369 msgid "Publish" msgstr "Publicar" -#: static/tmp_js/gui-d-servicespools.js:336 +#: static/tmp_js/gui-d-servicespools.js:339 msgid "Cancel publication" msgstr "Cancelar a publicação" -#: static/tmp_js/gui-d-servicespools.js:350 +#: static/tmp_js/gui-d-servicespools.js:353 msgid "Force Cancel" msgstr "Força cancelar" -#: static/tmp_js/gui-d-servicespools.js:362 -msgid "Launch new publication?" -msgstr "Lançamento nova publicação?" - -#: static/tmp_js/gui-d-servicespools.js:366 +#: static/tmp_js/gui-d-servicespools.js:379 msgid "Failed creating publication" msgstr "Não conseguiu criar publicação" -#: static/tmp_js/gui-d-servicespools.js:390 +#: static/tmp_js/gui-d-servicespools.js:415 msgid "Restrained" msgstr "Contido" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "New service pool" msgstr "Novo pool de serviço" -#: static/tmp_js/gui-d-servicespools.js:399 +#: static/tmp_js/gui-d-servicespools.js:424 msgid "creation error" msgstr "erro de criação" -#: static/tmp_js/gui-d-servicespools.js:408 +#: static/tmp_js/gui-d-servicespools.js:433 msgid "Publish on creation" msgstr "Publicar na criação" -#: static/tmp_js/gui-d-servicespools.js:409 +#: static/tmp_js/gui-d-servicespools.js:434 msgid "If selected, will initiate the publication inmediatly after creation" msgstr "Se selecionado, irá iniciar a publicação imediatamente após a criação" -#: static/tmp_js/gui-d-servicespools.js:421 static/tmp_js/gui.js:40 +#: static/tmp_js/gui-d-servicespools.js:446 static/tmp_js/gui.js:40 msgid "Edit" msgstr "Editar" -#: static/tmp_js/gui-d-servicespools.js:421 +#: static/tmp_js/gui-d-servicespools.js:446 msgid "saving error" msgstr "salvando o erro" -#: static/tmp_js/gui-d-servicespools.js:422 static/tmp_js/gui.js:44 +#: static/tmp_js/gui-d-servicespools.js:447 static/tmp_js/gui.js:44 #: static/tmp_js/gui.js:368 msgid "Delete" msgstr "Excluir" -#: static/tmp_js/gui-d-servicespools.js:422 +#: static/tmp_js/gui-d-servicespools.js:447 msgid "deletion error" msgstr "erro de exclusão" diff --git a/server/src/uds/reports/__init__.py b/server/src/uds/reports/__init__.py index 45fb6576..baf3e076 100644 --- a/server/src/uds/reports/__init__.py +++ b/server/src/uds/reports/__init__.py @@ -39,6 +39,13 @@ The registration of modules is done locating subclases of :py:class:`uds.core.au .. moduleauthor:: Adolfo Gómez, dkmaster at dkmon dot com ''' +from __future__ import unicode_literals +import logging + +logger = logging.getLogger(__name__) + +__updated__ = '2015-06-21' + availableReports = [] @@ -55,18 +62,18 @@ def __init__(): def addReportCls(cls): availableReports.append(cls) + def recursiveAdd(p): + if p.generate != reports.Report.generate: + addReportCls(p) + + for c in p.__subclasses__(): + recursiveAdd(c) + # Dinamycally import children of this package. The __init__.py files must import classes pkgpath = os.path.dirname(sys.modules[__name__].__file__) for _, name, _ in pkgutil.iter_modules([pkgpath]): __import__(name, globals(), locals(), []) - p = reports.Report - for cls in p.__subclasses__(): - clsSubCls = cls.__subclasses__() - if len(clsSubCls) == 0: - addReportCls(cls) - else: - for l2 in clsSubCls: - addReportCls(l2) + recursiveAdd(reports.Report) __init__() diff --git a/server/src/uds/reports/lists/__init__.py b/server/src/uds/reports/lists/__init__.py index b1713534..32b8590e 100644 --- a/server/src/uds/reports/lists/__init__.py +++ b/server/src/uds/reports/lists/__init__.py @@ -31,4 +31,4 @@ @author: Adolfo Gómez, dkmaster at dkmon dot com ''' -from .users import ListReportUsers +from .users import ListReportUsers, ListReportsUsersCSV diff --git a/server/src/uds/reports/lists/base.py b/server/src/uds/reports/lists/base.py index 6f458c20..7d5b807a 100644 --- a/server/src/uds/reports/lists/base.py +++ b/server/src/uds/reports/lists/base.py @@ -33,10 +33,10 @@ from __future__ import unicode_literals from uds.core import reports +from django.utils.translation import ugettext_noop as _ - -__updated__ = '2015-04-28' +__updated__ = '2015-06-21' class ListReport(reports.Report): - group = 'Lists' # So we can make submenus with reports + group = _('Lists') # So we can make submenus with reports diff --git a/server/src/uds/reports/lists/users.py b/server/src/uds/reports/lists/users.py index c69a6869..a6b007b8 100644 --- a/server/src/uds/reports/lists/users.py +++ b/server/src/uds/reports/lists/users.py @@ -32,26 +32,28 @@ ''' from __future__ import unicode_literals -from django.utils.translation import ugettext, ugettext_noop as _ +from django.utils.translation import ugettext, ugettext_lazy as _ from uds.core.ui.UserInterface import gui from uds.core.reports import stock from uds.models import Authenticator + import StringIO +import csv from .base import ListReport -from uds.core.util import tools from geraldo.generators.pdf import PDFGenerator from geraldo import Report, landscape, ReportBand, ObjectValue, SystemField, BAND_WIDTH, Label, Image from reportlab.lib.pagesizes import A4 from reportlab.lib.units import cm from reportlab.lib.enums import TA_RIGHT, TA_CENTER + import logging logger = logging.getLogger(__name__) -__updated__ = '2015-05-03' +__updated__ = '2015-06-21' class UsersReport(Report): @@ -68,9 +70,9 @@ class UsersReport(Report): class band_detail(ReportBand): height = 0.5 * cm elements = ( - ObjectValue(attribute_name='name', left=0.5 * cm), - ObjectValue(attribute_name='real_name', left=3 * cm), - ObjectValue(attribute_name='last_access', left=7 * cm), + ObjectValue(attribute_name='name', left=0.5 * cm, style={'fontName': 'Helvetica', 'fontSize': 8}), + ObjectValue(attribute_name='real_name', left=6 * cm, style={'fontName': 'Helvetica', 'fontSize': 8}), + ObjectValue(attribute_name='last_access', left=15 * cm, style={'fontName': 'Helvetica', 'fontSize': 8}), ) class band_page_header(ReportBand): @@ -79,9 +81,9 @@ class UsersReport(Report): SystemField(expression='%(report_title)s', top=0.5 * cm, left=0, width=BAND_WIDTH, style={'fontName': 'Helvetica-Bold', 'fontSize': 14, 'alignment': TA_CENTER}), - Label(text="User ID", top=1.5 * cm, left=0.5 * cm), - Label(text="Real Name", top=1.5 * cm, left=3 * cm), - Label(text="Last access", top=1.5 * cm, left=7 * cm), + Label(text=_('User ID'), top=1.5 * cm, left=0.5 * cm), + Label(text=_('Real Name'), top=1.5 * cm, left=6 * cm), + Label(text=_('Last access'), top=1.5 * cm, left=15 * cm), SystemField(expression=_('Page %(page_number)d of %(page_count)d'), top=0.1 * cm, width=BAND_WIDTH, style={'alignment': TA_RIGHT}), Image(filename=stock.getStockImagePath(stock.LOGO), left=0.1 * cm, top=0.0 * cm, width=2 * cm, height=2 * cm), @@ -135,3 +137,33 @@ class ListReportUsers(ListReport): report.title = _('Users List for {}').format(auth.name) report.generate_by(PDFGenerator, filename=output) return output.getvalue() + + +class ListReportsUsersCSV(ListReportUsers): + filename = 'users.csv' + mime_type = 'text/csv' + encoded = False + + uuid = '5da93a76-1849-11e5-ac1a-10feed05884b' + + authenticator = ListReportUsers.authenticator + + def initialize(self, values): + if values: + auth = Authenticator.objects.get(uuid=self.authenticator.value) + self.filename = auth.name + '.csv' + + def generate(self): + output = StringIO.StringIO() + writer = csv.writer(output) + auth = Authenticator.objects.get(uuid=self.authenticator.value) + users = auth.users.order_by('name') + + writer.writerow([ugettext('User ID'), ugettext('Real Name'), ugettext('Last access')]) + + for v in users: + writer.writerow([v.name, v.real_name, v.last_access]) + + writer.writerow(['ñoño', 'ádios', 'hola']) + + return output.getvalue() diff --git a/server/src/uds/reports/stats/__init__.py b/server/src/uds/reports/stats/__init__.py index e5136688..7193d7e3 100644 --- a/server/src/uds/reports/stats/__init__.py +++ b/server/src/uds/reports/stats/__init__.py @@ -32,4 +32,4 @@ ''' from .usage import StatsReportUsage -from .login import StatsReportLogin +from .login import StatsReportLogin, StatsReportLoginCSV diff --git a/server/src/uds/reports/stats/base.py b/server/src/uds/reports/stats/base.py index 2a7923fd..b777e69e 100644 --- a/server/src/uds/reports/stats/base.py +++ b/server/src/uds/reports/stats/base.py @@ -32,11 +32,15 @@ ''' from __future__ import unicode_literals +from django.utils.translation import ugettext_noop as _ from uds.core import reports -__updated__ = '2015-04-28' +__updated__ = '2015-06-21' class StatsReport(reports.Report): - group = 'Statistics' # So we can make submenus with reports + ''' + Base report por stats reports + ''' + group = _('Statistics') # So we can make submenus with reports diff --git a/server/src/uds/reports/stats/login.py b/server/src/uds/reports/stats/login.py index 6117ce40..eca48f8c 100644 --- a/server/src/uds/reports/stats/login.py +++ b/server/src/uds/reports/stats/login.py @@ -33,16 +33,14 @@ from __future__ import unicode_literals from django.utils.translation import ugettext, ugettext_lazy as _ -from django.utils import formats import django.template.defaultfilters as filters from uds.core.ui.UserInterface import gui -from uds.core.reports import stock from uds.core.reports.tools import UDSImage, UDSGeraldoReport -from uds.models import StatsEvents from uds.core.util.stats import events import StringIO +import csv import cairo import pycha.line @@ -52,11 +50,9 @@ from .base import StatsReport from uds.core.util import tools from geraldo.generators.pdf import PDFGenerator -from geraldo import Report, landscape, ReportBand, ObjectValue, SystemField, BAND_WIDTH, Label, SubReport, Rect -from reportlab.lib.pagesizes import A4 +from geraldo import ReportBand, ObjectValue, BAND_WIDTH, Label, SubReport from reportlab.lib.units import cm, mm from reportlab.lib.enums import TA_RIGHT, TA_CENTER -from reportlab.lib import colors from PIL import Image as PILImage import datetime @@ -75,8 +71,8 @@ GERALDO_HEIGHT = GERALDO_WIDTH * HEIGHT / WIDTH class AccessReport(UDSGeraldoReport): class band_detail(ReportBand): - height = 10 * cm - auto_expand_height = True + height = 400 * mm # Height bigger than a page, so a new page is launched + # auto_expand_height = True elements = ( Label(text=_('Users access by date'), top=0.6 * cm, left=0, width=BAND_WIDTH, style={'fontName': 'Helvetica-Bold', 'fontSize': 10, 'alignment': TA_CENTER}), @@ -101,18 +97,23 @@ class AccessReport(UDSGeraldoReport): SubReport( queryset_string='%(object)s["data"]', band_header=ReportBand( - height=2.5 * cm, + height=1 * cm, + auto_expand_height=True, elements=( - Label(text='Date range', top=2.0 * cm, left=4.2 * cm, style={'fontName': 'Helvetica-Bold'}), - Label(text='Users', top=2.0 * cm, left=10 * cm, style={'fontName': 'Helvetica-Bold'}), + Label(text=_('Users access by date'), top=0.2 * cm, left=0, width=BAND_WIDTH, + style={'fontName': 'Helvetica-Bold', 'fontSize': 12, 'alignment': TA_CENTER}), + Label(text=_('Date range'), top=1.0 * cm, left=1.2 * cm, + style={'fontName': 'Helvetica-Bold', 'fontSize': 10}), + Label(text=_('Users'), top=1.0 * cm, left=14 * cm, + style={'fontName': 'Helvetica-Bold', 'fontSize': 10}), ), - borders={'bottom': True} + # borders={'bottom': True} ), band_detail=ReportBand( height=0.5 * cm, elements=( - ObjectValue(attribute_name='date', top=0, left=4.2 * cm), - ObjectValue(attribute_name='users', top=0, left=10 * cm), + ObjectValue(attribute_name='date', top=0, left=1.2 * cm, width=12 * cm, style={'fontName': 'Helvetica', 'fontSize': 9}), + ObjectValue(attribute_name='users', top=0, left=14 * cm, style={'fontName': 'Helvetica', 'fontSize': 9}), ) ), ) @@ -158,15 +159,7 @@ class StatsReportLogin(StatsReport): def initGui(self): pass - def generate(self): - # Sample query: - # 'SELECT *, count(*) as number, CEIL(stamp/(3600))*3600 as block' - # ' FROM {table}' - # ' WHERE event_type = 0 and stamp >= {start} and stamp <= {end}' - # ' GROUP BY CEIL(stamp/(3600))' - # ' ORDER BY block' - - # Generate the sampling intervals and get data from db + def getRangeData(self): start = self.startDate.stamp() end = self.endDate.stamp() samplingPoints = self.samplingPoints.num() @@ -177,9 +170,6 @@ class StatsReportLogin(StatsReport): else: xLabelFormat = 'SHORT_DATETIME_FORMAT' - # - # User access by date graph - # samplingIntervals = [] prevVal = None for val in range(start, end, (end - start) / (samplingPoints + 1)): @@ -197,11 +187,44 @@ class StatsReportLogin(StatsReport): data.append((key, val)) # @UndefinedVariable reportData.append( { - 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1]), + 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1], xLabelFormat), 'users': val } ) + return (xLabelFormat, data, reportData) + + def getWeekHourlyData(self): + start = self.startDate.stamp() + end = self.endDate.stamp() + + dataWeek = [0] * 7 + dataHour = [0] * 24 + for val in events.statsManager().getEvents(events.OT_AUTHENTICATOR, events.ET_LOGIN, since=start, to=end): + s = datetime.datetime.fromtimestamp(val.stamp) + dataWeek[s.weekday()] += 1 + dataHour[s.hour] += 1 + + return (dataWeek, dataHour) + + def generate(self): + # Sample query: + # 'SELECT *, count(*) as number, CEIL(stamp/(3600))*3600 as block' + # ' FROM {table}' + # ' WHERE event_type = 0 and stamp >= {start} and stamp <= {end}' + # ' GROUP BY CEIL(stamp/(3600))' + # ' ORDER BY block' + + # Generate the sampling intervals and get data from db + start = self.startDate.stamp() + end = self.endDate.stamp() + + xLabelFormat, data, reportData = self.getRangeData() + + # + # User access by date graph + # + surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT) dataset = ((ugettext('Users access to UDS'), data),) @@ -259,12 +282,7 @@ class StatsReportLogin(StatsReport): # # User access by day of week # - dataWeek = [0] * 7 - dataHour = [0] * 24 - for val in events.statsManager().getEvents(events.OT_AUTHENTICATOR, events.ET_LOGIN, since=start, to=end): - s = datetime.datetime.fromtimestamp(val.stamp) - dataWeek[s.weekday()] += 1 - dataHour[s.hour] += 1 + dataWeek, dataHour = self.getWeekHourlyData() dataset = ((ugettext('Users access to UDS'), [(i, dataWeek[i]) for i in range(0, 7)]),) @@ -331,3 +349,30 @@ class StatsReportLogin(StatsReport): except Exception: logger.exception('Errool') return None + + +class StatsReportLoginCSV(StatsReportLogin): + filename = 'access.csv' + mime_type = 'text/csv' # Report returns pdfs by default, but could be anything else + name = _('Users access report by date') # Report name + description = _('Report of user access to platform by date') # Report description + uuid = '765b5580-1840-11e5-8137-10feed05884b' + encoded = False + + # Input fields + startDate = StatsReportLogin.startDate + endDate = StatsReportLogin.endDate + samplingPoints = StatsReportLogin.samplingPoints + + def generate(self): + output = StringIO.StringIO() + writer = csv.writer(output) + + reportData = self.getRangeData()[2] + + writer.writerow([ugettext('Date range'), ugettext('Users')]) + + for v in reportData: + writer.writerow([v['date'], v['users']]) + + return output.getvalue() diff --git a/server/src/uds/static/adm/js/gui-d-reports.coffee b/server/src/uds/static/adm/js/gui-d-reports.coffee index 62b306e7..3d19e307 100644 --- a/server/src/uds/static/adm/js/gui-d-reports.coffee +++ b/server/src/uds/static/adm/js/gui-d-reports.coffee @@ -38,7 +38,10 @@ gui.reports.link = (event) -> api.reports.save fields, ((data) -> # Success on put closeFnc() gui.doLog data - content = base64.decode(data.data) + if data.encoded + content = base64.decode(data.data) + else + content = data.data setTimeout( (()-> saveAs( new Blob([content],