1
0
mirror of https://github.com/dkmstr/openuds.git synced 2024-12-22 13:34:04 +03:00

* Added form validations (more work will be needed probably for numerics for example)

This commit is contained in:
Adolfo Gómez 2013-11-23 22:39:07 +00:00
parent b7bfecf87c
commit a52e8dc548
44 changed files with 2749 additions and 723 deletions

View File

@ -22,10 +22,6 @@ ADMINS = (
MANAGERS = ADMINS
# Compressor settings (for css/js)
COMPRESS_ENABLED = True
COMPRESS_OUTPUT_DIR = 'cache'
#USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https') # For testing begind a reverse proxy
@ -46,7 +42,6 @@ DATABASES = {
}
}
#DB_SECTION_END
ALLOWED_HOSTS = '*'
# Local time zone for this installation. Choices can be found here:
@ -146,13 +141,15 @@ TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'uds.core.util.request.GlobalRequestMiddleware',
'uds.core.util.middleware.XUACompatibleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
@ -177,7 +174,6 @@ INSTALLED_APPS = (
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'compressor',
'uds',
)
@ -232,6 +228,17 @@ LOGGING = {
'backupCount': 3,
'encoding': 'utf-8'
},
'database':{
'level':'ERROR',
'class':'logging.handlers.RotatingFileHandler',
'formatter': 'simple',
'filename': LOGDIR + '/' + 'db.log',
'mode': 'a',
'maxBytes': ROTATINGSIZE,
'backupCount': 3,
'encoding': 'utf-8'
},
'servicesFile':{
'level':'DEBUG',
@ -271,11 +278,6 @@ LOGGING = {
'class':'logging.StreamHandler',
'formatter': 'simple'
},
'database':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'database'
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',

View File

@ -183,7 +183,7 @@ class ModelTypeHandlerMixin(object):
'name': 'comments',
'value':'',
'gui': {
'required':True,
'required':False,
'defvalue':'',
'value':'',
'label': _('Comments'),

View File

@ -30,7 +30,7 @@
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
from __future__ import unicode_literals
from django.db import transaction
from uds.models import Cache as dbCache, getSqlDatetime
from datetime import datetime, timedelta

View File

@ -0,0 +1,16 @@
from __future__ import unicode_literals
import logging
logger = logging.getLogger(__name__)
class XUACompatibleMiddleware(object):
"""
Add a X-UA-Compatible header to the response
This header tells to Internet Explorer to render page with latest
possible version or to use chrome frame if it is installed.
"""
def process_response(self, request, response):
if response.get('content-type', '').startswith('text/html'):
response['X-UA-Compatible'] = 'IE=edge'
return response

View File

@ -32,7 +32,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -42,22 +42,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Aktuelle Authentifikatoren"
#: REST/methods/authenticators.py:82 REST/methods/networks.py:68
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
#: REST/methods/transports.py:71 REST/methods/users.py:77
#: REST/mixins.py:172 REST/methods/authenticators.py:82
#: REST/methods/networks.py:68 REST/methods/osmanagers.py:71
#: REST/methods/providers.py:75 REST/methods/transports.py:79
#: REST/methods/users_groups.py:73
msgid "Name"
msgstr "Name"
#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72
#: REST/methods/providers.py:70 REST/methods/transports.py:72
#: REST/methods/users.py:78
#: REST/mixins.py:175
msgid "Name of this element"
msgstr "Name dieses Elements"
#: REST/mixins.py:189 REST/methods/authenticators.py:83
#: REST/methods/osmanagers.py:72 REST/methods/providers.py:76
#: REST/methods/transports.py:80 REST/methods/users_groups.py:74
#: REST/methods/users_groups.py:102
msgid "Comments"
msgstr "Kommentare"
#: REST/mixins.py:192
msgid "Comments for this element"
msgstr "Kommentare für dieses element"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Aktuelle Authentifikatoren"
#: REST/methods/authenticators.py:84
msgid "Users"
msgstr "Benutzer"
@ -72,7 +82,7 @@ msgid "Networks"
msgstr "Netzwerke"
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
#: REST/methods/transports.py:73
#: REST/methods/transports.py:81
msgid "Used by"
msgstr "Von verwendet"
@ -80,40 +90,49 @@ msgstr "Von verwendet"
msgid "Current OS Managers"
msgstr "Aktuelle OS-Manager"
#: REST/methods/providers.py:67
#: REST/methods/providers.py:73
msgid "Current service providers"
msgstr "Aktuelle Service-Provider"
#: REST/methods/providers.py:71 templates/uds/index.html:51
#: REST/methods/providers.py:77 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Dienstleistungen"
#: REST/methods/transports.py:69
#: REST/methods/transports.py:77
msgid "Current Transports"
msgstr "Aktuelle Transporte"
#: REST/methods/users.py:70
#: REST/methods/users_groups.py:66
#, python-brace-format
msgid "Users of {0}"
msgstr "Benutzer von {0}"
#: REST/methods/users.py:72
#: REST/methods/users_groups.py:68
msgid "Current users"
msgstr "Momentane Benutzer"
#: REST/methods/users.py:76
#: REST/methods/users_groups.py:72 REST/methods/users_groups.py:101
msgid "User Id"
msgstr "Benutzer-Id"
#: REST/methods/users.py:79
#: REST/methods/users_groups.py:75 REST/methods/users_groups.py:103
msgid "state"
msgstr "Zustand"
#: REST/methods/users.py:80
#: REST/methods/users_groups.py:76
msgid "Last access"
msgstr "Zuletzt online"
#: REST/methods/users_groups.py:95
#, python-brace-format
msgid "Groups of {0}"
msgstr "Gruppen von {0}"
#: REST/methods/users_groups.py:97
msgid "Current groups"
msgstr "Aktuelle Gruppen"
#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422
msgid "Forbidden"
msgstr "Verboten"
@ -144,7 +163,9 @@ msgstr "Verwendung SSL"
#: auths/ActiveDirectory_enterprise/Authenticator.py:30
msgid "If checked, will use a ssl connection to Active Directory"
msgstr "Wenn diese Option aktiviert, wird eine Ssl-Verbindung mit Active Directory verwenden."
msgstr ""
"Wenn diese Option aktiviert, wird eine Ssl-Verbindung mit Active Directory "
"verwenden."
#: auths/ActiveDirectory_enterprise/Authenticator.py:31
msgid "Compatibility"
@ -164,8 +185,8 @@ 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)"
"Benutzernamen mit lesen Berechtigungen auf der Basis ausgewählt (USER@DOMAIN "
"verwenden.DOM-Formular dafür)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:34
#: auths/ActiveDirectory_enterprise/Authenticator.py:52
@ -369,7 +390,8 @@ msgstr "Erwartete Gruppenattribut "
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?)"
"LDAP-Benutzer Klasse oder Benutzer-Id-Attr ist vermutlich falsch (Ldap ist "
"eine eDirectory?)"
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
msgid "IP Authenticator"
@ -531,7 +553,8 @@ msgstr "IDP-Metadaten"
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."
"Sie können hier die URL oder die IDP-Metadaten oder die Metadaten selbst "
"(Xml) eingeben."
#: auths/SAML_enterprise/SAML.py:127
msgid "Entity ID"
@ -582,8 +605,8 @@ 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---"
"Der Private Schlüssel sollte ein gültiger PEM (PEM private Schlüssel beginnt "
"mit---BEGIN RSA PRIVATE KEY---"
#: auths/SAML_enterprise/SAML.py:197
#, python-brace-format
@ -1158,7 +1181,9 @@ msgstr "Hyper-v Cluster verknüpften Klon (experimentell)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55
#: services/HyperV_enterprise/HyperVLinkedService.py:58
msgid "Hyper Services based on templates and differential disks (experimental)"
msgstr "Hyper-Dienste basierend auf Vorlagen und differenzielle Datenträger (experimentell)"
msgstr ""
"Hyper-Dienste basierend auf Vorlagen und differenzielle Datenträger "
"(experimentell)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72
#: services/HyperV_enterprise/HyperVLinkedService.py:75
@ -1202,7 +1227,8 @@ msgstr "Netzwerk"
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"
"Wenn mehr als 1 Schnittstelle im Computer gefunden wird, verwenden Sie eine "
"in diesem Netzwerk als wichtigsten"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98
#: services/HyperV_enterprise/HyperVLinkedService.py:101
@ -1280,7 +1306,8 @@ msgstr "Hyper-v Cluster Service-Provider"
#: services/HyperV_enterprise/HyperVClusterProvider.py:89
#: services/HyperV_enterprise/HyperVProvider.py:81
msgid "HyperV Server IP or Hostname (must enable first WSMAN access)"
msgstr "Hyper-v Server IP oder Hostname (müssen erste WSMAN-Zugriff aktivieren)"
msgstr ""
"Hyper-v Server IP oder Hostname (müssen erste WSMAN-Zugriff aktivieren)"
#: services/HyperV_enterprise/HyperVClusterProvider.py:90
#: services/HyperV_enterprise/HyperVProvider.py:82
@ -1653,7 +1680,8 @@ msgstr "VMWare Linked Clone base"
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"
"Dieser Service bietet Zugriff auf verknüpfte Klone Maschinen auf ein Virtual "
"Center"
#: templates/404.html:3 templates/500.html:3
msgid "Page not found"
@ -1788,15 +1816,27 @@ msgstr "Ausfahrt dashboard"
msgid "logout"
msgstr "Logout"
#: templates/uds/admin/tmpl/authenticators.html:4
msgid "administration of authenticators"
msgstr "Verwaltung von Authentifikatoren"
#: templates/uds/admin/tmpl/connectivity.html:4
#: templates/uds/admin/tmpl/dashboard.html:4
msgid "overview"
msgstr "Übersicht"
#: templates/uds/admin/tmpl/modal.html:18
msgid "Close"
msgstr "Schließen"
#: templates/uds/admin/tmpl/modal.html:25
msgid "Save"
msgstr "Speichern"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "Yes"
msgstr "Ja"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "No"
msgstr "Nr."
#: templates/uds/html5/detectJava.html:4
msgid "Login redirection to UDS"
msgstr "Login-Umleitung zu UDS"
@ -2253,7 +2293,9 @@ msgstr "Einstellbare Qualität"
#: transports/RGS-enterprise/RGSTransport.py:48
#: transports/RGS-enterprise/TRGSTransport.py:53
msgid "If checked, the image quality will be adjustable with bandwidth"
msgstr "Wenn diese Option aktiviert, wird die Bildqualität mit Bandbreite einstellbar sein"
msgstr ""
"Wenn diese Option aktiviert, wird die Bildqualität mit Bandbreite "
"einstellbar sein"
#: transports/RGS-enterprise/RGSTransport.py:49
#: transports/RGS-enterprise/TRGSTransport.py:54
@ -2266,8 +2308,8 @@ 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."
"Die niedrigste Bildqualität auf Bilder weiterhin das minimale Update "
"angewendet Rate."
#: transports/RGS-enterprise/RGSTransport.py:51
#: transports/RGS-enterprise/TRGSTransport.py:56
@ -2333,7 +2375,8 @@ msgstr "RGS-Transport für getunnelte Verbindung"
#: transports/RGS-enterprise/web.py:82
msgid "In order to use this service, you should first install RGS Receiver."
msgstr "Um diesen Service zu nutzen, sollten Sie zunächst RGS-Empfänger installieren."
msgstr ""
"Um diesen Service zu nutzen, sollten Sie zunächst RGS-Empfänger installieren."
#: transports/RGS-enterprise/web.py:83
msgid "HP Website"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,146 +18,234 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/adm/js/api-tools.js:46
msgid "Just a moment..."
msgstr "Einen Moment..."
#: static/adm/js/api-tools.js:75
msgid "Sunday"
msgstr "Sonntag"
#: static/adm/js/api-tools.js:75
msgid "Monday"
msgstr "Montag"
#: static/adm/js/api-tools.js:75
msgid "Tuesday"
msgstr "Dienstag"
#: static/adm/js/api-tools.js:75
msgid "Wednesday"
msgstr "Mittwoch"
#: static/adm/js/api-tools.js:76
msgid "Thursday"
msgstr "Donnerstag"
#: static/adm/js/api-tools.js:76
msgid "Friday"
msgstr "Freitag"
#: static/adm/js/api-tools.js:76
msgid "Saturday"
msgstr "Samstag"
#: static/adm/js/api-tools.js:77
msgid "January"
msgstr "Januar"
#: static/adm/js/api-tools.js:77
msgid "February"
msgstr "Februar"
#: static/adm/js/api-tools.js:77
msgid "March"
msgstr "März"
#: static/adm/js/api-tools.js:77
msgid "April"
msgstr "April"
#: static/adm/js/api-tools.js:77
msgid "May"
msgstr "Mai"
#: static/adm/js/api-tools.js:78
msgid "June"
msgstr "Juni"
#: static/adm/js/api-tools.js:78
msgid "July"
msgstr "Juli"
#: static/adm/js/api-tools.js:78
msgid "August"
msgstr "August"
#: static/adm/js/api-tools.js:78
msgid "September"
msgstr "September"
#: static/adm/js/api-tools.js:78
msgid "October"
msgstr "Oktober"
#: static/adm/js/api-tools.js:79
msgid "November"
msgstr "November"
#: static/adm/js/api-tools.js:79
msgid "December"
msgstr "Dezember"
#: static/adm/js/dataTables.bootstrap.js:6 static/adm/js/gui.js:19
msgid "_MENU_ records per page"
msgstr "_MENU_ Datensätze pro Seite"
#: static/adm/js/gui-elements.js:33
msgid "Service Providers"
msgstr "Service-Provider"
#: static/adm/js/gui.js:18
msgid "_MENU_ records per page"
msgstr "_MENU_ Datensätze pro Seite"
#: static/adm/js/gui-elements.js:40
msgid "Edit service provider"
msgstr "Dienstleister bearbeiten"
#: static/adm/js/gui.js:19
#: static/adm/js/gui-elements.js:104
msgid "Edit authenticator"
msgstr "Authentifikator bearbeiten"
#: static/adm/js/gui-elements.js:149
msgid "Edit transport"
msgstr "Bearbeiten Verkehr"
#: static/adm/js/gui-elements.js:159
msgid "New transport"
msgstr "Neue Verkehrsmittel"
#: static/adm/js/gui.js:20
msgid "Empty"
msgstr "Leer"
#: static/adm/js/gui.js:20
#: static/adm/js/gui.js:21
msgid "Records _START_ to _END_ of _TOTAL_"
msgstr "Zeichnet _START_, _END_ von _TOTAL_"
#: static/adm/js/gui.js:21
#: static/adm/js/gui.js:22
msgid "No records"
msgstr "Keine Datensätze"
#: static/adm/js/gui.js:22
#: static/adm/js/gui.js:23
msgid "(filtered from _MAX_ total records)"
msgstr "(von _MAX_ Datensätze gefiltert)"
#: static/adm/js/gui.js:23
#: static/adm/js/gui.js:24
msgid "Please wait, processing"
msgstr "Bitte warten, Verarbeitung"
#: static/adm/js/gui.js:24
#: static/adm/js/gui.js:25
msgid "Filter"
msgstr "Filter"
#: static/adm/js/gui.js:27
#: static/adm/js/gui.js:28
msgid "First"
msgstr "Erste"
#: static/adm/js/gui.js:28
#: static/adm/js/gui.js:29
msgid "Last"
msgstr "Letzter"
#: static/adm/js/gui.js:29
#: static/adm/js/gui.js:30
msgid "Next"
msgstr "Nächste"
#: static/adm/js/gui.js:30
#: static/adm/js/gui.js:31
msgid "Previous"
msgstr "Vorherige"
#: static/adm/js/gui.js:75
msgid "Deployed services"
msgstr "Bereitgestellten Dienste"
#: static/adm/js/gui.js:37
msgid "New"
msgstr "Neu"
#: static/adm/js/gui.js:360
#: static/adm/js/gui.js:41
msgid "Edit"
msgstr "Bearbeiten"
#: static/adm/js/gui.js:369
#: static/adm/js/gui.js:45
msgid "Delete"
msgstr "Löschen"
#: static/adm/js/gui.js:378
#: static/adm/js/gui.js:49
msgid "Refresh"
msgstr "Aktualisieren"
#: static/adm/js/strftime.js:30
msgid "Sunday"
msgstr "Sonntag"
#: static/adm/js/gui.js:53
msgid "Xls"
msgstr "Xls"
#: static/adm/js/strftime.js:30
msgid "Monday"
msgstr "Montag"
#: static/adm/js/gui.js:166
msgid "Deployed services"
msgstr "Bereitgestellten Dienste"
#: static/adm/js/strftime.js:30
msgid "Tuesday"
msgstr "Dienstag"
#: static/adm/js/gui.js:204
msgid "This field is required."
msgstr "Dieses Feld ist erforderlich."
#: static/adm/js/strftime.js:31
msgid "Wednesday"
msgstr "Mittwoch"
#: static/adm/js/gui.js:205
msgid "Please fix this field."
msgstr "Bitte korrigieren Sie in diesem Feld."
#: static/adm/js/strftime.js:31
msgid "Thursday"
msgstr "Donnerstag"
#: static/adm/js/gui.js:206
msgid "Please enter a valid email address."
msgstr "Bitte geben Sie eine gültige e-Mail-Adresse."
#: static/adm/js/strftime.js:31
msgid "Friday"
msgstr "Freitag"
#: static/adm/js/gui.js:207
msgid "Please enter a valid URL."
msgstr "Bitte geben Sie eine gültige URL."
#: static/adm/js/strftime.js:31
msgid "Saturday"
msgstr "Samstag"
#: static/adm/js/gui.js:208
msgid "Please enter a valid date."
msgstr "Bitte geben Sie ein gültiges Datum."
#: static/adm/js/strftime.js:32
msgid "January"
msgstr "Januar"
#: static/adm/js/gui.js:209
msgid "Please enter a valid date (ISO)."
msgstr "Bitte geben Sie ein gültiges Datum (ISO)."
#: static/adm/js/strftime.js:32
msgid "February"
msgstr "Februar"
#: static/adm/js/gui.js:210
msgid "Please enter a valid number."
msgstr "Bitte geben Sie eine gültige Nummer."
#: static/adm/js/strftime.js:32
msgid "March"
msgstr "März"
#: static/adm/js/gui.js:211
msgid "Please enter only digits."
msgstr "Bitte geben Sie nur Ziffern."
#: static/adm/js/strftime.js:33
msgid "April"
msgstr "April"
#: static/adm/js/gui.js:212
msgid "Please enter a valid credit card number."
msgstr "Bitte geben Sie eine gültige Kreditkartennummer."
#: static/adm/js/strftime.js:33
msgid "May"
msgstr "Mai"
#: static/adm/js/gui.js:213
msgid "Please enter the same value again."
msgstr "Bitte geben Sie den gleichen Wert wieder."
#: static/adm/js/strftime.js:33
msgid "June"
msgstr "Juni"
#: static/adm/js/gui.js:214
msgid "Please enter no more than {0} characters."
msgstr "Bitte geben Sie nicht mehr als {0} Zeichen."
#: static/adm/js/strftime.js:33
msgid "July"
msgstr "Juli"
#: static/adm/js/gui.js:215
msgid "Please enter at least {0} characters."
msgstr "Bitte geben Sie mindestens {0} Zeichen."
#: static/adm/js/strftime.js:34
msgid "August"
msgstr "August"
#: static/adm/js/gui.js:216
msgid "Please enter a value between {0} and {1} characters long."
msgstr "Bitte geben Sie einen Wert zwischen {0} und {1} Zeichen lang."
#: static/adm/js/strftime.js:34
msgid "September"
msgstr "September"
#: static/adm/js/gui.js:217
msgid "Please enter a value between {0} and {1}."
msgstr "Bitte geben Sie einen Wert zwischen {0} und {1}."
#: static/adm/js/strftime.js:34
msgid "October"
msgstr "Oktober"
#: static/adm/js/gui.js:218
msgid "Please enter a value less than or equal to {0}."
msgstr "Bitte geben Sie einen Wert kleiner oder gleich {0}."
#: static/adm/js/strftime.js:34
msgid "November"
msgstr "November"
#: static/adm/js/strftime.js:35
msgid "December"
msgstr "Dezember"
#: static/adm/js/tools.js:46
msgid "Just a moment..."
msgstr "Einen Moment..."
#: static/adm/js/gui.js:219
msgid "Please enter a value greater than or equal to {0}."
msgstr "Bitte geben Sie einen Wert größer oder gleich {0}."

View File

@ -31,7 +31,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: 2013-04-22 06:24+0200\n"
"Last-Translator: \n"
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
@ -42,22 +42,32 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Lokalize 1.4\n"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticadores actuales"
#: REST/methods/authenticators.py:82 REST/methods/networks.py:68
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
#: REST/methods/transports.py:71 REST/methods/users.py:77
#: REST/mixins.py:172 REST/methods/authenticators.py:82
#: REST/methods/networks.py:68 REST/methods/osmanagers.py:71
#: REST/methods/providers.py:75 REST/methods/transports.py:79
#: REST/methods/users_groups.py:73
msgid "Name"
msgstr "Nombre"
#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72
#: REST/methods/providers.py:70 REST/methods/transports.py:72
#: REST/methods/users.py:78
#: REST/mixins.py:175
msgid "Name of this element"
msgstr "Nombre de este elemento"
#: REST/mixins.py:189 REST/methods/authenticators.py:83
#: REST/methods/osmanagers.py:72 REST/methods/providers.py:76
#: REST/methods/transports.py:80 REST/methods/users_groups.py:74
#: REST/methods/users_groups.py:102
msgid "Comments"
msgstr "Comentarios"
#: REST/mixins.py:192
msgid "Comments for this element"
msgstr "Comentarios para este elemento"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticadores actuales"
#: REST/methods/authenticators.py:84
msgid "Users"
msgstr "Usuarios"
@ -72,7 +82,7 @@ msgid "Networks"
msgstr "Redes"
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
#: REST/methods/transports.py:73
#: REST/methods/transports.py:81
msgid "Used by"
msgstr "Utilizado por"
@ -80,40 +90,49 @@ msgstr "Utilizado por"
msgid "Current OS Managers"
msgstr "Actual OS administradores"
#: REST/methods/providers.py:67
#: REST/methods/providers.py:73
msgid "Current service providers"
msgstr "Proveedores de servicio actuales"
#: REST/methods/providers.py:71 templates/uds/index.html:51
#: REST/methods/providers.py:77 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Servicios"
#: REST/methods/transports.py:69
#: REST/methods/transports.py:77
msgid "Current Transports"
msgstr "Transportes actuales"
#: REST/methods/users.py:70
#: REST/methods/users_groups.py:66
#, python-brace-format
msgid "Users of {0}"
msgstr "Usuarios de {0}"
#: REST/methods/users.py:72
#: REST/methods/users_groups.py:68
msgid "Current users"
msgstr "Usuarios actuales"
#: REST/methods/users.py:76
#: REST/methods/users_groups.py:72 REST/methods/users_groups.py:101
msgid "User Id"
msgstr "Id de usuario"
#: REST/methods/users.py:79
#: REST/methods/users_groups.py:75 REST/methods/users_groups.py:103
msgid "state"
msgstr "estado"
#: REST/methods/users.py:80
#: REST/methods/users_groups.py:76
msgid "Last access"
msgstr "Último acceso"
#: REST/methods/users_groups.py:95
#, python-brace-format
msgid "Groups of {0}"
msgstr "Grupos de {0}"
#: REST/methods/users_groups.py:97
msgid "Current groups"
msgstr "Grupos actuales"
#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422
msgid "Forbidden"
msgstr "Prohibido"
@ -164,8 +183,8 @@ msgid ""
"Username with read privileges on the base selected (use USER@DOMAIN.DOM form "
"for this)"
msgstr ""
"Nombre de usuario con privilegios de lectura en la base seleccionada (uso USER@DOMAIN.Formulario de DOM "
"para esto)"
"Nombre de usuario con privilegios de lectura en la base seleccionada (uso "
"USER@DOMAIN.Formulario de DOM para esto)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:34
#: auths/ActiveDirectory_enterprise/Authenticator.py:52
@ -244,7 +263,8 @@ msgstr "Grupo"
#: auths/ActiveDirectory_enterprise/Authenticator.py:67
#: auths/ActiveDirectory_enterprise/Authenticator.py:442
msgid "Must specify the username in the form USERNAME@DOMAIN.DOM"
msgstr "Debe especificar el nombre de usuario en el formulario USERNAME@DOMAIN.DOM"
msgstr ""
"Debe especificar el nombre de usuario en el formulario USERNAME@DOMAIN.DOM"
#: auths/ActiveDirectory_enterprise/Authenticator.py:164
#: auths/EDirectory_enterprise/Authenticator.py:123
@ -371,7 +391,8 @@ msgstr "Atributo de grupo esperados "
msgid ""
"Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)"
msgstr ""
"LDAP usuario clase o usuario id attr es probablemente incorrecto (Ldap es un eDirectory?)"
"LDAP usuario clase o usuario id attr es probablemente incorrecto (Ldap es un "
"eDirectory?)"
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
msgid "IP Authenticator"
@ -522,7 +543,8 @@ msgstr "Certificado"
#: auths/SAML_enterprise/SAML.py:123
msgid "Server certificate (public), , as generated in base 64 from openssl"
msgstr "Certificado del servidor (público), como generados en base 64 de openssl"
msgstr ""
"Certificado del servidor (público), como generados en base 64 de openssl"
#: auths/SAML_enterprise/SAML.py:124
msgid "IDP Metadata"
@ -532,7 +554,8 @@ msgstr "IDP metadatos"
msgid ""
"You can enter here the URL or the IDP metadata or the metadata itself (xml)"
msgstr ""
"Aquí puede introducir la URL o los metadatos IDP o los metadatos de sí mismo (xml)"
"Aquí puede introducir la URL o los metadatos IDP o los metadatos de sí mismo "
"(xml)"
#: auths/SAML_enterprise/SAML.py:127
msgid "Entity ID"
@ -540,7 +563,9 @@ msgstr "ID de entidad"
#: auths/SAML_enterprise/SAML.py:128
msgid "ID of the SP. If left blank, this will be autogenerated from server URL"
msgstr "ID del SP. Si deja en blanco, este será generadas automáticamente desde la dirección URL del servidor"
msgstr ""
"ID del SP. Si deja en blanco, este será generadas automáticamente desde la "
"dirección URL del servidor"
#: auths/SAML_enterprise/SAML.py:130
msgid "User name attrs"
@ -571,8 +596,8 @@ msgid ""
"Server certificate should be a valid PEM (PEM certificates starts with -----"
"BEGIN CERTIFICATE-----)"
msgstr ""
"Certificado del servidor debe ser un PEM válido (PEM certificados comienza con---"
"BEGIN CERTIFICADO---)"
"Certificado del servidor debe ser un PEM válido (PEM certificados comienza "
"con---BEGIN CERTIFICADO---)"
#: auths/SAML_enterprise/SAML.py:165
msgid "Invalid server certificate. "
@ -583,8 +608,8 @@ msgid ""
"Private key should be a valid PEM (PEM private keys starts with -----BEGIN "
"RSA PRIVATE KEY-----"
msgstr ""
"Clave privada debe ser un PEM válido (PEM claves privadas comienza con---BEGIN "
"CLAVE PRIVADA RSA---"
"Clave privada debe ser un PEM válido (PEM claves privadas comienza con---"
"BEGIN CLAVE PRIVADA RSA---"
#: auths/SAML_enterprise/SAML.py:197
#, python-brace-format
@ -1151,7 +1176,8 @@ msgstr "Cluster HyperV ligado clon (Experimental)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55
#: services/HyperV_enterprise/HyperVLinkedService.py:58
msgid "Hyper Services based on templates and differential disks (experimental)"
msgstr "Hiper servicios basados en plantillas y diferenciales discos (experimentales)"
msgstr ""
"Hiper servicios basados en plantillas y diferenciales discos (experimentales)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72
#: services/HyperV_enterprise/HyperVLinkedService.py:75
@ -1192,7 +1218,8 @@ msgstr "Red"
msgid ""
"If more than 1 interface is found in machine, use one on this network as main"
msgstr ""
"Si más de una interfaz se encuentra en la máquina, utilice uno de esta red como principal"
"Si más de una interfaz se encuentra en la máquina, utilice uno de esta red "
"como principal"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98
#: services/HyperV_enterprise/HyperVLinkedService.py:101
@ -1215,7 +1242,8 @@ msgstr "Unidades de almacén de datos"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101
#: services/HyperV_enterprise/HyperVLinkedService.py:104
msgid "Datastores where to put incrementals & publications"
msgstr "Almacenes de datos dónde poner los backups incrementales & publicaciones"
msgstr ""
"Almacenes de datos dónde poner los backups incrementales & publicaciones"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102
#: services/HyperV_enterprise/HyperVLinkedService.py:105
@ -1270,7 +1298,8 @@ msgstr "Proveedor de servicios de clúster HyperV"
#: services/HyperV_enterprise/HyperVClusterProvider.py:89
#: services/HyperV_enterprise/HyperVProvider.py:81
msgid "HyperV Server IP or Hostname (must enable first WSMAN access)"
msgstr "HyperV servidor IP o nombre de host (debe permitir el acceso WSMAN primera)"
msgstr ""
"HyperV servidor IP o nombre de host (debe permitir el acceso WSMAN primera)"
#: services/HyperV_enterprise/HyperVClusterProvider.py:90
#: services/HyperV_enterprise/HyperVProvider.py:82
@ -1639,7 +1668,8 @@ msgstr "VMWare vinculado base clon"
msgid ""
"This service provides access to Linked Clones machines on a Virtual Center"
msgstr ""
"Este servicio proporciona acceso a máquinas de Clones enlazados en un Centro Virtual"
"Este servicio proporciona acceso a máquinas de Clones enlazados en un Centro "
"Virtual"
#: templates/404.html:3 templates/500.html:3
msgid "Page not found"
@ -1774,15 +1804,27 @@ msgstr "Tablero de salida"
msgid "logout"
msgstr "logout"
#: templates/uds/admin/tmpl/authenticators.html:4
msgid "administration of authenticators"
msgstr "Administración de autenticadores"
#: templates/uds/admin/tmpl/connectivity.html:4
#: templates/uds/admin/tmpl/dashboard.html:4
msgid "overview"
msgstr "Resumen"
#: templates/uds/admin/tmpl/modal.html:18
msgid "Close"
msgstr "Cerrar"
#: templates/uds/admin/tmpl/modal.html:25
msgid "Save"
msgstr "Salvar"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "Yes"
msgstr "Sí"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "No"
msgstr "No"
#: templates/uds/html5/detectJava.html:4
msgid "Login redirection to UDS"
msgstr "Redirección de inicio de sesión para UDS"
@ -2231,7 +2273,8 @@ msgstr "Calidad ajustable"
#: transports/RGS-enterprise/RGSTransport.py:48
#: transports/RGS-enterprise/TRGSTransport.py:53
msgid "If checked, the image quality will be adjustable with bandwidth"
msgstr "Si está marcada, la calidad de imagen será ajustable con ancho de banda"
msgstr ""
"Si está marcada, la calidad de imagen será ajustable con ancho de banda"
#: transports/RGS-enterprise/RGSTransport.py:49
#: transports/RGS-enterprise/TRGSTransport.py:54
@ -2244,8 +2287,8 @@ msgid ""
"The lowest image quality applied to images to maintain the minimum update "
"rate."
msgstr ""
"La menor calidad de imagen aplicada a las imágenes para mantener la actualización mínima "
"tasa."
"La menor calidad de imagen aplicada a las imágenes para mantener la "
"actualización mínima tasa."
#: transports/RGS-enterprise/RGSTransport.py:51
#: transports/RGS-enterprise/TRGSTransport.py:56
@ -2255,7 +2298,8 @@ msgstr "Velocidad de fotogramas ajustable"
#: transports/RGS-enterprise/RGSTransport.py:52
#: transports/RGS-enterprise/TRGSTransport.py:57
msgid "Update rate threshold to begin adjusting image quality"
msgstr "Umbral de tasa de actualización para comenzar a ajustar la calidad de imagen"
msgstr ""
"Umbral de tasa de actualización para comenzar a ajustar la calidad de imagen"
#: transports/RGS-enterprise/RGSTransport.py:53
#: transports/RGS-enterprise/TRGSTransport.py:58
@ -2311,7 +2355,8 @@ msgstr "RGS transporte para la conexión de túnel"
#: transports/RGS-enterprise/web.py:82
msgid "In order to use this service, you should first install RGS Receiver."
msgstr "Para poder utilizar este servicio, usted debe instalar primero RGS receptor."
msgstr ""
"Para poder utilizar este servicio, usted debe instalar primero RGS receptor."
#: transports/RGS-enterprise/web.py:83
msgid "HP Website"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,146 +18,234 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/adm/js/api-tools.js:46
msgid "Just a moment..."
msgstr "Un momento..."
#: static/adm/js/api-tools.js:75
msgid "Sunday"
msgstr "Domingo"
#: static/adm/js/api-tools.js:75
msgid "Monday"
msgstr "Lunes"
#: static/adm/js/api-tools.js:75
msgid "Tuesday"
msgstr "Martes"
#: static/adm/js/api-tools.js:75
msgid "Wednesday"
msgstr "Miércoles"
#: static/adm/js/api-tools.js:76
msgid "Thursday"
msgstr "Jueves"
#: static/adm/js/api-tools.js:76
msgid "Friday"
msgstr "Viernes"
#: static/adm/js/api-tools.js:76
msgid "Saturday"
msgstr "Sábado"
#: static/adm/js/api-tools.js:77
msgid "January"
msgstr "Enero"
#: static/adm/js/api-tools.js:77
msgid "February"
msgstr "Febrero"
#: static/adm/js/api-tools.js:77
msgid "March"
msgstr "Marzo"
#: static/adm/js/api-tools.js:77
msgid "April"
msgstr "Abril"
#: static/adm/js/api-tools.js:77
msgid "May"
msgstr "Mayo"
#: static/adm/js/api-tools.js:78
msgid "June"
msgstr "Junio"
#: static/adm/js/api-tools.js:78
msgid "July"
msgstr "Julio"
#: static/adm/js/api-tools.js:78
msgid "August"
msgstr "Agosto"
#: static/adm/js/api-tools.js:78
msgid "September"
msgstr "Septiembre"
#: static/adm/js/api-tools.js:78
msgid "October"
msgstr "Octubre"
#: static/adm/js/api-tools.js:79
msgid "November"
msgstr "Noviembre"
#: static/adm/js/api-tools.js:79
msgid "December"
msgstr "Diciembre"
#: static/adm/js/dataTables.bootstrap.js:6 static/adm/js/gui.js:19
msgid "_MENU_ records per page"
msgstr "Registros _MENU_ por página"
#: static/adm/js/gui-elements.js:33
msgid "Service Providers"
msgstr "Proveedores de servicios"
#: static/adm/js/gui.js:18
msgid "_MENU_ records per page"
msgstr "Registros _MENU_ por página"
#: static/adm/js/gui-elements.js:40
msgid "Edit service provider"
msgstr "Editar proveedor"
#: static/adm/js/gui.js:19
#: static/adm/js/gui-elements.js:104
msgid "Edit authenticator"
msgstr "Editar autenticador"
#: static/adm/js/gui-elements.js:149
msgid "Edit transport"
msgstr "Editar transporte"
#: static/adm/js/gui-elements.js:159
msgid "New transport"
msgstr "Nuevo transporte"
#: static/adm/js/gui.js:20
msgid "Empty"
msgstr "Vacío"
#: static/adm/js/gui.js:20
#: static/adm/js/gui.js:21
msgid "Records _START_ to _END_ of _TOTAL_"
msgstr "Registros de _START_ a _END_ de _TOTAL_"
#: static/adm/js/gui.js:21
#: static/adm/js/gui.js:22
msgid "No records"
msgstr "No hay registros"
#: static/adm/js/gui.js:22
#: static/adm/js/gui.js:23
msgid "(filtered from _MAX_ total records)"
msgstr "(filtrado de registros total _MAX_)"
#: static/adm/js/gui.js:23
#: static/adm/js/gui.js:24
msgid "Please wait, processing"
msgstr "Por favor espere, procesando"
#: static/adm/js/gui.js:24
#: static/adm/js/gui.js:25
msgid "Filter"
msgstr "Filtro"
#: static/adm/js/gui.js:27
#: static/adm/js/gui.js:28
msgid "First"
msgstr "Primero"
#: static/adm/js/gui.js:28
#: static/adm/js/gui.js:29
msgid "Last"
msgstr "Duran"
#: static/adm/js/gui.js:29
#: static/adm/js/gui.js:30
msgid "Next"
msgstr "Próxima"
#: static/adm/js/gui.js:30
#: static/adm/js/gui.js:31
msgid "Previous"
msgstr "Anterior"
#: static/adm/js/gui.js:75
msgid "Deployed services"
msgstr "Servicios desplegados"
#: static/adm/js/gui.js:37
msgid "New"
msgstr "Nuevo"
#: static/adm/js/gui.js:360
#: static/adm/js/gui.js:41
msgid "Edit"
msgstr "Editar"
#: static/adm/js/gui.js:369
#: static/adm/js/gui.js:45
msgid "Delete"
msgstr "Borrar"
#: static/adm/js/gui.js:378
#: static/adm/js/gui.js:49
msgid "Refresh"
msgstr "Actualización"
#: static/adm/js/strftime.js:30
msgid "Sunday"
msgstr "Domingo"
#: static/adm/js/gui.js:53
msgid "Xls"
msgstr "XLS"
#: static/adm/js/strftime.js:30
msgid "Monday"
msgstr "Lunes"
#: static/adm/js/gui.js:166
msgid "Deployed services"
msgstr "Servicios desplegados"
#: static/adm/js/strftime.js:30
msgid "Tuesday"
msgstr "Martes"
#: static/adm/js/gui.js:204
msgid "This field is required."
msgstr "Este campo es requerido."
#: static/adm/js/strftime.js:31
msgid "Wednesday"
msgstr "Miércoles"
#: static/adm/js/gui.js:205
msgid "Please fix this field."
msgstr "Por favor arreglar este campo."
#: static/adm/js/strftime.js:31
msgid "Thursday"
msgstr "Jueves"
#: static/adm/js/gui.js:206
msgid "Please enter a valid email address."
msgstr "Introduzca una dirección de correo electrónico válida."
#: static/adm/js/strftime.js:31
msgid "Friday"
msgstr "Viernes"
#: static/adm/js/gui.js:207
msgid "Please enter a valid URL."
msgstr "Por favor, introduzca una URL válida."
#: static/adm/js/strftime.js:31
msgid "Saturday"
msgstr "Sábado"
#: static/adm/js/gui.js:208
msgid "Please enter a valid date."
msgstr "Por favor, introduzca una fecha válida."
#: static/adm/js/strftime.js:32
msgid "January"
msgstr "Enero"
#: static/adm/js/gui.js:209
msgid "Please enter a valid date (ISO)."
msgstr "Por favor, introduzca una fecha válida (ISO)."
#: static/adm/js/strftime.js:32
msgid "February"
msgstr "Febrero"
#: static/adm/js/gui.js:210
msgid "Please enter a valid number."
msgstr "Por favor, introduzca un número válido."
#: static/adm/js/strftime.js:32
msgid "March"
msgstr "Marzo"
#: static/adm/js/gui.js:211
msgid "Please enter only digits."
msgstr "Introduce sólo dígitos."
#: static/adm/js/strftime.js:33
msgid "April"
msgstr "Abril"
#: static/adm/js/gui.js:212
msgid "Please enter a valid credit card number."
msgstr "Por favor, introduzca un número de tarjeta de crédito válida."
#: static/adm/js/strftime.js:33
msgid "May"
msgstr "Mayo"
#: static/adm/js/gui.js:213
msgid "Please enter the same value again."
msgstr "Por favor, introduzca el valor mismo otra vez."
#: static/adm/js/strftime.js:33
msgid "June"
msgstr "Junio"
#: static/adm/js/gui.js:214
msgid "Please enter no more than {0} characters."
msgstr "Introduce no más de {0} caracteres."
#: static/adm/js/strftime.js:33
msgid "July"
msgstr "Julio"
#: static/adm/js/gui.js:215
msgid "Please enter at least {0} characters."
msgstr "Introduce al menos {0} caracteres."
#: static/adm/js/strftime.js:34
msgid "August"
msgstr "Agosto"
#: static/adm/js/gui.js:216
msgid "Please enter a value between {0} and {1} characters long."
msgstr "Por favor, introduzca un valor entre caracteres {0} y {1} durante mucho tiempo."
#: static/adm/js/strftime.js:34
msgid "September"
msgstr "Septiembre"
#: static/adm/js/gui.js:217
msgid "Please enter a value between {0} and {1}."
msgstr "Por favor, introduzca un valor entre {0} y {1}."
#: static/adm/js/strftime.js:34
msgid "October"
msgstr "Octubre"
#: static/adm/js/gui.js:218
msgid "Please enter a value less than or equal to {0}."
msgstr "Por favor, introduzca un valor menor o igual a {0}."
#: static/adm/js/strftime.js:34
msgid "November"
msgstr "Noviembre"
#: static/adm/js/strftime.js:35
msgid "December"
msgstr "Diciembre"
#: static/adm/js/tools.js:46
msgid "Just a moment..."
msgstr "Un momento..."
#: static/adm/js/gui.js:219
msgid "Please enter a value greater than or equal to {0}."
msgstr "Por favor, introduzca un valor mayor o igual a {0}."

View File

@ -32,7 +32,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -42,22 +42,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Authentificateurs actuels"
#: REST/methods/authenticators.py:82 REST/methods/networks.py:68
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
#: REST/methods/transports.py:71 REST/methods/users.py:77
#: REST/mixins.py:172 REST/methods/authenticators.py:82
#: REST/methods/networks.py:68 REST/methods/osmanagers.py:71
#: REST/methods/providers.py:75 REST/methods/transports.py:79
#: REST/methods/users_groups.py:73
msgid "Name"
msgstr "Nom"
#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72
#: REST/methods/providers.py:70 REST/methods/transports.py:72
#: REST/methods/users.py:78
#: REST/mixins.py:175
msgid "Name of this element"
msgstr "Nom de cet élément"
#: REST/mixins.py:189 REST/methods/authenticators.py:83
#: REST/methods/osmanagers.py:72 REST/methods/providers.py:76
#: REST/methods/transports.py:80 REST/methods/users_groups.py:74
#: REST/methods/users_groups.py:102
msgid "Comments"
msgstr "Commentaires"
#: REST/mixins.py:192
msgid "Comments for this element"
msgstr "Commentaires pour cet élément"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Authentificateurs actuels"
#: REST/methods/authenticators.py:84
msgid "Users"
msgstr "Utilisateurs"
@ -72,7 +82,7 @@ msgid "Networks"
msgstr "Réseaux"
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
#: REST/methods/transports.py:73
#: REST/methods/transports.py:81
msgid "Used by"
msgstr "Utilisé par"
@ -80,40 +90,49 @@ msgstr "Utilisé par"
msgid "Current OS Managers"
msgstr "Dirigeants de OS actuels"
#: REST/methods/providers.py:67
#: REST/methods/providers.py:73
msgid "Current service providers"
msgstr "Fournisseurs de services actuels"
#: REST/methods/providers.py:71 templates/uds/index.html:51
#: REST/methods/providers.py:77 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Services"
#: REST/methods/transports.py:69
#: REST/methods/transports.py:77
msgid "Current Transports"
msgstr "Transports actuels"
#: REST/methods/users.py:70
#: REST/methods/users_groups.py:66
#, python-brace-format
msgid "Users of {0}"
msgstr "Utilisateurs de {0}"
#: REST/methods/users.py:72
#: REST/methods/users_groups.py:68
msgid "Current users"
msgstr "Utilisateurs actuels"
#: REST/methods/users.py:76
#: REST/methods/users_groups.py:72 REST/methods/users_groups.py:101
msgid "User Id"
msgstr "Id de l'utilisateur"
#: REST/methods/users.py:79
#: REST/methods/users_groups.py:75 REST/methods/users_groups.py:103
msgid "state"
msgstr "État"
#: REST/methods/users.py:80
#: REST/methods/users_groups.py:76
msgid "Last access"
msgstr "Dernier accès"
#: REST/methods/users_groups.py:95
#, python-brace-format
msgid "Groups of {0}"
msgstr "Groupes de {0}"
#: REST/methods/users_groups.py:97
msgid "Current groups"
msgstr "Groupes actuels"
#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422
msgid "Forbidden"
msgstr "Interdit"
@ -152,7 +171,9 @@ msgstr "Compatibilité"
#: auths/ActiveDirectory_enterprise/Authenticator.py:31
msgid "Compatibility of AD connection (Usually windows 2000 and later)"
msgstr "Compatibilité de connexion AD (généralement windows 2000 et versions ultérieures)"
msgstr ""
"Compatibilité de connexion AD (généralement windows 2000 et versions "
"ultérieures)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:33
#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52
@ -164,8 +185,8 @@ 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)"
"Nom d'utilisateur avec des privilèges de lecture sur la base sélectionnée "
"(utilisation USER@DOMAIN.Forme de DOM pour cela)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:34
#: auths/ActiveDirectory_enterprise/Authenticator.py:52
@ -280,17 +301,22 @@ msgstr "Domaine semble être incorrect, veuillez bien consulter le"
#: auths/ActiveDirectory_enterprise/Authenticator.py:456
msgid "Ldap does not seem an Active Directory (do not have user objects)"
msgstr "LDAP ne semble pas un serveur Active Directory (n'ont pas les objets utilisateur)"
msgstr ""
"LDAP ne semble pas un serveur Active Directory (n'ont pas les objets "
"utilisateur)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:464
msgid "Ldap does not seem an Active Directory (no not have group objects)"
msgstr "LDAP ne semble pas un serveur Active Directory (ne pas ont des objets de groupe)"
msgstr ""
"LDAP ne semble pas un serveur Active Directory (ne pas ont des objets de "
"groupe)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:472
msgid ""
"Ldap does not seem an Active Directory (do not have any user nor groups)"
msgstr ""
"LDAP ne semble pas un serveur Active Directory (n'ont pas l'utilisateur ou groupes)"
"LDAP ne semble pas un serveur Active Directory (n'ont pas l'utilisateur ou "
"groupes)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:477
#: auths/EDirectory_enterprise/Authenticator.py:358
@ -370,7 +396,8 @@ msgstr "Attribut groupe attendue "
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?)"
"LDAP user class ou utilisateur id attr est probablement faux (Ldap est un "
"eDirectory?)"
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
msgid "IP Authenticator"
@ -533,7 +560,8 @@ msgstr "Métadonnées de l'IDP"
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)"
"Ici, vous pouvez entrer le URL ou les métadonnées d'IDP ou les métadonnées "
"lui-même (xml)"
#: auths/SAML_enterprise/SAML.py:127
msgid "Entity ID"
@ -541,7 +569,9 @@ msgstr "ID de l'entité"
#: auths/SAML_enterprise/SAML.py:128
msgid "ID of the SP. If left blank, this will be autogenerated from server URL"
msgstr "ID de la SP. Si laissé vide, ce sera généré automatiquement des URL du serveur"
msgstr ""
"ID de la SP. Si laissé vide, ce sera généré automatiquement des URL du "
"serveur"
#: auths/SAML_enterprise/SAML.py:130
msgid "User name attrs"
@ -572,8 +602,8 @@ 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---)"
"Certificat de serveur doit être un PEM valide (PEM certificats commence "
"par---BEGIN CERTIFICATE---)"
#: auths/SAML_enterprise/SAML.py:165
msgid "Invalid server certificate. "
@ -1157,7 +1187,9 @@ msgstr "Cluster HyperV lié Clone (expérimental)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55
#: services/HyperV_enterprise/HyperVLinkedService.py:58
msgid "Hyper Services based on templates and differential disks (experimental)"
msgstr "Hyper Services basés sur des modèles et des disques différentiels (expérimentales)"
msgstr ""
"Hyper Services basés sur des modèles et des disques différentiels "
"(expérimentales)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72
#: services/HyperV_enterprise/HyperVLinkedService.py:75
@ -1199,7 +1231,8 @@ msgstr "Réseau"
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"
"Si plus d'une interface se trouve dans la machine, utiliser un sur ce réseau "
"comme principal"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98
#: services/HyperV_enterprise/HyperVLinkedService.py:101
@ -1222,7 +1255,8 @@ msgstr "Lecteurs de magasin de données"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:101
#: services/HyperV_enterprise/HyperVLinkedService.py:104
msgid "Datastores where to put incrementals & publications"
msgstr "Entrepôts de données où mettre les sauvegardes incrémentielles & publications"
msgstr ""
"Entrepôts de données où mettre les sauvegardes incrémentielles & publications"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:102
#: services/HyperV_enterprise/HyperVLinkedService.py:105
@ -1278,7 +1312,8 @@ msgstr "Fournisseur de Service de Cluster HyperV"
#: services/HyperV_enterprise/HyperVClusterProvider.py:89
#: services/HyperV_enterprise/HyperVProvider.py:81
msgid "HyperV Server IP or Hostname (must enable first WSMAN access)"
msgstr "HyperV serveur IP ou nom d'hôte (doit permettre l'accès WSMAN première)"
msgstr ""
"HyperV serveur IP ou nom d'hôte (doit permettre l'accès WSMAN première)"
#: services/HyperV_enterprise/HyperVClusterProvider.py:90
#: services/HyperV_enterprise/HyperVProvider.py:82
@ -1786,15 +1821,27 @@ msgstr "Tableau de bord de sortie"
msgid "logout"
msgstr "logout"
#: templates/uds/admin/tmpl/authenticators.html:4
msgid "administration of authenticators"
msgstr "administration des authentificateurs"
#: templates/uds/admin/tmpl/connectivity.html:4
#: templates/uds/admin/tmpl/dashboard.html:4
msgid "overview"
msgstr "vue d'ensemble"
#: templates/uds/admin/tmpl/modal.html:18
msgid "Close"
msgstr "Fermer"
#: templates/uds/admin/tmpl/modal.html:25
msgid "Save"
msgstr "Enregistrer"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "Yes"
msgstr "Oui"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "No"
msgstr "Non"
#: templates/uds/html5/detectJava.html:4
msgid "Login redirection to UDS"
msgstr "Redirection de connexion à l'UDS"
@ -2259,8 +2306,8 @@ 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"
"La qualité d'image le plus bas appliquée aux images de maintenir la mise à "
"jour minimale Ravel"
#: transports/RGS-enterprise/RGSTransport.py:51
#: transports/RGS-enterprise/TRGSTransport.py:56
@ -2270,7 +2317,8 @@ msgstr "Cadence réglable"
#: transports/RGS-enterprise/RGSTransport.py:52
#: transports/RGS-enterprise/TRGSTransport.py:57
msgid "Update rate threshold to begin adjusting image quality"
msgstr "Seuil de taux de mise à jour pour commencer le réglage qualité de l'image"
msgstr ""
"Seuil de taux de mise à jour pour commencer le réglage qualité de l'image"
#: transports/RGS-enterprise/RGSTransport.py:53
#: transports/RGS-enterprise/TRGSTransport.py:58
@ -2283,8 +2331,8 @@ 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"
"Changer la résolution de l'expéditeur pour l'adapter résolution du récepteur "
"lorsque connexion"
#: transports/RGS-enterprise/RGSTransport.py:55
#: transports/RGS-enterprise/TRGSTransport.py:60
@ -2326,7 +2374,8 @@ msgstr "RGS Transport pour connexion par tunnel"
#: transports/RGS-enterprise/web.py:82
msgid "In order to use this service, you should first install RGS Receiver."
msgstr "Pour utiliser ce service, vous devez commencer par installer récepteur RGS."
msgstr ""
"Pour utiliser ce service, vous devez commencer par installer récepteur RGS."
#: transports/RGS-enterprise/web.py:83
msgid "HP Website"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,146 +18,234 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: static/adm/js/api-tools.js:46
msgid "Just a moment..."
msgstr "Un instant..."
#: static/adm/js/api-tools.js:75
msgid "Sunday"
msgstr "Dimanche"
#: static/adm/js/api-tools.js:75
msgid "Monday"
msgstr "Lundi"
#: static/adm/js/api-tools.js:75
msgid "Tuesday"
msgstr "Mardi"
#: static/adm/js/api-tools.js:75
msgid "Wednesday"
msgstr "Mercredi"
#: static/adm/js/api-tools.js:76
msgid "Thursday"
msgstr "Jeudi"
#: static/adm/js/api-tools.js:76
msgid "Friday"
msgstr "Vendredi"
#: static/adm/js/api-tools.js:76
msgid "Saturday"
msgstr "Samedi"
#: static/adm/js/api-tools.js:77
msgid "January"
msgstr "Janvier"
#: static/adm/js/api-tools.js:77
msgid "February"
msgstr "Février"
#: static/adm/js/api-tools.js:77
msgid "March"
msgstr "Mars"
#: static/adm/js/api-tools.js:77
msgid "April"
msgstr "Avril"
#: static/adm/js/api-tools.js:77
msgid "May"
msgstr "Mai"
#: static/adm/js/api-tools.js:78
msgid "June"
msgstr "Juin"
#: static/adm/js/api-tools.js:78
msgid "July"
msgstr "Juillet"
#: static/adm/js/api-tools.js:78
msgid "August"
msgstr "Août"
#: static/adm/js/api-tools.js:78
msgid "September"
msgstr "Septembre"
#: static/adm/js/api-tools.js:78
msgid "October"
msgstr "Octobre"
#: static/adm/js/api-tools.js:79
msgid "November"
msgstr "Novembre"
#: static/adm/js/api-tools.js:79
msgid "December"
msgstr "Décembre"
#: static/adm/js/dataTables.bootstrap.js:6 static/adm/js/gui.js:19
msgid "_MENU_ records per page"
msgstr "Documents _MENU_ par page"
#: static/adm/js/gui-elements.js:33
msgid "Service Providers"
msgstr "Fournisseurs de services"
#: static/adm/js/gui.js:18
msgid "_MENU_ records per page"
msgstr "Documents _MENU_ par page"
#: static/adm/js/gui-elements.js:40
msgid "Edit service provider"
msgstr "Modifier le fournisseur de services"
#: static/adm/js/gui.js:19
#: static/adm/js/gui-elements.js:104
msgid "Edit authenticator"
msgstr "Modifier l'authentificateur"
#: static/adm/js/gui-elements.js:149
msgid "Edit transport"
msgstr "Edit de transport"
#: static/adm/js/gui-elements.js:159
msgid "New transport"
msgstr "Nouveau transport"
#: static/adm/js/gui.js:20
msgid "Empty"
msgstr "Vide"
#: static/adm/js/gui.js:20
#: static/adm/js/gui.js:21
msgid "Records _START_ to _END_ of _TOTAL_"
msgstr "Dossiers _START_ à _END_ de _TOTAL_"
#: static/adm/js/gui.js:21
#: static/adm/js/gui.js:22
msgid "No records"
msgstr "Aucun enregistrement"
#: static/adm/js/gui.js:22
#: static/adm/js/gui.js:23
msgid "(filtered from _MAX_ total records)"
msgstr "(filtrée de total d'enregistrements _MAX_)"
#: static/adm/js/gui.js:23
#: static/adm/js/gui.js:24
msgid "Please wait, processing"
msgstr "Veuillez patienter, traitement"
#: static/adm/js/gui.js:24
#: static/adm/js/gui.js:25
msgid "Filter"
msgstr "Filtre"
#: static/adm/js/gui.js:27
#: static/adm/js/gui.js:28
msgid "First"
msgstr "Première"
#: static/adm/js/gui.js:28
#: static/adm/js/gui.js:29
msgid "Last"
msgstr "Dernière"
#: static/adm/js/gui.js:29
#: static/adm/js/gui.js:30
msgid "Next"
msgstr "Prochaine"
#: static/adm/js/gui.js:30
#: static/adm/js/gui.js:31
msgid "Previous"
msgstr "Précédent"
#: static/adm/js/gui.js:75
msgid "Deployed services"
msgstr "Services déployés"
#: static/adm/js/gui.js:37
msgid "New"
msgstr "Nouveau"
#: static/adm/js/gui.js:360
#: static/adm/js/gui.js:41
msgid "Edit"
msgstr "Edit"
#: static/adm/js/gui.js:369
#: static/adm/js/gui.js:45
msgid "Delete"
msgstr "Supprimer"
#: static/adm/js/gui.js:378
#: static/adm/js/gui.js:49
msgid "Refresh"
msgstr "Actualisation"
#: static/adm/js/strftime.js:30
msgid "Sunday"
msgstr "Dimanche"
#: static/adm/js/gui.js:53
msgid "Xls"
msgstr "XLS"
#: static/adm/js/strftime.js:30
msgid "Monday"
msgstr "Lundi"
#: static/adm/js/gui.js:166
msgid "Deployed services"
msgstr "Services déployés"
#: static/adm/js/strftime.js:30
msgid "Tuesday"
msgstr "Mardi"
#: static/adm/js/gui.js:204
msgid "This field is required."
msgstr "Ce champ est obligatoire."
#: static/adm/js/strftime.js:31
msgid "Wednesday"
msgstr "Mercredi"
#: static/adm/js/gui.js:205
msgid "Please fix this field."
msgstr "Corrigez ce champ."
#: static/adm/js/strftime.js:31
msgid "Thursday"
msgstr "Jeudi"
#: static/adm/js/gui.js:206
msgid "Please enter a valid email address."
msgstr "Veuillez entrer une adresse email valide."
#: static/adm/js/strftime.js:31
msgid "Friday"
msgstr "Vendredi"
#: static/adm/js/gui.js:207
msgid "Please enter a valid URL."
msgstr "Veuillez entrer une URL valide."
#: static/adm/js/strftime.js:31
msgid "Saturday"
msgstr "Samedi"
#: static/adm/js/gui.js:208
msgid "Please enter a valid date."
msgstr "Veuillez entrer une date valide."
#: static/adm/js/strftime.js:32
msgid "January"
msgstr "Janvier"
#: static/adm/js/gui.js:209
msgid "Please enter a valid date (ISO)."
msgstr "Veuillez entrer une date valide (ISO)."
#: static/adm/js/strftime.js:32
msgid "February"
msgstr "Février"
#: static/adm/js/gui.js:210
msgid "Please enter a valid number."
msgstr "Veuillez entrer un numéro valide."
#: static/adm/js/strftime.js:32
msgid "March"
msgstr "Mars"
#: static/adm/js/gui.js:211
msgid "Please enter only digits."
msgstr "Veuillez saisir uniquement des chiffres."
#: static/adm/js/strftime.js:33
msgid "April"
msgstr "Avril"
#: static/adm/js/gui.js:212
msgid "Please enter a valid credit card number."
msgstr "Veuillez entrer un numéro de carte de crédit valide."
#: static/adm/js/strftime.js:33
msgid "May"
msgstr "Mai"
#: static/adm/js/gui.js:213
msgid "Please enter the same value again."
msgstr "Entrez à nouveau la même valeur."
#: static/adm/js/strftime.js:33
msgid "June"
msgstr "Juin"
#: static/adm/js/gui.js:214
msgid "Please enter no more than {0} characters."
msgstr "S'il vous plaît entrez pas plus de {0} caractères."
#: static/adm/js/strftime.js:33
msgid "July"
msgstr "Juillet"
#: static/adm/js/gui.js:215
msgid "Please enter at least {0} characters."
msgstr "Veuillez saisir au moins {0} caractères."
#: static/adm/js/strftime.js:34
msgid "August"
msgstr "Août"
#: static/adm/js/gui.js:216
msgid "Please enter a value between {0} and {1} characters long."
msgstr "Veuillez entrer une valeur entre {0} et {1} caractères longtemps."
#: static/adm/js/strftime.js:34
msgid "September"
msgstr "Septembre"
#: static/adm/js/gui.js:217
msgid "Please enter a value between {0} and {1}."
msgstr "Veuillez entrer une valeur entre {0} et {1}."
#: static/adm/js/strftime.js:34
msgid "October"
msgstr "Octobre"
#: static/adm/js/gui.js:218
msgid "Please enter a value less than or equal to {0}."
msgstr "Veuillez entrer une valeur inférieure ou égale à {0}."
#: static/adm/js/strftime.js:34
msgid "November"
msgstr "Novembre"
#: static/adm/js/strftime.js:35
msgid "December"
msgstr "Décembre"
#: static/adm/js/tools.js:46
msgid "Just a moment..."
msgstr "Un instant..."
#: static/adm/js/gui.js:219
msgid "Please enter a value greater than or equal to {0}."
msgstr "Entrez une valeur supérieure ou égale à {0}."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,22 +18,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticatori correnti"
#: REST/methods/authenticators.py:82 REST/methods/networks.py:68
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
#: REST/methods/transports.py:71 REST/methods/users.py:77
#: REST/mixins.py:172 REST/methods/authenticators.py:82
#: REST/methods/networks.py:68 REST/methods/osmanagers.py:71
#: REST/methods/providers.py:75 REST/methods/transports.py:79
#: REST/methods/users_groups.py:73
msgid "Name"
msgstr "Nome"
#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72
#: REST/methods/providers.py:70 REST/methods/transports.py:72
#: REST/methods/users.py:78
#: REST/mixins.py:175
msgid "Name of this element"
msgstr "Nome di questo elemento"
#: REST/mixins.py:189 REST/methods/authenticators.py:83
#: REST/methods/osmanagers.py:72 REST/methods/providers.py:76
#: REST/methods/transports.py:80 REST/methods/users_groups.py:74
#: REST/methods/users_groups.py:102
msgid "Comments"
msgstr "Commenti"
#: REST/mixins.py:192
msgid "Comments for this element"
msgstr "Commenti per questo elemento"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticatori correnti"
#: REST/methods/authenticators.py:84
msgid "Users"
msgstr "Utenti"
@ -48,7 +58,7 @@ msgid "Networks"
msgstr "Reti"
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
#: REST/methods/transports.py:73
#: REST/methods/transports.py:81
msgid "Used by"
msgstr "Utilizzato da"
@ -56,40 +66,49 @@ msgstr "Utilizzato da"
msgid "Current OS Managers"
msgstr "Attuale OS Manager"
#: REST/methods/providers.py:67
#: REST/methods/providers.py:73
msgid "Current service providers"
msgstr "Attuali fornitori di servizi"
#: REST/methods/providers.py:71 templates/uds/index.html:51
#: REST/methods/providers.py:77 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Servizi"
#: REST/methods/transports.py:69
#: REST/methods/transports.py:77
msgid "Current Transports"
msgstr "Trasporti correnti"
#: REST/methods/users.py:70
#: REST/methods/users_groups.py:66
#, python-brace-format
msgid "Users of {0}"
msgstr "Utenti di {0}"
#: REST/methods/users.py:72
#: REST/methods/users_groups.py:68
msgid "Current users"
msgstr "Utenti correnti"
#: REST/methods/users.py:76
#: REST/methods/users_groups.py:72 REST/methods/users_groups.py:101
msgid "User Id"
msgstr "Id utente"
#: REST/methods/users.py:79
#: REST/methods/users_groups.py:75 REST/methods/users_groups.py:103
msgid "state"
msgstr "stato"
#: REST/methods/users.py:80
#: REST/methods/users_groups.py:76
msgid "Last access"
msgstr "Ultimo accesso"
#: REST/methods/users_groups.py:95
#, python-brace-format
msgid "Groups of {0}"
msgstr "Gruppi di {0}"
#: REST/methods/users_groups.py:97
msgid "Current groups"
msgstr "Gruppi di corrente"
#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422
msgid "Forbidden"
msgstr "Vietato"
@ -128,7 +147,9 @@ msgstr "Compatibilità"
#: auths/ActiveDirectory_enterprise/Authenticator.py:31
msgid "Compatibility of AD connection (Usually windows 2000 and later)"
msgstr "Compatibilità di connessione AD (solitamente windows 2000 e versioni successive)"
msgstr ""
"Compatibilità di connessione AD (solitamente windows 2000 e versioni "
"successive)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:33
#: auths/RegexLdap/Authenticator.py:52 auths/SimpleLDAP/Authenticator.py:52
@ -140,8 +161,8 @@ 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)"
"Nome utente con privilegi di lettura sulla base selezionato (uso USER@DOMAIN."
"Forma di DOM per questo)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:34
#: auths/ActiveDirectory_enterprise/Authenticator.py:52
@ -265,8 +286,7 @@ msgstr "LDAP non sembra un'Active Directory (no, non sono oggetti di gruppo)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:472
msgid ""
"Ldap does not seem an Active Directory (do not have any user nor groups)"
msgstr ""
"LDAP non sembra un'Active Directory (non hanno alcun utente né gruppi)"
msgstr "LDAP non sembra un'Active Directory (non hanno alcun utente né gruppi)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:477
#: auths/EDirectory_enterprise/Authenticator.py:358
@ -345,7 +365,8 @@ msgstr "Attributo di gruppo previsto "
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?)"
"LDAP dell'utente utente o classe id attr è probabilmente sbagliato (Ldap è "
"un eDirectory?)"
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
msgid "IP Authenticator"
@ -486,8 +507,8 @@ 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"
"Chiave privata utilizzata per segno ed encription, come generato in base 64 "
"da OpenSSL"
#: auths/SAML_enterprise/SAML.py:122
msgid "Certificate"
@ -513,7 +534,9 @@ msgstr "ID entità"
#: auths/SAML_enterprise/SAML.py:128
msgid "ID of the SP. If left blank, this will be autogenerated from server URL"
msgstr "ID della SP. Se lasciato vuoto, questo sarà generato automaticamente dal server URL"
msgstr ""
"ID della SP. Se lasciato vuoto, questo sarà generato automaticamente dal "
"server URL"
#: auths/SAML_enterprise/SAML.py:130
msgid "User name attrs"
@ -544,8 +567,8 @@ 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---)"
"Certificato server dovrebbe essere un valido PEM (PEM certificati inizia "
"con---BEGIN CERTIFICATE---)"
#: auths/SAML_enterprise/SAML.py:165
msgid "Invalid server certificate. "
@ -556,8 +579,8 @@ 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-"
"Chiave privata deve essere un valido PEM (PEM chiavi private inizia con----"
"BEGIN CHIAVE PRIVATA RSA-"
#: auths/SAML_enterprise/SAML.py:197
#, python-brace-format
@ -1172,7 +1195,8 @@ msgstr "Rete"
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"
"Se più di 1 interfaccia si trova in macchina, utilizzare uno su questa rete "
"come principale"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98
#: services/HyperV_enterprise/HyperVLinkedService.py:101
@ -1250,7 +1274,9 @@ msgstr "HyperV Cluster Service Provider"
#: services/HyperV_enterprise/HyperVClusterProvider.py:89
#: services/HyperV_enterprise/HyperVProvider.py:81
msgid "HyperV Server IP or Hostname (must enable first WSMAN access)"
msgstr "HyperV Server IP o l'Hostname (necessario abilitare l'accesso prima di WS-Management)"
msgstr ""
"HyperV Server IP o l'Hostname (necessario abilitare l'accesso prima di WS-"
"Management)"
#: services/HyperV_enterprise/HyperVClusterProvider.py:90
#: services/HyperV_enterprise/HyperVProvider.py:82
@ -1620,7 +1646,8 @@ msgstr "Base di clone collegato VMWare"
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"
"Questo servizio fornisce l'accesso alle macchine collegate cloni su un "
"Virtual Center"
#: templates/404.html:3 templates/500.html:3
msgid "Page not found"
@ -1754,15 +1781,27 @@ msgstr "Cruscotto di uscita"
msgid "logout"
msgstr "logout"
#: templates/uds/admin/tmpl/authenticators.html:4
msgid "administration of authenticators"
msgstr "amministrazione di autenticatori"
#: templates/uds/admin/tmpl/connectivity.html:4
#: templates/uds/admin/tmpl/dashboard.html:4
msgid "overview"
msgstr "Panoramica"
#: templates/uds/admin/tmpl/modal.html:18
msgid "Close"
msgstr "Chiudere"
#: templates/uds/admin/tmpl/modal.html:25
msgid "Save"
msgstr "Salvare"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "Yes"
msgstr "Sì"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "No"
msgstr "No"
#: templates/uds/html5/detectJava.html:4
msgid "Login redirection to UDS"
msgstr "Reindirizzamento login a UDS"
@ -2210,7 +2249,9 @@ msgstr "Qualità regolabili"
#: transports/RGS-enterprise/RGSTransport.py:48
#: transports/RGS-enterprise/TRGSTransport.py:53
msgid "If checked, the image quality will be adjustable with bandwidth"
msgstr "Se selezionata, la qualità dell'immagine sarà regolabile con larghezza di banda"
msgstr ""
"Se selezionata, la qualità dell'immagine sarà regolabile con larghezza di "
"banda"
#: transports/RGS-enterprise/RGSTransport.py:49
#: transports/RGS-enterprise/TRGSTransport.py:54
@ -2223,8 +2264,8 @@ 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."
"La qualità d'immagine più bassa applicata alle immagini per mantenere "
"l'aggiornamento minimo tasso."
#: transports/RGS-enterprise/RGSTransport.py:51
#: transports/RGS-enterprise/TRGSTransport.py:56
@ -2234,7 +2275,9 @@ msgstr "Frequenza fotogrammi regolabile"
#: transports/RGS-enterprise/RGSTransport.py:52
#: transports/RGS-enterprise/TRGSTransport.py:57
msgid "Update rate threshold to begin adjusting image quality"
msgstr "Soglia tasso di aggiornamento per iniziare a regolare la qualità dell'immagine"
msgstr ""
"Soglia tasso di aggiornamento per iniziare a regolare la qualità "
"dell'immagine"
#: transports/RGS-enterprise/RGSTransport.py:53
#: transports/RGS-enterprise/TRGSTransport.py:58
@ -2247,8 +2290,8 @@ 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"
"Cambiare risoluzione del mittente per abbinare la risoluzione del ricevitore "
"quando collegamento"
#: transports/RGS-enterprise/RGSTransport.py:55
#: transports/RGS-enterprise/TRGSTransport.py:60
@ -2290,7 +2333,9 @@ msgstr "RGS trasporto per connessione con tunnel"
#: transports/RGS-enterprise/web.py:82
msgid "In order to use this service, you should first install RGS Receiver."
msgstr "Per poter utilizzare questo servizio, è necessario prima installare RGS ricevitore."
msgstr ""
"Per poter utilizzare questo servizio, è necessario prima installare RGS "
"ricevitore."
#: transports/RGS-enterprise/web.py:83
msgid "HP Website"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,146 +18,234 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/adm/js/api-tools.js:46
msgid "Just a moment..."
msgstr "Solo un momento..."
#: static/adm/js/api-tools.js:75
msgid "Sunday"
msgstr "Domenica"
#: static/adm/js/api-tools.js:75
msgid "Monday"
msgstr "Lunedì"
#: static/adm/js/api-tools.js:75
msgid "Tuesday"
msgstr "Martedì"
#: static/adm/js/api-tools.js:75
msgid "Wednesday"
msgstr "Mercoledì"
#: static/adm/js/api-tools.js:76
msgid "Thursday"
msgstr "Giovedì"
#: static/adm/js/api-tools.js:76
msgid "Friday"
msgstr "Venerdì"
#: static/adm/js/api-tools.js:76
msgid "Saturday"
msgstr "Sabato"
#: static/adm/js/api-tools.js:77
msgid "January"
msgstr "Gennaio"
#: static/adm/js/api-tools.js:77
msgid "February"
msgstr "Febbraio"
#: static/adm/js/api-tools.js:77
msgid "March"
msgstr "Marzo"
#: static/adm/js/api-tools.js:77
msgid "April"
msgstr "Aprile"
#: static/adm/js/api-tools.js:77
msgid "May"
msgstr "Maggio"
#: static/adm/js/api-tools.js:78
msgid "June"
msgstr "Giugno"
#: static/adm/js/api-tools.js:78
msgid "July"
msgstr "Luglio"
#: static/adm/js/api-tools.js:78
msgid "August"
msgstr "Agosto"
#: static/adm/js/api-tools.js:78
msgid "September"
msgstr "Settembre"
#: static/adm/js/api-tools.js:78
msgid "October"
msgstr "Ottobre"
#: static/adm/js/api-tools.js:79
msgid "November"
msgstr "Novembre"
#: static/adm/js/api-tools.js:79
msgid "December"
msgstr "Dicembre"
#: static/adm/js/dataTables.bootstrap.js:6 static/adm/js/gui.js:19
msgid "_MENU_ records per page"
msgstr "Record _MENU_ per pagina"
#: static/adm/js/gui-elements.js:33
msgid "Service Providers"
msgstr "Fornitori di servizi"
#: static/adm/js/gui.js:18
msgid "_MENU_ records per page"
msgstr "Record _MENU_ per pagina"
#: static/adm/js/gui-elements.js:40
msgid "Edit service provider"
msgstr "Modificare il provider di servizi"
#: static/adm/js/gui.js:19
#: static/adm/js/gui-elements.js:104
msgid "Edit authenticator"
msgstr "Modifica autenticatore"
#: static/adm/js/gui-elements.js:149
msgid "Edit transport"
msgstr "Modifica trasporto"
#: static/adm/js/gui-elements.js:159
msgid "New transport"
msgstr "Nuovo trasporto"
#: static/adm/js/gui.js:20
msgid "Empty"
msgstr "Vuoto"
#: static/adm/js/gui.js:20
#: static/adm/js/gui.js:21
msgid "Records _START_ to _END_ of _TOTAL_"
msgstr "Registra _START_ a _END_ di _TOTAL_"
#: static/adm/js/gui.js:21
#: static/adm/js/gui.js:22
msgid "No records"
msgstr "Nessun record"
#: static/adm/js/gui.js:22
#: static/adm/js/gui.js:23
msgid "(filtered from _MAX_ total records)"
msgstr "(filtrato da record totale _MAX_)"
#: static/adm/js/gui.js:23
#: static/adm/js/gui.js:24
msgid "Please wait, processing"
msgstr "Attendere prego, elaborazione"
#: static/adm/js/gui.js:24
#: static/adm/js/gui.js:25
msgid "Filter"
msgstr "Filtro"
#: static/adm/js/gui.js:27
#: static/adm/js/gui.js:28
msgid "First"
msgstr "Primo"
#: static/adm/js/gui.js:28
#: static/adm/js/gui.js:29
msgid "Last"
msgstr "Ultima"
#: static/adm/js/gui.js:29
#: static/adm/js/gui.js:30
msgid "Next"
msgstr "Prossimo"
#: static/adm/js/gui.js:30
#: static/adm/js/gui.js:31
msgid "Previous"
msgstr "Precedente"
#: static/adm/js/gui.js:75
msgid "Deployed services"
msgstr "Servizi distribuiti"
#: static/adm/js/gui.js:37
msgid "New"
msgstr "Nuovo"
#: static/adm/js/gui.js:360
#: static/adm/js/gui.js:41
msgid "Edit"
msgstr "Modifica"
#: static/adm/js/gui.js:369
#: static/adm/js/gui.js:45
msgid "Delete"
msgstr "Eliminare"
#: static/adm/js/gui.js:378
#: static/adm/js/gui.js:49
msgid "Refresh"
msgstr "Aggiornamento"
#: static/adm/js/strftime.js:30
msgid "Sunday"
msgstr "Domenica"
#: static/adm/js/gui.js:53
msgid "Xls"
msgstr "Xls"
#: static/adm/js/strftime.js:30
msgid "Monday"
msgstr "Lunedì"
#: static/adm/js/gui.js:166
msgid "Deployed services"
msgstr "Servizi distribuiti"
#: static/adm/js/strftime.js:30
msgid "Tuesday"
msgstr "Martedì"
#: static/adm/js/gui.js:204
msgid "This field is required."
msgstr "Questo campo è obbligatorio."
#: static/adm/js/strftime.js:31
msgid "Wednesday"
msgstr "Mercoledì"
#: static/adm/js/gui.js:205
msgid "Please fix this field."
msgstr "Si prega di correggere questo campo."
#: static/adm/js/strftime.js:31
msgid "Thursday"
msgstr "Giovedì"
#: static/adm/js/gui.js:206
msgid "Please enter a valid email address."
msgstr "Inserisci un indirizzo email valido."
#: static/adm/js/strftime.js:31
msgid "Friday"
msgstr "Venerdì"
#: static/adm/js/gui.js:207
msgid "Please enter a valid URL."
msgstr "Immettere un URL valido."
#: static/adm/js/strftime.js:31
msgid "Saturday"
msgstr "Sabato"
#: static/adm/js/gui.js:208
msgid "Please enter a valid date."
msgstr "Inserisci una data valida."
#: static/adm/js/strftime.js:32
msgid "January"
msgstr "Gennaio"
#: static/adm/js/gui.js:209
msgid "Please enter a valid date (ISO)."
msgstr "Inserisci una data valida (ISO)."
#: static/adm/js/strftime.js:32
msgid "February"
msgstr "Febbraio"
#: static/adm/js/gui.js:210
msgid "Please enter a valid number."
msgstr "Si prega di inserire un numero valido."
#: static/adm/js/strftime.js:32
msgid "March"
msgstr "Marzo"
#: static/adm/js/gui.js:211
msgid "Please enter only digits."
msgstr "Inserire solo cifre."
#: static/adm/js/strftime.js:33
msgid "April"
msgstr "Aprile"
#: static/adm/js/gui.js:212
msgid "Please enter a valid credit card number."
msgstr "Si prega di inserire un numero di carta di credito valida."
#: static/adm/js/strftime.js:33
msgid "May"
msgstr "Maggio"
#: static/adm/js/gui.js:213
msgid "Please enter the same value again."
msgstr "Inserisci nuovamente lo stesso valore."
#: static/adm/js/strftime.js:33
msgid "June"
msgstr "Giugno"
#: static/adm/js/gui.js:214
msgid "Please enter no more than {0} characters."
msgstr "Si prega di inserire non più di {0} caratteri."
#: static/adm/js/strftime.js:33
msgid "July"
msgstr "Luglio"
#: static/adm/js/gui.js:215
msgid "Please enter at least {0} characters."
msgstr "Si prega di inserire almeno {0} caratteri."
#: static/adm/js/strftime.js:34
msgid "August"
msgstr "Agosto"
#: static/adm/js/gui.js:216
msgid "Please enter a value between {0} and {1} characters long."
msgstr "Per favore inserisci un valore tra {0} e {1} caratteri lungo."
#: static/adm/js/strftime.js:34
msgid "September"
msgstr "Settembre"
#: static/adm/js/gui.js:217
msgid "Please enter a value between {0} and {1}."
msgstr "Immettere un valore compreso tra {0} e {1}."
#: static/adm/js/strftime.js:34
msgid "October"
msgstr "Ottobre"
#: static/adm/js/gui.js:218
msgid "Please enter a value less than or equal to {0}."
msgstr "Inserisci un valore minore o uguale a {0}."
#: static/adm/js/strftime.js:34
msgid "November"
msgstr "Novembre"
#: static/adm/js/strftime.js:35
msgid "December"
msgstr "Dicembre"
#: static/adm/js/tools.js:46
msgid "Just a moment..."
msgstr "Solo un momento..."
#: static/adm/js/gui.js:219
msgid "Please enter a value greater than or equal to {0}."
msgstr "Immettere un valore maggiore o uguale a {0}."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,22 +18,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticadores atuais"
#: REST/methods/authenticators.py:82 REST/methods/networks.py:68
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
#: REST/methods/transports.py:71 REST/methods/users.py:77
#: REST/mixins.py:172 REST/methods/authenticators.py:82
#: REST/methods/networks.py:68 REST/methods/osmanagers.py:71
#: REST/methods/providers.py:75 REST/methods/transports.py:79
#: REST/methods/users_groups.py:73
msgid "Name"
msgstr "Nome"
#: REST/methods/authenticators.py:83 REST/methods/osmanagers.py:72
#: REST/methods/providers.py:70 REST/methods/transports.py:72
#: REST/methods/users.py:78
#: REST/mixins.py:175
msgid "Name of this element"
msgstr "Nome deste elemento"
#: REST/mixins.py:189 REST/methods/authenticators.py:83
#: REST/methods/osmanagers.py:72 REST/methods/providers.py:76
#: REST/methods/transports.py:80 REST/methods/users_groups.py:74
#: REST/methods/users_groups.py:102
msgid "Comments"
msgstr "Comentários"
#: REST/mixins.py:192
msgid "Comments for this element"
msgstr "Comentários para este elemento"
#: REST/methods/authenticators.py:80
msgid "Current authenticators"
msgstr "Autenticadores atuais"
#: REST/methods/authenticators.py:84
msgid "Users"
msgstr "Usuários"
@ -48,7 +58,7 @@ msgid "Networks"
msgstr "Redes"
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
#: REST/methods/transports.py:73
#: REST/methods/transports.py:81
msgid "Used by"
msgstr "Usado por"
@ -56,40 +66,49 @@ msgstr "Usado por"
msgid "Current OS Managers"
msgstr "Atual OS gerentes"
#: REST/methods/providers.py:67
#: REST/methods/providers.py:73
msgid "Current service providers"
msgstr "Provedores de serviço atual"
#: REST/methods/providers.py:71 templates/uds/index.html:51
#: REST/methods/providers.py:77 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Serviços"
#: REST/methods/transports.py:69
#: REST/methods/transports.py:77
msgid "Current Transports"
msgstr "Atuais transportes"
#: REST/methods/users.py:70
#: REST/methods/users_groups.py:66
#, python-brace-format
msgid "Users of {0}"
msgstr "Usuários de {0}"
#: REST/methods/users.py:72
#: REST/methods/users_groups.py:68
msgid "Current users"
msgstr "Usuários atuais"
#: REST/methods/users.py:76
#: REST/methods/users_groups.py:72 REST/methods/users_groups.py:101
msgid "User Id"
msgstr "Id de usuário"
#: REST/methods/users.py:79
#: REST/methods/users_groups.py:75 REST/methods/users_groups.py:103
msgid "state"
msgstr "Estado"
#: REST/methods/users.py:80
#: REST/methods/users_groups.py:76
msgid "Last access"
msgstr "Último acesso"
#: REST/methods/users_groups.py:95
#, python-brace-format
msgid "Groups of {0}"
msgstr "Grupos de {0}"
#: REST/methods/users_groups.py:97
msgid "Current groups"
msgstr "Grupos atuais"
#: admin/views.py:55 admin/views.py:63 admin/views.py:77 web/views.py:422
msgid "Forbidden"
msgstr "Proibido"
@ -140,8 +159,8 @@ 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)"
"Nome de usuário com privilégios de leitura da base selecionada (uso "
"USER@DOMAIN.Formulário de DOM para isso)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:34
#: auths/ActiveDirectory_enterprise/Authenticator.py:52
@ -265,8 +284,7 @@ msgstr "Não parece um Active Directory LDAP (não não têm objetos de grupo)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:472
msgid ""
"Ldap does not seem an Active Directory (do not have any user nor groups)"
msgstr ""
"Não parece um Active Directory LDAP (não tem nenhum usuário ou grupos)"
msgstr "Não parece um Active Directory LDAP (não tem nenhum usuário ou grupos)"
#: auths/ActiveDirectory_enterprise/Authenticator.py:477
#: auths/EDirectory_enterprise/Authenticator.py:358
@ -345,7 +363,8 @@ msgstr "Atributo esperado grupo "
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?)"
"LDAP usuário classe ou usuário id attr provavelmente está errado (Ldap é do "
"eDirectory?)"
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
msgid "IP Authenticator"
@ -506,7 +525,8 @@ msgstr "Metadados do IDP"
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)"
"Você pode entrar aqui a URL ou os metadados do IDP ou os metadados em si "
"(xml)"
#: auths/SAML_enterprise/SAML.py:127
msgid "Entity ID"
@ -514,7 +534,9 @@ msgstr "ID da entidade"
#: auths/SAML_enterprise/SAML.py:128
msgid "ID of the SP. If left blank, this will be autogenerated from server URL"
msgstr "ID do SP. Se deixado em branco, este será gerado automaticamente do servidor URL"
msgstr ""
"ID do SP. Se deixado em branco, este será gerado automaticamente do servidor "
"URL"
#: auths/SAML_enterprise/SAML.py:130
msgid "User name attrs"
@ -557,8 +579,8 @@ 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--"
"A chave privada deve ser um válido PEM (PEM chaves privadas começa com---"
"BEGIN RSA PRIVATE KEY--"
#: auths/SAML_enterprise/SAML.py:197
#, python-brace-format
@ -1129,7 +1151,8 @@ msgstr "Cluster Hyper-v ligada Clone (Experimental)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:55
#: services/HyperV_enterprise/HyperVLinkedService.py:58
msgid "Hyper Services based on templates and differential disks (experimental)"
msgstr "Hiper serviços baseados em modelos e discos diferenciais (experimentais)"
msgstr ""
"Hiper serviços baseados em modelos e discos diferenciais (experimentais)"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:72
#: services/HyperV_enterprise/HyperVLinkedService.py:75
@ -1172,7 +1195,8 @@ msgstr "Rede"
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"
"Se mais de 1 relação encontra-se na máquina, utilize um nesta rede como "
"principal"
#: services/HyperV_enterprise/HyperVClusterLinkedService.py:98
#: services/HyperV_enterprise/HyperVLinkedService.py:101
@ -1250,7 +1274,9 @@ msgstr "Provedor de serviço de Cluster Hyper-v"
#: services/HyperV_enterprise/HyperVClusterProvider.py:89
#: services/HyperV_enterprise/HyperVProvider.py:81
msgid "HyperV Server IP or Hostname (must enable first WSMAN access)"
msgstr "Hyper-v Server IP ou nome do host (habilite o primeiro acesso do WS-Management)"
msgstr ""
"Hyper-v Server IP ou nome do host (habilite o primeiro acesso do WS-"
"Management)"
#: services/HyperV_enterprise/HyperVClusterProvider.py:90
#: services/HyperV_enterprise/HyperVProvider.py:82
@ -1621,7 +1647,8 @@ msgstr "Base de clones vinculados da VMWare"
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"
"Este serviço fornece acesso a máquinas de Clones vinculados em um Virtual "
"Center"
#: templates/404.html:3 templates/500.html:3
msgid "Page not found"
@ -1756,15 +1783,27 @@ msgstr "Painel de saída"
msgid "logout"
msgstr "logout"
#: templates/uds/admin/tmpl/authenticators.html:4
msgid "administration of authenticators"
msgstr "Administração de autenticadores"
#: templates/uds/admin/tmpl/connectivity.html:4
#: templates/uds/admin/tmpl/dashboard.html:4
msgid "overview"
msgstr "Visão geral"
#: templates/uds/admin/tmpl/modal.html:18
msgid "Close"
msgstr "Fechar"
#: templates/uds/admin/tmpl/modal.html:25
msgid "Save"
msgstr "Salvar"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "Yes"
msgstr "Sim"
#: templates/uds/admin/tmpl/fld/checkbox.html:4
msgid "No"
msgstr "Não"
#: templates/uds/html5/detectJava.html:4
msgid "Login redirection to UDS"
msgstr "Redirecionamento de login para UDS"
@ -2221,8 +2260,8 @@ 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."
"A qualidade de imagem mais baixa aplicada às imagens para manter a "
"atualização mínima taxa."
#: transports/RGS-enterprise/RGSTransport.py:51
#: transports/RGS-enterprise/TRGSTransport.py:56
@ -2232,7 +2271,8 @@ msgstr "Taxa de Frame ajustável"
#: transports/RGS-enterprise/RGSTransport.py:52
#: transports/RGS-enterprise/TRGSTransport.py:57
msgid "Update rate threshold to begin adjusting image quality"
msgstr "Limite de taxa de atualização para começar a ajustar a qualidade da imagem"
msgstr ""
"Limite de taxa de atualização para começar a ajustar a qualidade da imagem"
#: transports/RGS-enterprise/RGSTransport.py:53
#: transports/RGS-enterprise/TRGSTransport.py:58
@ -2245,8 +2285,8 @@ 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"
"Alterar a resolução do remetente para coincidir com a resolução do receptor "
"quando Conectando-se"
#: transports/RGS-enterprise/RGSTransport.py:55
#: transports/RGS-enterprise/TRGSTransport.py:60

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-20 04:05+0100\n"
"POT-Creation-Date: 2013-11-23 22:34+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,146 +18,234 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/adm/js/api-tools.js:46
msgid "Just a moment..."
msgstr "Só um momento..."
#: static/adm/js/api-tools.js:75
msgid "Sunday"
msgstr "Domingo"
#: static/adm/js/api-tools.js:75
msgid "Monday"
msgstr "Segunda-feira"
#: static/adm/js/api-tools.js:75
msgid "Tuesday"
msgstr "Terça-feira"
#: static/adm/js/api-tools.js:75
msgid "Wednesday"
msgstr "Quarta-feira"
#: static/adm/js/api-tools.js:76
msgid "Thursday"
msgstr "Quinta-feira"
#: static/adm/js/api-tools.js:76
msgid "Friday"
msgstr "Sexta-feira"
#: static/adm/js/api-tools.js:76
msgid "Saturday"
msgstr "Sábado"
#: static/adm/js/api-tools.js:77
msgid "January"
msgstr "Janeiro de"
#: static/adm/js/api-tools.js:77
msgid "February"
msgstr "Fevereiro"
#: static/adm/js/api-tools.js:77
msgid "March"
msgstr "Março de"
#: static/adm/js/api-tools.js:77
msgid "April"
msgstr "Abril"
#: static/adm/js/api-tools.js:77
msgid "May"
msgstr "Maio"
#: static/adm/js/api-tools.js:78
msgid "June"
msgstr "Junho de"
#: static/adm/js/api-tools.js:78
msgid "July"
msgstr "Julho"
#: static/adm/js/api-tools.js:78
msgid "August"
msgstr "Agosto"
#: static/adm/js/api-tools.js:78
msgid "September"
msgstr "Setembro"
#: static/adm/js/api-tools.js:78
msgid "October"
msgstr "Outubro"
#: static/adm/js/api-tools.js:79
msgid "November"
msgstr "Novembro"
#: static/adm/js/api-tools.js:79
msgid "December"
msgstr "Dezembro de"
#: static/adm/js/dataTables.bootstrap.js:6 static/adm/js/gui.js:19
msgid "_MENU_ records per page"
msgstr "Registros _MENU_ por página"
#: static/adm/js/gui-elements.js:33
msgid "Service Providers"
msgstr "Prestadores de serviços"
#: static/adm/js/gui.js:18
msgid "_MENU_ records per page"
msgstr "Registros _MENU_ por página"
#: static/adm/js/gui-elements.js:40
msgid "Edit service provider"
msgstr "Editar Provedor de serviço"
#: static/adm/js/gui.js:19
#: static/adm/js/gui-elements.js:104
msgid "Edit authenticator"
msgstr "Editar autenticador"
#: static/adm/js/gui-elements.js:149
msgid "Edit transport"
msgstr "Editar transportes"
#: static/adm/js/gui-elements.js:159
msgid "New transport"
msgstr "Novo transporte"
#: static/adm/js/gui.js:20
msgid "Empty"
msgstr "Vazio"
#: static/adm/js/gui.js:20
#: static/adm/js/gui.js:21
msgid "Records _START_ to _END_ of _TOTAL_"
msgstr "Registros _START_ para _END_ de _TOTAL_"
#: static/adm/js/gui.js:21
#: static/adm/js/gui.js:22
msgid "No records"
msgstr "Não há registros"
#: static/adm/js/gui.js:22
#: static/adm/js/gui.js:23
msgid "(filtered from _MAX_ total records)"
msgstr "(filtrada de registros total de _MAX_)"
#: static/adm/js/gui.js:23
#: static/adm/js/gui.js:24
msgid "Please wait, processing"
msgstr "Aguarde, processamento"
#: static/adm/js/gui.js:24
#: static/adm/js/gui.js:25
msgid "Filter"
msgstr "Filtro"
#: static/adm/js/gui.js:27
#: static/adm/js/gui.js:28
msgid "First"
msgstr "Primeiro"
#: static/adm/js/gui.js:28
#: static/adm/js/gui.js:29
msgid "Last"
msgstr "Última"
#: static/adm/js/gui.js:29
#: static/adm/js/gui.js:30
msgid "Next"
msgstr "Próxima"
#: static/adm/js/gui.js:30
#: static/adm/js/gui.js:31
msgid "Previous"
msgstr "Anterior"
#: static/adm/js/gui.js:75
msgid "Deployed services"
msgstr "Serviços implantados"
#: static/adm/js/gui.js:37
msgid "New"
msgstr "Novo"
#: static/adm/js/gui.js:360
#: static/adm/js/gui.js:41
msgid "Edit"
msgstr "Editar"
#: static/adm/js/gui.js:369
#: static/adm/js/gui.js:45
msgid "Delete"
msgstr "Excluir"
#: static/adm/js/gui.js:378
#: static/adm/js/gui.js:49
msgid "Refresh"
msgstr "Atualização"
#: static/adm/js/strftime.js:30
msgid "Sunday"
msgstr "Domingo"
#: static/adm/js/gui.js:53
msgid "Xls"
msgstr "Xls"
#: static/adm/js/strftime.js:30
msgid "Monday"
msgstr "Segunda-feira"
#: static/adm/js/gui.js:166
msgid "Deployed services"
msgstr "Serviços implantados"
#: static/adm/js/strftime.js:30
msgid "Tuesday"
msgstr "Terça-feira"
#: static/adm/js/gui.js:204
msgid "This field is required."
msgstr "Este campo é obrigatório."
#: static/adm/js/strftime.js:31
msgid "Wednesday"
msgstr "Quarta-feira"
#: static/adm/js/gui.js:205
msgid "Please fix this field."
msgstr "Por favor corrigi este campo."
#: static/adm/js/strftime.js:31
msgid "Thursday"
msgstr "Quinta-feira"
#: static/adm/js/gui.js:206
msgid "Please enter a valid email address."
msgstr "Por favor insira um endereço de email válido."
#: static/adm/js/strftime.js:31
msgid "Friday"
msgstr "Sexta-feira"
#: static/adm/js/gui.js:207
msgid "Please enter a valid URL."
msgstr "Por favor introduza um URL válido."
#: static/adm/js/strftime.js:31
msgid "Saturday"
msgstr "Sábado"
#: static/adm/js/gui.js:208
msgid "Please enter a valid date."
msgstr "Por favor introduza uma data válida."
#: static/adm/js/strftime.js:32
msgid "January"
msgstr "Janeiro de"
#: static/adm/js/gui.js:209
msgid "Please enter a valid date (ISO)."
msgstr "Por favor introduza uma data válida (ISO)."
#: static/adm/js/strftime.js:32
msgid "February"
msgstr "Fevereiro"
#: static/adm/js/gui.js:210
msgid "Please enter a valid number."
msgstr "Por favor, insira um número válido."
#: static/adm/js/strftime.js:32
msgid "March"
msgstr "Março de"
#: static/adm/js/gui.js:211
msgid "Please enter only digits."
msgstr "Por favor, digite somente dígitos."
#: static/adm/js/strftime.js:33
msgid "April"
msgstr "Abril"
#: static/adm/js/gui.js:212
msgid "Please enter a valid credit card number."
msgstr "Por favor, insira um número válido de cartão de crédito."
#: static/adm/js/strftime.js:33
msgid "May"
msgstr "Maio"
#: static/adm/js/gui.js:213
msgid "Please enter the same value again."
msgstr "Digite novamente o mesmo valor."
#: static/adm/js/strftime.js:33
msgid "June"
msgstr "Junho de"
#: static/adm/js/gui.js:214
msgid "Please enter no more than {0} characters."
msgstr "Não mais de {0} caracteres digite."
#: static/adm/js/strftime.js:33
msgid "July"
msgstr "Julho"
#: static/adm/js/gui.js:215
msgid "Please enter at least {0} characters."
msgstr "Por favor, insira pelo menos {0} caracteres."
#: static/adm/js/strftime.js:34
msgid "August"
msgstr "Agosto"
#: static/adm/js/gui.js:216
msgid "Please enter a value between {0} and {1} characters long."
msgstr "Por favor, insira um valor entre {0} e {1} caracteres longo."
#: static/adm/js/strftime.js:34
msgid "September"
msgstr "Setembro"
#: static/adm/js/gui.js:217
msgid "Please enter a value between {0} and {1}."
msgstr "Por favor, insira um valor entre {0} e {1}."
#: static/adm/js/strftime.js:34
msgid "October"
msgstr "Outubro"
#: static/adm/js/gui.js:218
msgid "Please enter a value less than or equal to {0}."
msgstr "Por favor digite um valor menor ou igual a {0}."
#: static/adm/js/strftime.js:34
msgid "November"
msgstr "Novembro"
#: static/adm/js/strftime.js:35
msgid "December"
msgstr "Dezembro de"
#: static/adm/js/tools.js:46
msgid "Just a moment..."
msgstr "Só um momento..."
#: static/adm/js/gui.js:219
msgid "Please enter a value greater than or equal to {0}."
msgstr "Por favor, insira um valor maior ou igual a {0}."

View File

@ -132,7 +132,7 @@ div.DTTT .btn:hover {
}
ul.DTTT_dropdown.dropdown-menu {
z-index: 2003;
z-index: 2013;
}
ul.DTTT_dropdown.dropdown-menu a {
@ -146,10 +146,11 @@ ul.DTTT_dropdown.dropdown-menu li {
ul.DTTT_dropdown.dropdown-menu li:hover a {
background-color: #0088cc;
color: white !important;
cursor: pointer;
}
div.DTTT_collection_background {
z-index: 2002;
z-index: 2009;
}
/* TableTools information display */

View File

@ -35,6 +35,13 @@ body {
display: none;
}
/*table.dataTable tr.odd td.sorting_1 { background-color: red; }
table.dataTable tr.odd td.sorting_2 { background-color: red; }
table.dataTable tr.odd td.sorting_3 { background-color: red; }
table.dataTable tr.even td.sorting_1 { background-color: blue; }
table.dataTable tr.even td.sorting_2 { background-color: blue; }
table.dataTable tr.even td.sorting_3 { background-color: blue; }*/
/* collapsable && closeable pannels */
.chevron:before {
content: "\f139";
@ -58,6 +65,9 @@ body {
}
.tooltip {
z-index: 2014;
}
/* Edit Below to Customize Widths > 768px */
@media (min-width:768px) {

View File

@ -9,6 +9,7 @@
// Registers Handlebar useful helpers
// Equal comparision (like if helper, but with comparation)
// Use as block as {{#ifequals [element] [element]}}....{{/ifequals}}
Handlebars.registerHelper('ifequals', function(context1, context2, options) {
console.log('Comparing ', context1, ' with ', context2);
if(context1 == context2) {
@ -18,6 +19,22 @@
}
});
// Counters.
// Create a counter with {{counter [id] [startValue]}}
// increment the counter with {{inc_counter [id]}}
// get the counter value tiwh {{get_counter [id}}
// Values are stored on current
Handlebars.registerHelper('set_counter', function(id, value, options){
options.data['_counter_'+id] = value;
});
Handlebars.registerHelper('get_counter', function(id, options){
return options.data['_counter_'+id];
});
Handlebars.registerHelper('inc_counter', function(id, options){
options.data['_counter_'+id] += 1;
});
api.templates = {};
// Now initialize templates api
@ -40,7 +57,7 @@
}
}
$.ajax({
url : api.template_url + name,
url : api.url_for(name,'template'),
type : "GET",
dataType : "text",
success : function(data) {

View File

@ -2,14 +2,13 @@
(function(api, $, undefined) {
"use strict";
// "public" methods
api.doLog = function(data) {
api.doLog = function() {
if (api.debug) {
try {
console.log(data);
console.log.apply(window, arguments);
} catch (e) {
// nothing can be logged
}
}
};
@ -29,6 +28,18 @@
}
};
api.url_for = function(path, type) {
switch(type) {
case 'template':
return api.config.template_url + path;
case undefined:
case 'rest':
return api.config.base_url + path;
default:
throw new Exception('Type of url not found: ' + type);
}
};
api.getJson = function(path, options) {
options = options || {};
var success_fnc = options.success || function(){};
@ -45,7 +56,7 @@
success_fnc(data);
},
beforeSend : function(request) {
request.setRequestHeader(api.auth_header, api.token);
request.setRequestHeader(api.config.auth_header, api.config.token);
},
});
};

View File

@ -3,7 +3,7 @@ $.extend(true, $.fn.dataTable.defaults, {
"sDom" : "<'row'<'col-xs-6'l><'col-xs-6'f>r>t<'row'<'col-xs-6'i><'col-xs-6'p>>",
"sPaginationType" : "bootstrap",
"oLanguage" : {
"sLengthMenu" : "_MENU_ records per page"
"sLengthMenu" : gettext("_MENU_ records per page")
}
});
@ -73,6 +73,12 @@ $.extend($.fn.dataTableExt.oPagination, {
iStart = oPaging.iPage - iHalf + 1;
iEnd = iStart + iListLength - 1;
}
var fnClick = function(e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength;
fnDraw(oSettings);
};
for (i = 0, ien = an.length; i < ien; i++) {
// Remove the middle elements
@ -82,11 +88,7 @@ $.extend($.fn.dataTableExt.oPagination, {
for (j = iStart; j <= iEnd; j++) {
sClass = (j == oPaging.iPage + 1) ? 'class="active"' : '';
$('<li ' + sClass + '><a href="#">' + j + '</a></li>').insertBefore($('li:last', an[i])[0]).bind(
'click', function(e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength;
fnDraw(oSettings);
});
'click', fnClick);
}
// Add / remove disabled classes from the static elements

View File

@ -88,7 +88,7 @@ gui.authenticators.link = function(event) {
container : 'users-placeholder',
rowSelect : 'multi',
buttons : [ 'new', 'edit', 'delete', 'xls' ],
scrollToTable : true,
scrollToTable : false,
onLoad: function(k) {
api.tools.unblockUI();
},
@ -101,7 +101,7 @@ gui.authenticators.link = function(event) {
onEdit: function(value, event, table) {
gui.authenticators.rest.gui(value.type, function(data){
var form = gui.fields(data);
gui.launchModal(gettext('Edit authenticator')+' '+value.name, form);
gui.launchModalForm(gettext('Edit authenticator')+' '+value.name, form);
});
},
});
@ -146,7 +146,7 @@ gui.connectivity.link = function(event) {
gui.connectivity.transports.rest.gui(value.type, function(itemGui){
gui.connectivity.transports.rest.item(value.id, function(item) {
var form = gui.fields(itemGui, item);
gui.launchModal(gettext('Edit transport')+' '+value.name,form, function(form_selector) {
gui.launchModalForm(gettext('Edit transport')+' '+value.name,form, function(form_selector) {
var fields = gui.fields.read(form_selector);
return false;
});
@ -154,7 +154,13 @@ gui.connectivity.link = function(event) {
});
},
onNew: function(type) {
gui.doLog(type);
gui.connectivity.transports.rest.gui(type, function(itemGui) {
var form = gui.fields(itemGui);
gui.launchModalForm(gettext('New transport'), form, function(form_selector) {
var fields = gui.fields.read(form_selector);
return false;
});
});
},
});
gui.connectivity.networks.table({

View File

@ -12,6 +12,10 @@
$.each(itemGui, function(index, f){
gui.doLog(f);
gui.doLog(item[f.name]);
// Fix multiline text fields to textbox
if( f.gui.type == 'text' && f.gui.multiline ) {
f.gui.type = 'textbox';
}
form += api.templates.evaluate('tmpl_fld_'+f.gui.type, {
value: item[f.name] || f.gui.value || f.gui.defvalue, // If no value present, use default value
values: f.gui.values,

View File

@ -5,7 +5,7 @@
gui.doLog = function() {
if (gui.debug) {
try {
console.log(arguments);
console.log.apply(window, arguments);
} catch (e) {
// nothing can be logged
}
@ -105,10 +105,14 @@
});
};
gui.launchModal = function(title, content, onSuccess) {
var id = Math.random().toString().split('.')[1];
gui.launchModalForm = function(title, content, onSuccess) {
var id = Math.random().toString().split('.')[1]; // Get a random ID for this modal
gui.appendToWorkspace(gui.modal(id, title, content));
id = '#' + id; // for jQuery
// Get form
var $form = $(id + ' form');
// For "beauty" switches, initialize them now
$(id + ' .make-switch').bootstrapSwitch();
// Activate "cool" selects
@ -116,11 +120,28 @@
// TEST: cooller on mobile devices
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
$(id + ' .selectpicker').selectpicker('mobile');
}
}
// Activate tooltips
$(id + ' [data-toggle="tooltip"]').tooltip({delay: 500, placement: 'auto right'});
$(id + ' [data-toggle="tooltip"]').tooltip({delay: {show: 1000, hide: 100}, placement: 'auto right'});
// Validation
$form.validate({
debug: true,
errorClass: 'text-danger',
validClass: 'has-success',
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
success: function(element) {
$(element).closest('.form-group').removeClass('has-error');
$(element).remove();
},
});
// And catch "accept" (default is "Save" in fact) button click
$(id + ' .button-accept').click(function(){
if( !$form.valid() )
return;
if( onSuccess ) {
if( onSuccess(id + ' form') === false ) // Some error may have ocurred, do not close dialog
return;
@ -184,6 +205,26 @@
};
gui.init = function() {
// Load jquery validator strings
$.extend($.validator.messages, {
required: gettext("This field is required."),
remote: gettext("Please fix this field."),
email: gettext("Please enter a valid email address."),
url: gettext("Please enter a valid URL."),
date: gettext("Please enter a valid date."),
dateISO: gettext("Please enter a valid date (ISO)."),
number: gettext("Please enter a valid number."),
digits: gettext("Please enter only digits."),
creditcard: gettext("Please enter a valid credit card number."),
equalTo: gettext("Please enter the same value again."),
maxlength: $.validator.format(gettext("Please enter no more than {0} characters.")),
minlength: $.validator.format(gettext("Please enter at least {0} characters.")),
rangelength: $.validator.format(gettext("Please enter a value between {0} and {1} characters long.")),
range: $.validator.format(gettext("Please enter a value between {0} and {1}.")),
max: $.validator.format(gettext("Please enter a value less than or equal to {0}.")),
min: $.validator.format(gettext("Please enter a value greater than or equal to {0}."))
});
gui.setLinksEvents();
gui.dashboard.link();
};
@ -266,7 +307,7 @@ GuiElement.prototype = {
// 4.- the DataTable that raised the event
table : function(options) {
"use strict";
console.log('Types: ', this.types);
gui.doLog('Types: ', this.types);
options = options || {};
gui.doLog('Composing table for ' + this.name);
var tableId = this.name + '-table';
@ -365,19 +406,12 @@ GuiElement.prototype = {
columns.push(column);
}
});
// Generate styles for responsible table, just the name of fields (append header to table)
var respStyles = [];
var counter = 0;
$.each(columns, function(col, value) {
if( value.bVisible === false )
return;
counter += 1;
respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):before { content: "' +
(value.sTitle || '') + '";}\n');
});
// If styles already exists, remove them before adding new ones
$('style-' + tableId).remove();
$('<style id="style-' + tableId + '" media="screen">@media (max-width: 768px) { ' + respStyles.join('') + '};</style>').appendTo('head');
// Responsive style for tables, using tables.css and this code generates the "titles" for vertical display on small sizes
$('#style-' + tableId).remove(); // Remove existing style for table before adding new one
$(api.templates.evaluate('tmpl_responsive_table', {
tableId: tableId,
columns: columns,
})).appendTo('head');
$this.rest.overview(function(data) {
var table = gui.table(title, tableId);
@ -463,11 +497,21 @@ GuiElement.prototype = {
} else {
// This table has "types, so we create a dropdown with Types
var newButtons = [];
$.each($this.types, function(i, val){
// Order buttons by name, much more easy for users... :-)
var order = [];
$.each($this.types, function(k, v){
order.push({
type: k,
css: v.css,
name: v.name,
description: v.description,
});
});
$.each(order.sort(function(a,b){return a.name.localeCompare(b.name);}), function(i, val){
newButtons.push({
"sExtends" : "text",
"sButtonText" : '<span class="' + val.css + '"></span> ' + val.name,
"fnClick" : clickHandlerFor(options.onNew, i, true),
"sButtonText" : '<span class="' + val.css + '"></span> <span data-toggle="tooltip" data-title="' + val.description + '">' + val.name + '</span>',
"fnClick" : clickHandlerFor(options.onNew, val.type, true),
});
});
btn = {
@ -551,8 +595,9 @@ GuiElement.prototype = {
};
}
if (btn !== undefined)
if(btn) {
btns.push(btn);
}
});
}
@ -596,6 +641,12 @@ GuiElement.prototype = {
$('#' + tableId + '_filter input').addClass('form-control');
// Add refresh action to panel
$(table.refreshSelector).click(refreshFnc);
// Add tooltips to "new" buttons
$('.DTTT_dropdown [data-toggle="tooltip"]').tooltip({
container:'body',
delay: { show: 1000, hide: 100},
placement: 'auto right',
});
if (options.scrollToTable === true ) {
var tableTop = $('#' + tableId).offset().top;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -4,13 +4,12 @@
<!DOCTYPE html>{% endspaceless %}
<html lang='{{LANGUAGE_CODE}}'>
<head>
<title>{% block title %}{% endblock %}</title>
<title>UDS Dashboard</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="robots" content="noindex, nofollow" />
<meta name="robots" content="noindex, nofollow">
<link href="{% get_static_prefix %}img/favicon.ico" rel="icon" type="image/x-icon" />
<link href="{% get_static_prefix %}img/favicon.ico" rel="icon" type="image/x-icon">
<!-- Bootstrap -->
<link href="{% get_static_prefix %}css/bootstrap.min.css" rel="stylesheet" media="screen">
@ -52,6 +51,7 @@
<script src="{% get_static_prefix %}js/bootstrap.min.js"></script>
<script src="{% get_static_prefix %}js/bootstrap-switch.min.js"></script>
<script src="{% get_static_prefix %}js/bootstrap-select.min.js"></script>
<script src="{% get_static_prefix %}adm/js/jquery.validate.js"></script>
<script src="{% get_static_prefix %}adm/js/jquery.blockUI.js"></script>
<script src="{% get_static_prefix %}adm/js/jquery.dataTables.min.js"></script>
@ -72,15 +72,15 @@
<script>
// Initialize a few settings, needed for api to work
(function(api, $, undefined){
api.token = "{% auth_token %}";
api.auth_header = "{% auth_token_header %}";
api.base_url = "{% url 'REST' '' %}";
api.template_url = "{% url 'uds.admin.views.tmpl' '' %}";
api.img_url = "{% get_static_prefix %}adm/img/";
api.config = {
token: "{% auth_token %}",
auth_header: "{% auth_token_header %}",
lang: "LANGUAGE_CODE",
base_url: "{% url 'REST' '' %}",
template_url: "{% url 'uds.admin.views.tmpl' '' %}",
img_url: "{% get_static_prefix %}adm/img/",
};
api.url_for = function(path) {
return api.base_url + path;
}
}(window.api = window.api || {}, jQuery));
</script>
@ -119,6 +119,7 @@
<!-- components -->
{% js_template 'table' %}
{% js_template 'modal' %}
{% js_template 'responsive_table' %}
<!-- fields -->
{% js_template 'fld/checkbox' %}
{% js_template 'fld/choice' %}

View File

@ -0,0 +1,6 @@
{% extends "uds/admin/tmpl/fld/form-group.html" %}
{% block field %}
{% verbatim %}
<input type="{% endverbatim %}{% block type %}text{% endblock %}{% verbatim %}" class="form-control {{ css }}" name="{{ name }}" id="{{ name }}_field" placeholder="{{ tooltip }}" value="{{ value }}"{{# if readonly }} readonly{{/ if }} {{# if required }} required {{/ if }}>
{% endverbatim %}
{% endblock %}

View File

@ -1,7 +1,3 @@
{% extends "uds/admin/tmpl/fld/form-group.html" %}
{% extends "uds/admin/tmpl/fld/basic-input.html" %}
{% load i18n %}
{% block field %}
{% verbatim %}
<input type="numeric" name="{{ name }}" class="form-control {{ css }}" id="{{ name }}_field" placeholder="{{ tooltip }}" value="{{ value }}"{{# if readonly }} readonly{{/ if }}>
{% endverbatim %}
{% endblock %}
{% block type %}numeric{% endblock %}

View File

@ -1,2 +1,3 @@
{% verbatim %}
{% endverbatim %}
{% extends "uds/admin/tmpl/fld/basic-input.html" %}
{% load i18n %}
{% block type %}password{% endblock %}

View File

@ -1,7 +1,2 @@
{% extends "uds/admin/tmpl/fld/form-group.html" %}
{% load i18n %}
{% block field %}
{% verbatim %}
<input type="text" class="form-control {{ css }}" name="{{ name }}" id="{{ name }}_field" placeholder="{{ tooltip }}" value="{{ value }}"{{# if readonly }} readonly{{/ if }}>
{% endverbatim %}
{% endblock %}
{% extends "uds/admin/tmpl/fld/basic-input.html" %}
{% block type %}text{% endblock %}

View File

@ -1,2 +1,6 @@
{% extends "uds/admin/tmpl/fld/form-group.html" %}
{% block field %}
{% verbatim %}
{% endverbatim %}
<textarea class="form-control {{ css }}" name="{{ name }}" id="{{ name }}_field" placeholder="{{ tooltip }}" {{# if readonly }} readonly{{/ if }}>{{ value }}</textarea>
{% endverbatim %}
{% endblock %}

View File

@ -1,10 +0,0 @@
{% verbatim %}
<style id="style-{{ tableId }}" media="screen">
@media (max-width: 768px) {
{{#each columns }}
#{{ tableId }} td:nth-of-type({{@index}}):before { content: "{{ this.sTitle }}"}\n');
respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):empty { background-color: red ;}\n');
{{/each }}
};
</style>
{% endverbatim %}

View File

@ -0,0 +1,13 @@
{% verbatim %}
<style id="style-{{ tableId }}" media="screen">
@media (max-width: 768px) {
{{set_counter 0 0}}
{{#each columns }}
{{#if bVisible}}
{{inc_counter 0}}
#{{ ../../tableId }} td:nth-of-type({{get_counter 0}}):before { content: "{{ this.sTitle }}"; }
{{/if}}
{{/each }}
};
</style>
{% endverbatim %}

View File

@ -33,7 +33,9 @@
from __future__ import unicode_literals
from django import template
from django.conf import settings
from uds.REST import AUTH_TOKEN_HEADER
import re
import logging
@ -61,5 +63,8 @@ def js_template_path(context, path):
@register.simple_tag(name='js_template', takes_context=True)
def js_template(context, template_name, template_id = None):
template_id = (template_id or 'tmpl_' + template_name).replace('/', '_')
tmpl = template.loader.get_template(context['template_path'] + '/' + template_name + '.html')
return '<script id="{0}" type="text/html">\n'.format(template_id) + tmpl.render(context) + '\n</script>'
tmpl = template.loader.get_template(context['template_path'] + '/' + template_name + '.html').render(context)
# Clean tmpl
if not settings.DEBUG:
tmpl = re.sub('\s+', ' ', tmpl)
return '<script id="{0}" type="template/uds">{1}</script>'.format(template_id, tmpl)

View File

@ -59,7 +59,7 @@ class HTML5RDPTransport(Transport):
needsJava = False # If this transport needs java for rendering
supportedOss = OsDetector.allOss
guacamoleServer = gui.TextField(label=_('Tunnel Server'), order = 1, tooltip = _('Host of the tunnel server (use http/https & port if needed) as accesible from users'), defvalue = 'https://', length = 64)
guacamoleServer = gui.TextField(label=_('Tunnel Server'), order = 1, tooltip = _('Host of the tunnel server (use http/https & port if needed) as accesible from users'), defvalue = 'https://', length = 64, required=True)
useEmptyCreds = gui.CheckBoxField(label = _('Empty creds'), order = 2, tooltip = _('If checked, the credentials used to connect will be emtpy'))
fixedName = gui.TextField(label=_('Username'), order = 3, tooltip = _('If not empty, this username will be always used as credential'))
fixedPassword = gui.PasswordField(label=_('Password'), order = 4, tooltip = _('If not empty, this password will be always used as credential'))