mirror of
https://github.com/dkmstr/openuds.git
synced 2025-01-03 01:17:56 +03:00
* Added responsive tables to admin
* Added language selection over REST API * Added "renderers" so we can add icons or whatever to cells before rendering * Lots of improvements
This commit is contained in:
parent
6bb538d941
commit
47be643eac
@ -10,6 +10,11 @@
|
|||||||
<arguments>
|
<arguments>
|
||||||
</arguments>
|
</arguments>
|
||||||
</buildCommand>
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.eclipsesource.jshint.ui.builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
</buildSpec>
|
</buildSpec>
|
||||||
<natures>
|
<natures>
|
||||||
<nature>org.python.pydev.pythonNature</nature>
|
<nature>org.python.pydev.pythonNature</nature>
|
||||||
|
3
server/.settings/com.eclipsesource.jshint.ui.prefs
Normal file
3
server/.settings/com.eclipsesource.jshint.ui.prefs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
excluded=//*.min.js\://PluginDetect_Java.js
|
||||||
|
included=//*.js
|
@ -0,0 +1 @@
|
|||||||
|
ujson
|
@ -39,6 +39,7 @@ from django.utils.translation import ugettext as _, activate
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from handlers import Handler, HandlerError, AccessDenied
|
from handlers import Handler, HandlerError, AccessDenied
|
||||||
|
|
||||||
|
import time
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -136,10 +137,14 @@ class Dispatcher(View):
|
|||||||
|
|
||||||
# Invokes the handler's operation, add headers to response and returns
|
# Invokes the handler's operation, add headers to response and returns
|
||||||
try:
|
try:
|
||||||
if handler.raw: # Raw handlers will return an HttpResponse Object
|
start = time.time();
|
||||||
response = operation()
|
response = operation()
|
||||||
else:
|
logger.debug('Execution time for method: {0}'.format(time.time() - start))
|
||||||
response = processor.getResponse(operation())
|
|
||||||
|
if not handler.raw: # Raw handlers will return an HttpResponse Object
|
||||||
|
start = time.time()
|
||||||
|
response = processor.getResponse(response)
|
||||||
|
logger.debug('Execution time for encoding: {0}'.format(time.time() - start))
|
||||||
for k, v in handler.headers().iteritems():
|
for k, v in handler.headers().iteritems():
|
||||||
response[k] = v
|
response[k] = v
|
||||||
return response
|
return response
|
||||||
|
@ -72,7 +72,7 @@ class TableInfo(ModelTableHandlerMixin, Handler):
|
|||||||
|
|
||||||
title = _('Current authenticators')
|
title = _('Current authenticators')
|
||||||
fields = [
|
fields = [
|
||||||
{ 'name': {'title': _('Name'), 'visible': True } },
|
{ 'name': {'title': _('Name'), 'visible': True, 'type': 'iconType' } },
|
||||||
{ 'comments': {'title': _('Comments')}},
|
{ 'comments': {'title': _('Comments')}},
|
||||||
{ 'users_count': {'title': _('Users'), 'type': 'numeric', 'width': '5em'}}
|
{ 'users_count': {'title': _('Users'), 'type': 'numeric', 'width': '5em'}}
|
||||||
]
|
]
|
||||||
|
@ -81,7 +81,6 @@ class Login(Handler):
|
|||||||
class Logout(Handler):
|
class Logout(Handler):
|
||||||
path = 'auth'
|
path = 'auth'
|
||||||
authenticated = True # By default, all handlers needs authentication
|
authenticated = True # By default, all handlers needs authentication
|
||||||
needs_staff = True # By default, staff
|
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
# Remove auth token
|
# Remove auth token
|
||||||
@ -103,4 +102,10 @@ class Auths(Handler):
|
|||||||
def get(self):
|
def get(self):
|
||||||
return list(self.auths())
|
return list(self.auths())
|
||||||
|
|
||||||
|
class Locale(Handler):
|
||||||
|
authenticated = True
|
||||||
|
|
||||||
|
def get(self):
|
||||||
|
if len(self._args) > 0:
|
||||||
|
self.setValue('locale', self._args[1])
|
||||||
|
return ''
|
||||||
|
@ -65,7 +65,7 @@ class TableInfo(ModelTableHandlerMixin, Handler):
|
|||||||
path = 'networks'
|
path = 'networks'
|
||||||
title = _('Current Networks')
|
title = _('Current Networks')
|
||||||
fields = [
|
fields = [
|
||||||
{ 'name': {'title': _('Name'), 'visible': True } },
|
{ 'name': {'title': _('Name'), 'visible': True, 'type': 'icon', 'icon': 'fa fa-globe text-success' } },
|
||||||
{ 'net_string': {'title': _('Networks')}},
|
{ 'net_string': {'title': _('Networks')}},
|
||||||
{ 'networks_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
{ 'networks_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
||||||
]
|
]
|
||||||
|
@ -68,7 +68,7 @@ class TableInfo(ModelTableHandlerMixin, Handler):
|
|||||||
path = 'osmanagers'
|
path = 'osmanagers'
|
||||||
title = _('Current OS Managers')
|
title = _('Current OS Managers')
|
||||||
fields = [
|
fields = [
|
||||||
{ 'name': {'title': _('Name'), 'visible': True } },
|
{ 'name': {'title': _('Name'), 'visible': True, 'type': 'iconType' } },
|
||||||
{ 'comments': {'title': _('Comments')}},
|
{ 'comments': {'title': _('Comments')}},
|
||||||
{ 'deployed_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
{ 'deployed_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
||||||
]
|
]
|
||||||
|
@ -66,7 +66,7 @@ class TableInfo(ModelTableHandlerMixin, Handler):
|
|||||||
path = 'providers'
|
path = 'providers'
|
||||||
title = _('Current service providers')
|
title = _('Current service providers')
|
||||||
fields = [
|
fields = [
|
||||||
{ 'name': {'title': _('Name') } },
|
{ 'name': {'title': _('Name'), 'type': 'iconType' } },
|
||||||
{ 'comments': {'title': _('Comments')}},
|
{ 'comments': {'title': _('Comments')}},
|
||||||
{ 'services_count': {'title': _('Services'), 'type': 'numeric', 'width': '5em'}}
|
{ 'services_count': {'title': _('Services'), 'type': 'numeric', 'width': '5em'}}
|
||||||
]
|
]
|
||||||
|
@ -68,7 +68,7 @@ class TableInfo(ModelTableHandlerMixin, Handler):
|
|||||||
path = 'transports'
|
path = 'transports'
|
||||||
title = _('Current Transports')
|
title = _('Current Transports')
|
||||||
fields = [
|
fields = [
|
||||||
{ 'name': {'title': _('Name'), 'visible': True } },
|
{ 'name': {'title': _('Name'), 'visible': True, 'type': 'iconType' } },
|
||||||
{ 'comments': {'title': _('Comments')}},
|
{ 'comments': {'title': _('Comments')}},
|
||||||
{ 'deployed_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
{ 'deployed_count': {'title': _('Used by'), 'type': 'numeric', 'width': '8em'}}
|
||||||
]
|
]
|
||||||
|
@ -32,8 +32,10 @@
|
|||||||
'''
|
'''
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import time
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.utils import formats
|
from django.utils import formats
|
||||||
|
from uds.core.util.State import State
|
||||||
|
|
||||||
from uds.models import Authenticator, User
|
from uds.models import Authenticator, User
|
||||||
|
|
||||||
@ -47,19 +49,6 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class Users(DetailHandler):
|
class Users(DetailHandler):
|
||||||
|
|
||||||
def user_as_dict(self, user):
|
|
||||||
return {
|
|
||||||
'id': user.id,
|
|
||||||
'name': user.name,
|
|
||||||
'real_name': user.real_name,
|
|
||||||
'comments': user.comments,
|
|
||||||
'state': user.state,
|
|
||||||
'staff_member': user.staff_member,
|
|
||||||
'is_admin': user.is_admin,
|
|
||||||
'last_access': formats.date_format(user.last_access, 'DATETIME_FORMAT'),
|
|
||||||
'parent': user.parent
|
|
||||||
}
|
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
logger.debug(self._parent)
|
logger.debug(self._parent)
|
||||||
logger.debug(self._kwargs)
|
logger.debug(self._kwargs)
|
||||||
@ -69,12 +58,9 @@ class Users(DetailHandler):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
if len(self._args) == 0:
|
if len(self._args) == 0:
|
||||||
res = []
|
return list(auth.users.all().values('id','name','real_name','comments','state','staff_member','is_admin','last_access','parent'))
|
||||||
for u in auth.users.all():
|
|
||||||
res.append(self.user_as_dict(u))
|
|
||||||
return res
|
|
||||||
else:
|
else:
|
||||||
return self.user_as_dict(auth.get(pk=self._args[0]))
|
return auth.get(pk=self._args[0]).values('id','name','real_name','comments','state','staff_member','is_admin','last_access','parent')
|
||||||
except:
|
except:
|
||||||
logger.exception('En users')
|
logger.exception('En users')
|
||||||
return { 'error': 'not found' }
|
return { 'error': 'not found' }
|
||||||
@ -87,12 +73,11 @@ class Users(DetailHandler):
|
|||||||
|
|
||||||
def getFields(self):
|
def getFields(self):
|
||||||
return [
|
return [
|
||||||
{ 'name': {'title': _('User Id'), 'visible': True } },
|
{ 'name': {'title': _('User Id'), 'visible': True, 'type': 'icon', 'icon': 'fa fa-user text-success' } },
|
||||||
{ 'real_name': { 'title': _('Name') } },
|
{ 'real_name': { 'title': _('Name') } },
|
||||||
{ 'comments': { 'title': _('Comments') } },
|
{ 'comments': { 'title': _('Comments') } },
|
||||||
{ 'state': { 'title': _('state') } },
|
{ 'state': { 'title': _('state'), 'type': 'dict', 'dict': State.dictionary() } },
|
||||||
{ 'last_access': { 'title': _('Last access') } },
|
{ 'last_access': { 'title': _('Last access'), 'type': 'datetime' } },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -173,7 +173,7 @@ class ModelTableHandlerMixin(object):
|
|||||||
for k1, v1 in f.iteritems():
|
for k1, v1 in f.iteritems():
|
||||||
dct = {}
|
dct = {}
|
||||||
for k2, v2 in v1.iteritems():
|
for k2, v2 in v1.iteritems():
|
||||||
if type(v2) in (bool, int, long, float, unicode):
|
if type(v2) in (bool, int, long, float, unicode, list, tuple, dict):
|
||||||
dct[k2] = v2
|
dct[k2] = v2
|
||||||
else:
|
else:
|
||||||
dct[k2] = unicode(v2)
|
dct[k2] = unicode(v2)
|
||||||
|
@ -32,13 +32,15 @@
|
|||||||
'''
|
'''
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.utils import simplejson
|
#from django.utils import simplejson
|
||||||
|
import ujson as json
|
||||||
from django import http
|
from django import http
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ParametersException(Exception):
|
class ParametersException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -69,7 +71,7 @@ class JsonProcessor(ContentProcessor):
|
|||||||
try:
|
try:
|
||||||
if len(self._request.body) == 0:
|
if len(self._request.body) == 0:
|
||||||
return {}
|
return {}
|
||||||
res = simplejson.loads(self._request.body)
|
res = json.loads(self._request.body)
|
||||||
logger.debug(res)
|
logger.debug(res)
|
||||||
return res
|
return res
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -77,7 +79,7 @@ class JsonProcessor(ContentProcessor):
|
|||||||
raise ParametersException(unicode(e))
|
raise ParametersException(unicode(e))
|
||||||
|
|
||||||
def render(self, obj):
|
def render(self, obj):
|
||||||
return simplejson.dumps(obj)
|
return json.dumps(obj)
|
||||||
|
|
||||||
# ---------------
|
# ---------------
|
||||||
# Json Processor
|
# Json Processor
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
from django.utils.translation import ugettext_noop as _
|
from django.utils.translation import ugettext_noop as _, ugettext
|
||||||
|
|
||||||
# States for different objects. Not all objects supports all States
|
# States for different objects. Not all objects supports all States
|
||||||
class State(object):
|
class State(object):
|
||||||
@ -134,4 +134,14 @@ class State(object):
|
|||||||
return State.string[state]
|
return State.string[state]
|
||||||
except Exception:
|
except Exception:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def dictionary():
|
||||||
|
'''
|
||||||
|
Returns a dictionary with current active locale translation of States to States String
|
||||||
|
'''
|
||||||
|
res = {}
|
||||||
|
for k, v in State.string.iteritems():
|
||||||
|
res[k] = ugettext(v)
|
||||||
|
return res
|
||||||
|
|
||||||
|
Binary file not shown.
@ -32,7 +32,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:20+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -42,35 +42,86 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:72
|
#: REST/methods/authenticators.py:73
|
||||||
msgid "Current authenticators"
|
msgid "Current authenticators"
|
||||||
msgstr "Aktuelle Authentifikatoren"
|
msgstr "Aktuelle Authentifikatoren"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
|
#: REST/methods/authenticators.py:75 REST/methods/networks.py:68
|
||||||
|
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
|
||||||
|
#: REST/methods/transports.py:71 REST/methods/users.py:77
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
|
#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72
|
||||||
|
#: REST/methods/providers.py:70 REST/methods/transports.py:72
|
||||||
|
#: REST/methods/users.py:78
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:76
|
#: REST/methods/authenticators.py:77
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Benutzer"
|
msgstr "Benutzer"
|
||||||
|
|
||||||
#: REST/methods/providers.py:69
|
#: REST/methods/networks.py:66
|
||||||
|
msgid "Current Networks"
|
||||||
|
msgstr "Aktuellen Netze"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:69 templates/uds/index.html:79
|
||||||
|
#: templates/uds/html5/index.html:127
|
||||||
|
msgid "Networks"
|
||||||
|
msgstr "Netzwerke"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
|
||||||
|
#: REST/methods/transports.py:73
|
||||||
|
msgid "Used by"
|
||||||
|
msgstr "Von verwendet"
|
||||||
|
|
||||||
|
#: REST/methods/osmanagers.py:69
|
||||||
|
msgid "Current OS Managers"
|
||||||
|
msgstr "Aktuelle OS-Manager"
|
||||||
|
|
||||||
|
#: REST/methods/providers.py:67
|
||||||
msgid "Current service providers"
|
msgid "Current service providers"
|
||||||
msgstr "Aktuelle Service-Provider"
|
msgstr "Aktuelle Service-Provider"
|
||||||
|
|
||||||
#: REST/methods/providers.py:73 templates/uds/index.html:51
|
#: REST/methods/providers.py:71 templates/uds/index.html:51
|
||||||
#: templates/uds/html5/index.html:68
|
#: templates/uds/html5/index.html:68
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Dienstleistungen"
|
msgstr "Dienstleistungen"
|
||||||
|
|
||||||
#: admin/views.py:53 admin/views.py:61 web/views.py:422
|
#: REST/methods/transports.py:69
|
||||||
|
msgid "Current Transports"
|
||||||
|
msgstr "Aktuelle Transporte"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:70
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Users of {0}"
|
||||||
|
msgstr "Benutzer von {0}"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:72
|
||||||
|
msgid "Current users"
|
||||||
|
msgstr "Momentane Benutzer"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:76
|
||||||
|
msgid "User Id"
|
||||||
|
msgstr "Benutzer-Id"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:79
|
||||||
|
msgid "state"
|
||||||
|
msgstr "Zustand"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:80
|
||||||
|
msgid "Last access"
|
||||||
|
msgstr "Zuletzt online"
|
||||||
|
|
||||||
|
#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422
|
||||||
msgid "Forbidden"
|
msgid "Forbidden"
|
||||||
msgstr "Verboten"
|
msgstr "Verboten"
|
||||||
|
|
||||||
|
#: admin/views.py:69
|
||||||
|
msgid "requested a template that do not exists"
|
||||||
|
msgstr "gefordert, dass eine Vorlage, die nicht vorhanden ist"
|
||||||
|
|
||||||
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
||||||
msgid "IP Authenticator"
|
msgid "IP Authenticator"
|
||||||
msgstr "IP-Authenticator"
|
msgstr "IP-Authenticator"
|
||||||
@ -162,8 +213,9 @@ msgstr "Benutzernamen mit lesen Berechtigungen auf der Basis ausgewählt"
|
|||||||
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
||||||
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
|
#: web/forms/LoginForm.py:70
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
@ -231,9 +283,9 @@ msgstr "Reguläre Ausdrücke LDAP-Authentifizierungsserver"
|
|||||||
|
|
||||||
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
||||||
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
||||||
#: transports/NX/NXTransport.py:61 transports/RDP/RDPTransport.py:59
|
#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66
|
||||||
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
||||||
#: web/forms/LoginForm.py:69
|
#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Benutzername"
|
msgstr "Benutzername"
|
||||||
|
|
||||||
@ -1093,10 +1145,6 @@ msgstr "und Browser neu starten"
|
|||||||
msgid "Ip"
|
msgid "Ip"
|
||||||
msgstr "IP"
|
msgstr "IP"
|
||||||
|
|
||||||
#: templates/uds/index.html:79 templates/uds/html5/index.html:127
|
|
||||||
msgid "Networks"
|
|
||||||
msgstr "Netzwerke"
|
|
||||||
|
|
||||||
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr "Transporte"
|
msgstr "Transporte"
|
||||||
@ -1153,35 +1201,44 @@ msgstr ""
|
|||||||
msgid "toggle navigation"
|
msgid "toggle navigation"
|
||||||
msgstr "Toggle navigation"
|
msgstr "Toggle navigation"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:17
|
#: templates/uds/admin/snippets/navbar.html:18
|
||||||
msgid "Service providers"
|
msgid "Service providers"
|
||||||
msgstr "Service-Provider"
|
msgstr "Service-Provider"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:18
|
#: templates/uds/admin/snippets/navbar.html:19
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
msgid "Authenticators"
|
msgid "Authenticators"
|
||||||
msgstr "Authentifikatoren"
|
msgstr "Authentifikatoren"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:20
|
#: templates/uds/admin/snippets/navbar.html:21
|
||||||
msgid "Connectivity"
|
msgid "Connectivity"
|
||||||
msgstr "Konnektivität"
|
msgstr "Konnektivität"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:21
|
#: templates/uds/admin/snippets/navbar.html:22
|
||||||
msgid "Deployed services"
|
msgid "Deployed services"
|
||||||
msgstr "Bereitgestellten Dienste"
|
msgstr "Bereitgestellten Dienste"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:25
|
#: templates/uds/admin/snippets/navbar.html:26
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Konfiguration"
|
msgstr "Konfiguration"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:57
|
#: templates/uds/admin/snippets/navbar.html:56
|
||||||
msgid "Exit dashboard"
|
msgid "Exit dashboard"
|
||||||
msgstr "Ausfahrt dashboard"
|
msgstr "Ausfahrt dashboard"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:58
|
#: templates/uds/admin/snippets/navbar.html:57
|
||||||
#: templates/uds/html5/snippets/navbar.html:47
|
#: templates/uds/html5/snippets/navbar.html:47
|
||||||
msgid "logout"
|
msgid "logout"
|
||||||
msgstr "Logout"
|
msgstr "Logout"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
|
msgid "administration of authenticators"
|
||||||
|
msgstr "Verwaltung von Authentifikatoren"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/dashboard.html:4
|
||||||
|
msgid "overview"
|
||||||
|
msgstr "Übersicht"
|
||||||
|
|
||||||
#: templates/uds/html5/detectJava.html:4
|
#: templates/uds/html5/detectJava.html:4
|
||||||
msgid "Login redirection to UDS"
|
msgid "Login redirection to UDS"
|
||||||
msgstr "Login-Umleitung zu UDS"
|
msgstr "Login-Umleitung zu UDS"
|
||||||
@ -1273,7 +1330,7 @@ msgstr "Über"
|
|||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
#: templates/uds/html5/templates/base.html:51
|
#: templates/uds/html5/templates/base.html:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your browser is supported only partially. Please, upgrade it to a modern "
|
"Your browser is supported only partially. Please, upgrade it to a modern "
|
||||||
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
||||||
@ -1311,30 +1368,30 @@ msgstr ""
|
|||||||
"zugänglich von Benutzern"
|
"zugänglich von Benutzern"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "Empty creds"
|
msgid "Empty creds"
|
||||||
msgstr "Leere creds"
|
msgstr "Leere creds"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "If checked, the credentials used to connect will be emtpy"
|
msgid "If checked, the credentials used to connect will be emtpy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstellen "
|
"Wenn diese Option aktiviert, werden die Anmeldeinformationen zum Herstellen "
|
||||||
"einer leer sein."
|
"einer leer sein."
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
||||||
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59
|
||||||
#: transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
||||||
msgid "If not empty, this username will be always used as credential"
|
msgid "If not empty, this username will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn nicht leer ist, dieser Benutzername wird immer als verwendet "
|
"Wenn nicht leer ist, dieser Benutzername wird immer als verwendet "
|
||||||
"Anmeldeinformationen"
|
"Anmeldeinformationen"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
msgid "If not empty, this password will be always used as credential"
|
msgid "If not empty, this password will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wenn nicht leer ist, dieses Kennwort immer verwendet werden als "
|
"Wenn nicht leer ist, dieses Kennwort immer verwendet werden als "
|
||||||
@ -1389,46 +1446,98 @@ msgstr "NX Transport (direkt)"
|
|||||||
msgid "NX Transport for direct connection"
|
msgid "NX Transport for direct connection"
|
||||||
msgstr "NX-Transport für den direkten Anschluss"
|
msgstr "NX-Transport für den direkten Anschluss"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listen port"
|
msgid "Listen port"
|
||||||
msgstr "-Listenanschluss"
|
msgstr "-Listenanschluss"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listening port of NX (ssh) at client machine"
|
msgid "Listening port of NX (ssh) at client machine"
|
||||||
msgstr "Hören Port des NX (ssh) bei Client-Rechner"
|
msgstr "Hören Port des NX (ssh) bei Client-Rechner"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Verbindung"
|
msgstr "Verbindung"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection speed for this transport (quality)"
|
msgid "Connection speed for this transport (quality)"
|
||||||
msgstr "Verbindungsgeschwindigkeit für diesen Transport (Qualität)"
|
msgstr "Verbindungsgeschwindigkeit für diesen Transport (Qualität)"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Session"
|
msgid "Session"
|
||||||
msgstr "Sitzung"
|
msgstr "Sitzung"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Desktop session"
|
msgid "Desktop session"
|
||||||
msgstr "Desktop-Sitzung"
|
msgstr "Desktop-Sitzung"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Disk Cache"
|
msgid "Disk Cache"
|
||||||
msgstr "Festplatten-Cache"
|
msgstr "Festplatten-Cache"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Cache size en Mb stored at disk"
|
msgid "Cache size en Mb stored at disk"
|
||||||
msgstr "Cache-Größe de Mb auf der Festplatte gespeichert"
|
msgstr "Cache-Größe de Mb auf der Festplatte gespeichert"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Memory Cache"
|
msgid "Memory Cache"
|
||||||
msgstr "Memory-Caches"
|
msgstr "Memory-Caches"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Cache size en Mb keept at memory"
|
msgid "Cache size en Mb keept at memory"
|
||||||
msgstr "Cache Größe de Mb Keept auf Speicher"
|
msgstr "Cache Größe de Mb Keept auf Speicher"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:55 transports/TSNX/TSNXTransport.py:55
|
||||||
|
msgid "NX Transport (tunneled)"
|
||||||
|
msgstr "NX-Transport (Tunneling)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:57 transports/TSNX/TSNXTransport.py:57
|
||||||
|
msgid "NX Transport for tunneled connection"
|
||||||
|
msgstr "NX-Transport für getunnelte Verbindung"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid "Tunnel server"
|
||||||
|
msgstr "Tunnel-server"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid ""
|
||||||
|
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
||||||
|
"port. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"IP-Adresse oder Hostname des Tunnel-Server senden an Client-Gerät "
|
||||||
|
"(\"öffentliche\" IP-Adresse) und Port. (verwenden Sie HOST: PORT-Format)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid "Tunnel host check"
|
||||||
|
msgstr "Tunnel Host-Prüfung"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid ""
|
||||||
|
"If not empty, this server will be used to check if service is running before "
|
||||||
|
"assigning it to user. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"Wenn nicht leer ist, wird dieser Server zu überprüfen, ob der Dienst "
|
||||||
|
"ausgeführt wird, bevor Sie verwendet werden Benutzer zuweisen. (verwenden "
|
||||||
|
"Sie HOST: PORT-Format)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75
|
||||||
|
#: transports/TSNX/TSNXTransport.py:103
|
||||||
|
msgid "Must use HOST:PORT in Tunnel Server Field"
|
||||||
|
msgstr "HOST: PORT muss in Feld der Tunnel-Server verwendet werden."
|
||||||
|
|
||||||
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
||||||
msgid "NX Protocol"
|
msgid "NX Protocol"
|
||||||
msgstr "NX-Protokoll"
|
msgstr "NX-Protokoll"
|
||||||
@ -1525,35 +1634,6 @@ msgstr "RDP-Verkehr (Tunneling)"
|
|||||||
msgid "RDP Transport for tunneled connection"
|
msgid "RDP Transport for tunneled connection"
|
||||||
msgstr "RDP-Verkehr für getunnelte Verbindung"
|
msgstr "RDP-Verkehr für getunnelte Verbindung"
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid "Tunnel server"
|
|
||||||
msgstr "Tunnel-server"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid ""
|
|
||||||
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
|
||||||
"port. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"IP-Adresse oder Hostname des Tunnel-Server senden an Client-Gerät "
|
|
||||||
"(\"öffentliche\" IP-Adresse) und Port. (verwenden Sie HOST: PORT-Format)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid "Tunnel host check"
|
|
||||||
msgstr "Tunnel Host-Prüfung"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid ""
|
|
||||||
"If not empty, this server will be used to check if service is running before "
|
|
||||||
"assigning it to user. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"Wenn nicht leer ist, wird dieser Server zu überprüfen, ob der Dienst "
|
|
||||||
"ausgeführt wird, bevor Sie verwendet werden Benutzer zuweisen. (verwenden "
|
|
||||||
"Sie HOST: PORT-Format)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:75 transports/TSNX/TSNXTransport.py:103
|
|
||||||
msgid "Must use HOST:PORT in Tunnel Server Field"
|
|
||||||
msgstr "HOST: PORT muss in Feld der Tunnel-Server verwendet werden."
|
|
||||||
|
|
||||||
#: transports/RDP/__init__.py:39
|
#: transports/RDP/__init__.py:39
|
||||||
msgid "Remote Desktop Protocol"
|
msgid "Remote Desktop Protocol"
|
||||||
msgstr "Remote Desktop-Protokoll"
|
msgstr "Remote Desktop-Protokoll"
|
||||||
@ -1570,14 +1650,6 @@ msgstr "Erhalten Sie es aus"
|
|||||||
msgid "CoRD Website"
|
msgid "CoRD Website"
|
||||||
msgstr "CoRD-Website"
|
msgstr "CoRD-Website"
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:55
|
|
||||||
msgid "NX Transport (tunneled)"
|
|
||||||
msgstr "NX-Transport (Tunneling)"
|
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:57
|
|
||||||
msgid "NX Transport for tunneled connection"
|
|
||||||
msgstr "NX-Transport für getunnelte Verbindung"
|
|
||||||
|
|
||||||
#: web/errors.py:60
|
#: web/errors.py:60
|
||||||
msgid "Unknown error"
|
msgid "Unknown error"
|
||||||
msgstr "Unbekannter Fehler"
|
msgstr "Unbekannter Fehler"
|
||||||
@ -1639,6 +1711,10 @@ msgstr ""
|
|||||||
msgid "Authenticator do not provides information"
|
msgid "Authenticator do not provides information"
|
||||||
msgstr "Authentifikator informiert nicht"
|
msgstr "Authentifikator informiert nicht"
|
||||||
|
|
||||||
|
#: web/forms/LoginForm.py:50
|
||||||
|
msgid "Select authenticator"
|
||||||
|
msgstr "Wählen Sie Authentifikator"
|
||||||
|
|
||||||
#: web/forms/LoginForm.py:54
|
#: web/forms/LoginForm.py:54
|
||||||
msgid "authenticator"
|
msgid "authenticator"
|
||||||
msgstr "Authentifikator"
|
msgstr "Authentifikator"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,70 +18,146 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: static/adm/js/api.js:23
|
#: static/adm/js/gui-elements.js:7
|
||||||
msgid "Success on \""
|
|
||||||
msgstr "Erfolg auf\""
|
|
||||||
|
|
||||||
#: static/adm/js/api.js:24
|
|
||||||
msgid "Received "
|
|
||||||
msgstr "Empfangen "
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:17
|
|
||||||
msgid "Display _MENU_ records per page"
|
|
||||||
msgstr "_MENU_-Einträge pro Seite anzeigen"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:18
|
|
||||||
msgid "Nothing found - sorry"
|
|
||||||
msgstr "Nichts gefunden - sorry"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:19
|
|
||||||
msgid "Showing record _START_ to _END_ of _TOTAL_"
|
|
||||||
msgstr "Ergebnis Rekord _START_ zu _END_ von _TOTAL_"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:20
|
|
||||||
msgid "Showing 0 to 0 of 0 records"
|
|
||||||
msgstr "Anzeigen 0 bis 0 von 0 Einträge"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:21
|
|
||||||
msgid "(filtered from _MAX_ total records)"
|
|
||||||
msgstr "(von _MAX_ Datensätze gefiltert)"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:22
|
|
||||||
msgid "Please wait, processing"
|
|
||||||
msgstr "Bitte warten, Verarbeitung"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:23
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Suche"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:26
|
|
||||||
msgid "First"
|
|
||||||
msgstr "Erste"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:27
|
|
||||||
msgid "Last"
|
|
||||||
msgstr "Letzter"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:28
|
|
||||||
msgid "Next"
|
|
||||||
msgstr "Nächste"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:29
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr "Vorherige"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:83
|
|
||||||
msgid "Connectivity"
|
|
||||||
msgstr "Konnektivität"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:88
|
|
||||||
msgid "Deployed services"
|
|
||||||
msgstr "Bereitgestellten Dienste"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:181
|
|
||||||
msgid "Service Providers"
|
msgid "Service Providers"
|
||||||
msgstr "Service-Provider"
|
msgstr "Service-Provider"
|
||||||
|
|
||||||
#: static/adm/js/gui.js:191
|
#: static/adm/js/gui-elements.js:81
|
||||||
msgid "Authenticators"
|
msgid "Connectivity"
|
||||||
msgstr "Authentifikatoren"
|
msgstr "Konnektivität"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:18
|
||||||
|
msgid "_MENU_ records per page"
|
||||||
|
msgstr "_MENU_ Datensätze pro Seite"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:19
|
||||||
|
msgid "Empty"
|
||||||
|
msgstr "Leer"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:20
|
||||||
|
msgid "Records _START_ to _END_ of _TOTAL_"
|
||||||
|
msgstr "Zeichnet _START_, _END_ von _TOTAL_"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:21
|
||||||
|
msgid "No records"
|
||||||
|
msgstr "Keine Datensätze"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:22
|
||||||
|
msgid "(filtered from _MAX_ total records)"
|
||||||
|
msgstr "(von _MAX_ Datensätze gefiltert)"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:23
|
||||||
|
msgid "Please wait, processing"
|
||||||
|
msgstr "Bitte warten, Verarbeitung"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:24
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filter"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:27
|
||||||
|
msgid "First"
|
||||||
|
msgstr "Erste"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:28
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "Letzter"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:29
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Nächste"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:30
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Vorherige"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:80
|
||||||
|
msgid "Deployed services"
|
||||||
|
msgstr "Bereitgestellten Dienste"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:349
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:358
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Löschen"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:367
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr "Aktualisieren"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Sunday"
|
||||||
|
msgstr "Sonntag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Monday"
|
||||||
|
msgstr "Montag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Tuesday"
|
||||||
|
msgstr "Dienstag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Wednesday"
|
||||||
|
msgstr "Mittwoch"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Thursday"
|
||||||
|
msgstr "Donnerstag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Friday"
|
||||||
|
msgstr "Freitag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Saturday"
|
||||||
|
msgstr "Samstag"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Januar"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Februar"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "March"
|
||||||
|
msgstr "März"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "April"
|
||||||
|
msgstr "April"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Mai"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Juni"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "July"
|
||||||
|
msgstr "Juli"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "August"
|
||||||
|
msgstr "August"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "September"
|
||||||
|
msgstr "September"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "October"
|
||||||
|
msgstr "Oktober"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "November"
|
||||||
|
msgstr "November"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:35
|
||||||
|
msgid "December"
|
||||||
|
msgstr "Dezember"
|
||||||
|
Binary file not shown.
@ -31,7 +31,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:20+0100\n"
|
||||||
"PO-Revision-Date: 2013-04-22 06:24+0200\n"
|
"PO-Revision-Date: 2013-04-22 06:24+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
|
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
|
||||||
@ -42,35 +42,86 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
"X-Generator: Lokalize 1.4\n"
|
"X-Generator: Lokalize 1.4\n"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:72
|
#: REST/methods/authenticators.py:73
|
||||||
msgid "Current authenticators"
|
msgid "Current authenticators"
|
||||||
msgstr "Autenticadores actuales"
|
msgstr "Autenticadores actuales"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
|
#: REST/methods/authenticators.py:75 REST/methods/networks.py:68
|
||||||
|
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
|
||||||
|
#: REST/methods/transports.py:71 REST/methods/users.py:77
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nombre"
|
msgstr "Nombre"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
|
#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72
|
||||||
|
#: REST/methods/providers.py:70 REST/methods/transports.py:72
|
||||||
|
#: REST/methods/users.py:78
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Comentarios"
|
msgstr "Comentarios"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:76
|
#: REST/methods/authenticators.py:77
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Usuarios"
|
msgstr "Usuarios"
|
||||||
|
|
||||||
#: REST/methods/providers.py:69
|
#: REST/methods/networks.py:66
|
||||||
|
msgid "Current Networks"
|
||||||
|
msgstr "Redes actuales"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:69 templates/uds/index.html:79
|
||||||
|
#: templates/uds/html5/index.html:127
|
||||||
|
msgid "Networks"
|
||||||
|
msgstr "Redes"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
|
||||||
|
#: REST/methods/transports.py:73
|
||||||
|
msgid "Used by"
|
||||||
|
msgstr "Utilizado por"
|
||||||
|
|
||||||
|
#: REST/methods/osmanagers.py:69
|
||||||
|
msgid "Current OS Managers"
|
||||||
|
msgstr "Actual OS administradores"
|
||||||
|
|
||||||
|
#: REST/methods/providers.py:67
|
||||||
msgid "Current service providers"
|
msgid "Current service providers"
|
||||||
msgstr "Proveedores de servicio actuales"
|
msgstr "Proveedores de servicio actuales"
|
||||||
|
|
||||||
#: REST/methods/providers.py:73 templates/uds/index.html:51
|
#: REST/methods/providers.py:71 templates/uds/index.html:51
|
||||||
#: templates/uds/html5/index.html:68
|
#: templates/uds/html5/index.html:68
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Servicios"
|
msgstr "Servicios"
|
||||||
|
|
||||||
#: admin/views.py:53 admin/views.py:61 web/views.py:422
|
#: REST/methods/transports.py:69
|
||||||
|
msgid "Current Transports"
|
||||||
|
msgstr "Transportes actuales"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:70
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Users of {0}"
|
||||||
|
msgstr "Usuarios de {0}"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:72
|
||||||
|
msgid "Current users"
|
||||||
|
msgstr "Usuarios actuales"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:76
|
||||||
|
msgid "User Id"
|
||||||
|
msgstr "Id de usuario"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:79
|
||||||
|
msgid "state"
|
||||||
|
msgstr "estado"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:80
|
||||||
|
msgid "Last access"
|
||||||
|
msgstr "Último acceso"
|
||||||
|
|
||||||
|
#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422
|
||||||
msgid "Forbidden"
|
msgid "Forbidden"
|
||||||
msgstr "Prohibido"
|
msgstr "Prohibido"
|
||||||
|
|
||||||
|
#: admin/views.py:69
|
||||||
|
msgid "requested a template that do not exists"
|
||||||
|
msgstr "solicitó una plantilla que no existe"
|
||||||
|
|
||||||
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
||||||
msgid "IP Authenticator"
|
msgid "IP Authenticator"
|
||||||
msgstr "Autenticador por IP"
|
msgstr "Autenticador por IP"
|
||||||
@ -160,8 +211,9 @@ msgstr "Usuario con privilegios de lectura en la base elegida"
|
|||||||
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
||||||
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
|
#: web/forms/LoginForm.py:70
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contraseña"
|
msgstr "Contraseña"
|
||||||
|
|
||||||
@ -230,9 +282,9 @@ msgstr "Autenticador LDAP de expresiones regulares"
|
|||||||
|
|
||||||
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
||||||
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
||||||
#: transports/NX/NXTransport.py:61 transports/RDP/RDPTransport.py:59
|
#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66
|
||||||
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
||||||
#: web/forms/LoginForm.py:69
|
#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Usuario"
|
msgstr "Usuario"
|
||||||
|
|
||||||
@ -1079,10 +1131,6 @@ msgstr "y reinicie el navegador"
|
|||||||
msgid "Ip"
|
msgid "Ip"
|
||||||
msgstr "IP"
|
msgstr "IP"
|
||||||
|
|
||||||
#: templates/uds/index.html:79 templates/uds/html5/index.html:127
|
|
||||||
msgid "Networks"
|
|
||||||
msgstr "Redes"
|
|
||||||
|
|
||||||
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr "Transportes"
|
msgstr "Transportes"
|
||||||
@ -1139,35 +1187,44 @@ msgstr ""
|
|||||||
msgid "toggle navigation"
|
msgid "toggle navigation"
|
||||||
msgstr "Toggle navegación"
|
msgstr "Toggle navegación"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:17
|
#: templates/uds/admin/snippets/navbar.html:18
|
||||||
msgid "Service providers"
|
msgid "Service providers"
|
||||||
msgstr "Proveedores de servicios"
|
msgstr "Proveedores de servicios"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:18
|
#: templates/uds/admin/snippets/navbar.html:19
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
msgid "Authenticators"
|
msgid "Authenticators"
|
||||||
msgstr "Autenticadores"
|
msgstr "Autenticadores"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:20
|
#: templates/uds/admin/snippets/navbar.html:21
|
||||||
msgid "Connectivity"
|
msgid "Connectivity"
|
||||||
msgstr "Conectividad"
|
msgstr "Conectividad"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:21
|
#: templates/uds/admin/snippets/navbar.html:22
|
||||||
msgid "Deployed services"
|
msgid "Deployed services"
|
||||||
msgstr "Servicios desplegados"
|
msgstr "Servicios desplegados"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:25
|
#: templates/uds/admin/snippets/navbar.html:26
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Configuración"
|
msgstr "Configuración"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:57
|
#: templates/uds/admin/snippets/navbar.html:56
|
||||||
msgid "Exit dashboard"
|
msgid "Exit dashboard"
|
||||||
msgstr "Tablero de salida"
|
msgstr "Tablero de salida"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:58
|
#: templates/uds/admin/snippets/navbar.html:57
|
||||||
#: templates/uds/html5/snippets/navbar.html:47
|
#: templates/uds/html5/snippets/navbar.html:47
|
||||||
msgid "logout"
|
msgid "logout"
|
||||||
msgstr "logout"
|
msgstr "logout"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
|
msgid "administration of authenticators"
|
||||||
|
msgstr "Administración de autenticadores"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/dashboard.html:4
|
||||||
|
msgid "overview"
|
||||||
|
msgstr "Resumen"
|
||||||
|
|
||||||
#: templates/uds/html5/detectJava.html:4
|
#: templates/uds/html5/detectJava.html:4
|
||||||
msgid "Login redirection to UDS"
|
msgid "Login redirection to UDS"
|
||||||
msgstr "Redirección de inicio de sesión para UDS"
|
msgstr "Redirección de inicio de sesión para UDS"
|
||||||
@ -1259,7 +1316,7 @@ msgstr "Acerca de"
|
|||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Tablero de instrumentos"
|
msgstr "Tablero de instrumentos"
|
||||||
|
|
||||||
#: templates/uds/html5/templates/base.html:51
|
#: templates/uds/html5/templates/base.html:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your browser is supported only partially. Please, upgrade it to a modern "
|
"Your browser is supported only partially. Please, upgrade it to a modern "
|
||||||
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
||||||
@ -1297,28 +1354,28 @@ msgstr ""
|
|||||||
"accesible de los usuarios"
|
"accesible de los usuarios"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "Empty creds"
|
msgid "Empty creds"
|
||||||
msgstr "Sin credenciales"
|
msgstr "Sin credenciales"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "If checked, the credentials used to connect will be emtpy"
|
msgid "If checked, the credentials used to connect will be emtpy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si está activada, las credenciales utilizadas para conectar estarán vacías"
|
"Si está activada, las credenciales utilizadas para conectar estarán vacías"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
||||||
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59
|
||||||
#: transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
||||||
msgid "If not empty, this username will be always used as credential"
|
msgid "If not empty, this username will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si no está vacio, este nombre de usuario será utilizado como credencial fija"
|
"Si no está vacio, este nombre de usuario será utilizado como credencial fija"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
msgid "If not empty, this password will be always used as credential"
|
msgid "If not empty, this password will be always used as credential"
|
||||||
msgstr "Si no está vacio, este password será utiizado como credencial fija"
|
msgstr "Si no está vacio, este password será utiizado como credencial fija"
|
||||||
|
|
||||||
@ -1371,46 +1428,97 @@ msgstr "Transporte NX (directo)"
|
|||||||
msgid "NX Transport for direct connection"
|
msgid "NX Transport for direct connection"
|
||||||
msgstr "Transporte NX para conexión directa"
|
msgstr "Transporte NX para conexión directa"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listen port"
|
msgid "Listen port"
|
||||||
msgstr "Puerto de escucha"
|
msgstr "Puerto de escucha"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listening port of NX (ssh) at client machine"
|
msgid "Listening port of NX (ssh) at client machine"
|
||||||
msgstr "Puerto de escucha de NX (ssh) en el equipo cliente"
|
msgstr "Puerto de escucha de NX (ssh) en el equipo cliente"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Conexión"
|
msgstr "Conexión"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection speed for this transport (quality)"
|
msgid "Connection speed for this transport (quality)"
|
||||||
msgstr "Velocidad de conexión de este transporte (calidad)"
|
msgstr "Velocidad de conexión de este transporte (calidad)"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Session"
|
msgid "Session"
|
||||||
msgstr "Sesiones"
|
msgstr "Sesiones"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Desktop session"
|
msgid "Desktop session"
|
||||||
msgstr "Sesión de escritorio"
|
msgstr "Sesión de escritorio"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Disk Cache"
|
msgid "Disk Cache"
|
||||||
msgstr "Caché de disco"
|
msgstr "Caché de disco"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Cache size en Mb stored at disk"
|
msgid "Cache size en Mb stored at disk"
|
||||||
msgstr "Tamaño de ca Caché en MB almacenada en disco"
|
msgstr "Tamaño de ca Caché en MB almacenada en disco"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Memory Cache"
|
msgid "Memory Cache"
|
||||||
msgstr "Memoria Caché"
|
msgstr "Memoria Caché"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Cache size en Mb keept at memory"
|
msgid "Cache size en Mb keept at memory"
|
||||||
msgstr "Tamaño del Caché en Mb a mantener en memoria"
|
msgstr "Tamaño del Caché en Mb a mantener en memoria"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:55 transports/TSNX/TSNXTransport.py:55
|
||||||
|
msgid "NX Transport (tunneled)"
|
||||||
|
msgstr "Transporte NX (vía túnel)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:57 transports/TSNX/TSNXTransport.py:57
|
||||||
|
msgid "NX Transport for tunneled connection"
|
||||||
|
msgstr "Transporte NX para conexión vía túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid "Tunnel server"
|
||||||
|
msgstr "Servidor de túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid ""
|
||||||
|
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
||||||
|
"port. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"IP o nombre de host del servidor de túnel enviar a dispositivo de cliente "
|
||||||
|
"(ip \"pública\") y puerto. (utilice el formato HOST: puerto)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid "Tunnel host check"
|
||||||
|
msgstr "Verificación de host de túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid ""
|
||||||
|
"If not empty, this server will be used to check if service is running before "
|
||||||
|
"assigning it to user. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"Si no vacía, este servidor se utilizará para comprobar si el servicio se "
|
||||||
|
"ejecuta antes de asignarle al usuario. (utilice el formato HOST: puerto)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75
|
||||||
|
#: transports/TSNX/TSNXTransport.py:103
|
||||||
|
msgid "Must use HOST:PORT in Tunnel Server Field"
|
||||||
|
msgstr "Debe utilizar HOST: puerto en el campo servidor de túnel"
|
||||||
|
|
||||||
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
||||||
msgid "NX Protocol"
|
msgid "NX Protocol"
|
||||||
msgstr "Protocolo NX"
|
msgstr "Protocolo NX"
|
||||||
@ -1504,34 +1612,6 @@ msgstr "Transporte RDP (vía túnel)"
|
|||||||
msgid "RDP Transport for tunneled connection"
|
msgid "RDP Transport for tunneled connection"
|
||||||
msgstr "Transporte RDP para conexión vía túnel"
|
msgstr "Transporte RDP para conexión vía túnel"
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid "Tunnel server"
|
|
||||||
msgstr "Servidor de túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid ""
|
|
||||||
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
|
||||||
"port. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"IP o nombre de host del servidor de túnel enviar a dispositivo de cliente "
|
|
||||||
"(ip \"pública\") y puerto. (utilice el formato HOST: puerto)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid "Tunnel host check"
|
|
||||||
msgstr "Verificación de host de túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid ""
|
|
||||||
"If not empty, this server will be used to check if service is running before "
|
|
||||||
"assigning it to user. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"Si no vacía, este servidor se utilizará para comprobar si el servicio se "
|
|
||||||
"ejecuta antes de asignarle al usuario. (utilice el formato HOST: puerto)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:75 transports/TSNX/TSNXTransport.py:103
|
|
||||||
msgid "Must use HOST:PORT in Tunnel Server Field"
|
|
||||||
msgstr "Debe utilizar HOST: puerto en el campo servidor de túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/__init__.py:39
|
#: transports/RDP/__init__.py:39
|
||||||
msgid "Remote Desktop Protocol"
|
msgid "Remote Desktop Protocol"
|
||||||
msgstr "Protocolo de Escritorio remoto (RDP)"
|
msgstr "Protocolo de Escritorio remoto (RDP)"
|
||||||
@ -1548,14 +1628,6 @@ msgstr "Puede obtenerlo de"
|
|||||||
msgid "CoRD Website"
|
msgid "CoRD Website"
|
||||||
msgstr "Sitio Web de CoRD"
|
msgstr "Sitio Web de CoRD"
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:55
|
|
||||||
msgid "NX Transport (tunneled)"
|
|
||||||
msgstr "Transporte NX (vía túnel)"
|
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:57
|
|
||||||
msgid "NX Transport for tunneled connection"
|
|
||||||
msgstr "Transporte NX para conexión vía túnel"
|
|
||||||
|
|
||||||
#: web/errors.py:60
|
#: web/errors.py:60
|
||||||
msgid "Unknown error"
|
msgid "Unknown error"
|
||||||
msgstr "Error desconocido"
|
msgstr "Error desconocido"
|
||||||
@ -1619,6 +1691,10 @@ msgstr ""
|
|||||||
msgid "Authenticator do not provides information"
|
msgid "Authenticator do not provides information"
|
||||||
msgstr "El autenticador no proporciona información alguna"
|
msgstr "El autenticador no proporciona información alguna"
|
||||||
|
|
||||||
|
#: web/forms/LoginForm.py:50
|
||||||
|
msgid "Select authenticator"
|
||||||
|
msgstr "Seleccione autenticador"
|
||||||
|
|
||||||
#: web/forms/LoginForm.py:54
|
#: web/forms/LoginForm.py:54
|
||||||
msgid "authenticator"
|
msgid "authenticator"
|
||||||
msgstr "autenticador"
|
msgstr "autenticador"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,70 +18,146 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: static/adm/js/api.js:23
|
#: static/adm/js/gui-elements.js:7
|
||||||
msgid "Success on \""
|
|
||||||
msgstr "Éxito de\""
|
|
||||||
|
|
||||||
#: static/adm/js/api.js:24
|
|
||||||
msgid "Received "
|
|
||||||
msgstr "Recibido "
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:17
|
|
||||||
msgid "Display _MENU_ records per page"
|
|
||||||
msgstr "Pantalla _MENU_ registros por página"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:18
|
|
||||||
msgid "Nothing found - sorry"
|
|
||||||
msgstr "No encontrado - lo siento"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:19
|
|
||||||
msgid "Showing record _START_ to _END_ of _TOTAL_"
|
|
||||||
msgstr "Mostrando registro _START_ a _END_ de _TOTAL_"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:20
|
|
||||||
msgid "Showing 0 to 0 of 0 records"
|
|
||||||
msgstr "Mostrando 0 a 0 de 0 registros"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:21
|
|
||||||
msgid "(filtered from _MAX_ total records)"
|
|
||||||
msgstr "(filtrado de registros total _MAX_)"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:22
|
|
||||||
msgid "Please wait, processing"
|
|
||||||
msgstr "Por favor espere, procesando"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:23
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Búsqueda de"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:26
|
|
||||||
msgid "First"
|
|
||||||
msgstr "Primero"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:27
|
|
||||||
msgid "Last"
|
|
||||||
msgstr "Duran"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:28
|
|
||||||
msgid "Next"
|
|
||||||
msgstr "Próxima"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:29
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr "Anterior"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:83
|
|
||||||
msgid "Connectivity"
|
|
||||||
msgstr "Conectividad"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:88
|
|
||||||
msgid "Deployed services"
|
|
||||||
msgstr "Servicios desplegados"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:181
|
|
||||||
msgid "Service Providers"
|
msgid "Service Providers"
|
||||||
msgstr "Proveedores de servicios"
|
msgstr "Proveedores de servicios"
|
||||||
|
|
||||||
#: static/adm/js/gui.js:191
|
#: static/adm/js/gui-elements.js:81
|
||||||
msgid "Authenticators"
|
msgid "Connectivity"
|
||||||
msgstr "Autenticadores"
|
msgstr "Conectividad"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:18
|
||||||
|
msgid "_MENU_ records per page"
|
||||||
|
msgstr "Registros _MENU_ por página"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:19
|
||||||
|
msgid "Empty"
|
||||||
|
msgstr "Vacío"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:20
|
||||||
|
msgid "Records _START_ to _END_ of _TOTAL_"
|
||||||
|
msgstr "Registros de _START_ a _END_ de _TOTAL_"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:21
|
||||||
|
msgid "No records"
|
||||||
|
msgstr "No hay registros"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:22
|
||||||
|
msgid "(filtered from _MAX_ total records)"
|
||||||
|
msgstr "(filtrado de registros total _MAX_)"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:23
|
||||||
|
msgid "Please wait, processing"
|
||||||
|
msgstr "Por favor espere, procesando"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:24
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filtro"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:27
|
||||||
|
msgid "First"
|
||||||
|
msgstr "Primero"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:28
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "Duran"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:29
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Próxima"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:30
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Anterior"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:80
|
||||||
|
msgid "Deployed services"
|
||||||
|
msgstr "Servicios desplegados"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:349
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:358
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Borrar"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:367
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr "Actualización"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Sunday"
|
||||||
|
msgstr "Domingo"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Monday"
|
||||||
|
msgstr "Lunes"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Tuesday"
|
||||||
|
msgstr "Martes"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Wednesday"
|
||||||
|
msgstr "Miércoles"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Thursday"
|
||||||
|
msgstr "Jueves"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Friday"
|
||||||
|
msgstr "Viernes"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Saturday"
|
||||||
|
msgstr "Sábado"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Enero"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Febrero"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "March"
|
||||||
|
msgstr "Marzo"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "April"
|
||||||
|
msgstr "Abril"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Mayo"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Junio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "July"
|
||||||
|
msgstr "Julio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "August"
|
||||||
|
msgstr "Agosto"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "September"
|
||||||
|
msgstr "Septiembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "October"
|
||||||
|
msgstr "Octubre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "November"
|
||||||
|
msgstr "Noviembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:35
|
||||||
|
msgid "December"
|
||||||
|
msgstr "Diciembre"
|
||||||
|
Binary file not shown.
@ -32,7 +32,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:20+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -42,35 +42,86 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:72
|
#: REST/methods/authenticators.py:73
|
||||||
msgid "Current authenticators"
|
msgid "Current authenticators"
|
||||||
msgstr "Authentificateurs actuels"
|
msgstr "Authentificateurs actuels"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
|
#: REST/methods/authenticators.py:75 REST/methods/networks.py:68
|
||||||
|
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
|
||||||
|
#: REST/methods/transports.py:71 REST/methods/users.py:77
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nom"
|
msgstr "Nom"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
|
#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72
|
||||||
|
#: REST/methods/providers.py:70 REST/methods/transports.py:72
|
||||||
|
#: REST/methods/users.py:78
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Commentaires"
|
msgstr "Commentaires"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:76
|
#: REST/methods/authenticators.py:77
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Utilisateurs"
|
msgstr "Utilisateurs"
|
||||||
|
|
||||||
#: REST/methods/providers.py:69
|
#: REST/methods/networks.py:66
|
||||||
|
msgid "Current Networks"
|
||||||
|
msgstr "Réseaux actuels"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:69 templates/uds/index.html:79
|
||||||
|
#: templates/uds/html5/index.html:127
|
||||||
|
msgid "Networks"
|
||||||
|
msgstr "Réseaux"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
|
||||||
|
#: REST/methods/transports.py:73
|
||||||
|
msgid "Used by"
|
||||||
|
msgstr "Utilisé par"
|
||||||
|
|
||||||
|
#: REST/methods/osmanagers.py:69
|
||||||
|
msgid "Current OS Managers"
|
||||||
|
msgstr "Dirigeants de OS actuels"
|
||||||
|
|
||||||
|
#: REST/methods/providers.py:67
|
||||||
msgid "Current service providers"
|
msgid "Current service providers"
|
||||||
msgstr "Fournisseurs de services actuels"
|
msgstr "Fournisseurs de services actuels"
|
||||||
|
|
||||||
#: REST/methods/providers.py:73 templates/uds/index.html:51
|
#: REST/methods/providers.py:71 templates/uds/index.html:51
|
||||||
#: templates/uds/html5/index.html:68
|
#: templates/uds/html5/index.html:68
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Services"
|
msgstr "Services"
|
||||||
|
|
||||||
#: admin/views.py:53 admin/views.py:61 web/views.py:422
|
#: REST/methods/transports.py:69
|
||||||
|
msgid "Current Transports"
|
||||||
|
msgstr "Transports actuels"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:70
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Users of {0}"
|
||||||
|
msgstr "Utilisateurs de {0}"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:72
|
||||||
|
msgid "Current users"
|
||||||
|
msgstr "Utilisateurs actuels"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:76
|
||||||
|
msgid "User Id"
|
||||||
|
msgstr "Id de l'utilisateur"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:79
|
||||||
|
msgid "state"
|
||||||
|
msgstr "État"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:80
|
||||||
|
msgid "Last access"
|
||||||
|
msgstr "Dernier accès"
|
||||||
|
|
||||||
|
#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422
|
||||||
msgid "Forbidden"
|
msgid "Forbidden"
|
||||||
msgstr "Interdit"
|
msgstr "Interdit"
|
||||||
|
|
||||||
|
#: admin/views.py:69
|
||||||
|
msgid "requested a template that do not exists"
|
||||||
|
msgstr "demandé un modèle qui ne sont pas existe"
|
||||||
|
|
||||||
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
||||||
msgid "IP Authenticator"
|
msgid "IP Authenticator"
|
||||||
msgstr "Authentificateur IP"
|
msgstr "Authentificateur IP"
|
||||||
@ -161,8 +212,9 @@ msgstr ""
|
|||||||
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
||||||
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
|
#: web/forms/LoginForm.py:70
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Mot de passe"
|
msgstr "Mot de passe"
|
||||||
|
|
||||||
@ -232,9 +284,9 @@ msgstr "Authentificateur de LDAP d'Expressions régulière"
|
|||||||
|
|
||||||
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
||||||
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
||||||
#: transports/NX/NXTransport.py:61 transports/RDP/RDPTransport.py:59
|
#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66
|
||||||
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
||||||
#: web/forms/LoginForm.py:69
|
#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nom d'utilisateur"
|
msgstr "Nom d'utilisateur"
|
||||||
|
|
||||||
@ -1091,10 +1143,6 @@ msgstr "Redémarrez le navigateur"
|
|||||||
msgid "Ip"
|
msgid "Ip"
|
||||||
msgstr "IP"
|
msgstr "IP"
|
||||||
|
|
||||||
#: templates/uds/index.html:79 templates/uds/html5/index.html:127
|
|
||||||
msgid "Networks"
|
|
||||||
msgstr "Réseaux"
|
|
||||||
|
|
||||||
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr "Transports"
|
msgstr "Transports"
|
||||||
@ -1151,35 +1199,44 @@ msgstr ""
|
|||||||
msgid "toggle navigation"
|
msgid "toggle navigation"
|
||||||
msgstr "activer/désactiver navigation"
|
msgstr "activer/désactiver navigation"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:17
|
#: templates/uds/admin/snippets/navbar.html:18
|
||||||
msgid "Service providers"
|
msgid "Service providers"
|
||||||
msgstr "Fournisseurs de services"
|
msgstr "Fournisseurs de services"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:18
|
#: templates/uds/admin/snippets/navbar.html:19
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
msgid "Authenticators"
|
msgid "Authenticators"
|
||||||
msgstr "Authentificateurs"
|
msgstr "Authentificateurs"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:20
|
#: templates/uds/admin/snippets/navbar.html:21
|
||||||
msgid "Connectivity"
|
msgid "Connectivity"
|
||||||
msgstr "Connectivité"
|
msgstr "Connectivité"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:21
|
#: templates/uds/admin/snippets/navbar.html:22
|
||||||
msgid "Deployed services"
|
msgid "Deployed services"
|
||||||
msgstr "Services déployés"
|
msgstr "Services déployés"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:25
|
#: templates/uds/admin/snippets/navbar.html:26
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Configuration"
|
msgstr "Configuration"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:57
|
#: templates/uds/admin/snippets/navbar.html:56
|
||||||
msgid "Exit dashboard"
|
msgid "Exit dashboard"
|
||||||
msgstr "Tableau de bord de sortie"
|
msgstr "Tableau de bord de sortie"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:58
|
#: templates/uds/admin/snippets/navbar.html:57
|
||||||
#: templates/uds/html5/snippets/navbar.html:47
|
#: templates/uds/html5/snippets/navbar.html:47
|
||||||
msgid "logout"
|
msgid "logout"
|
||||||
msgstr "logout"
|
msgstr "logout"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
|
msgid "administration of authenticators"
|
||||||
|
msgstr "administration des authentificateurs"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/dashboard.html:4
|
||||||
|
msgid "overview"
|
||||||
|
msgstr "vue d'ensemble"
|
||||||
|
|
||||||
#: templates/uds/html5/detectJava.html:4
|
#: templates/uds/html5/detectJava.html:4
|
||||||
msgid "Login redirection to UDS"
|
msgid "Login redirection to UDS"
|
||||||
msgstr "Redirection de connexion à l'UDS"
|
msgstr "Redirection de connexion à l'UDS"
|
||||||
@ -1271,7 +1328,7 @@ msgstr "Sur"
|
|||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Tableau de bord"
|
msgstr "Tableau de bord"
|
||||||
|
|
||||||
#: templates/uds/html5/templates/base.html:51
|
#: templates/uds/html5/templates/base.html:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your browser is supported only partially. Please, upgrade it to a modern "
|
"Your browser is supported only partially. Please, upgrade it to a modern "
|
||||||
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
||||||
@ -1309,30 +1366,30 @@ msgstr ""
|
|||||||
"si nécessaire) des utilisateurs"
|
"si nécessaire) des utilisateurs"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "Empty creds"
|
msgid "Empty creds"
|
||||||
msgstr "Références vide"
|
msgstr "Références vide"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "If checked, the credentials used to connect will be emtpy"
|
msgid "If checked, the credentials used to connect will be emtpy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si coché, les informations d'identification utilisées pour se connecter sera "
|
"Si coché, les informations d'identification utilisées pour se connecter sera "
|
||||||
"vide"
|
"vide"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
||||||
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59
|
||||||
#: transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
||||||
msgid "If not empty, this username will be always used as credential"
|
msgid "If not empty, this username will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si ce n'est vide, ce nom d'utilisateur sera toujours utilisé comme des "
|
"Si ce n'est vide, ce nom d'utilisateur sera toujours utilisé comme des "
|
||||||
"titres de compétences"
|
"titres de compétences"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
msgid "If not empty, this password will be always used as credential"
|
msgid "If not empty, this password will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si ce n'est vide, ce mot de passe sera toujours utilisé comme des titres de "
|
"Si ce n'est vide, ce mot de passe sera toujours utilisé comme des titres de "
|
||||||
@ -1387,46 +1444,98 @@ msgstr "NX Transport (direct)"
|
|||||||
msgid "NX Transport for direct connection"
|
msgid "NX Transport for direct connection"
|
||||||
msgstr "NX Transport pour une connexion directe"
|
msgstr "NX Transport pour une connexion directe"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listen port"
|
msgid "Listen port"
|
||||||
msgstr "Écouter le port"
|
msgstr "Écouter le port"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listening port of NX (ssh) at client machine"
|
msgid "Listening port of NX (ssh) at client machine"
|
||||||
msgstr "Écoute le port de NX (ssh) à la machine client"
|
msgstr "Écoute le port de NX (ssh) à la machine client"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Connexion"
|
msgstr "Connexion"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection speed for this transport (quality)"
|
msgid "Connection speed for this transport (quality)"
|
||||||
msgstr "Vitesse de connexion pour ce transport (qualité)"
|
msgstr "Vitesse de connexion pour ce transport (qualité)"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Session"
|
msgid "Session"
|
||||||
msgstr "Session"
|
msgstr "Session"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Desktop session"
|
msgid "Desktop session"
|
||||||
msgstr "Session de bureau"
|
msgstr "Session de bureau"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Disk Cache"
|
msgid "Disk Cache"
|
||||||
msgstr "Cache disque"
|
msgstr "Cache disque"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Cache size en Mb stored at disk"
|
msgid "Cache size en Mb stored at disk"
|
||||||
msgstr "Cache en taille que Mo stocké à disque"
|
msgstr "Cache en taille que Mo stocké à disque"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Memory Cache"
|
msgid "Memory Cache"
|
||||||
msgstr "Mémoire Cache"
|
msgstr "Mémoire Cache"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Cache size en Mb keept at memory"
|
msgid "Cache size en Mb keept at memory"
|
||||||
msgstr "Taille en Mb montagne à la mémoire de cache."
|
msgstr "Taille en Mb montagne à la mémoire de cache."
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:55 transports/TSNX/TSNXTransport.py:55
|
||||||
|
msgid "NX Transport (tunneled)"
|
||||||
|
msgstr "Transport NX (tunnel)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:57 transports/TSNX/TSNXTransport.py:57
|
||||||
|
msgid "NX Transport for tunneled connection"
|
||||||
|
msgstr "Transport NX pour connexion tunnelée"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid "Tunnel server"
|
||||||
|
msgstr "Serveur de tunnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid ""
|
||||||
|
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
||||||
|
"port. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"IP ou nom d'hôte du serveur de tunnel envoyer à la machine cliente (« public "
|
||||||
|
"» ip) et port. (utilisez le format de l'hôte : PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid "Tunnel host check"
|
||||||
|
msgstr "Tunnel hôte cocher"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid ""
|
||||||
|
"If not empty, this server will be used to check if service is running before "
|
||||||
|
"assigning it to user. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"Si ce n'est vide, ce serveur sera utilisé pour vérifier si le service "
|
||||||
|
"s'exécute avant assignant à l'utilisateur. (utilisez le format de l'hôte : "
|
||||||
|
"PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75
|
||||||
|
#: transports/TSNX/TSNXTransport.py:103
|
||||||
|
msgid "Must use HOST:PORT in Tunnel Server Field"
|
||||||
|
msgstr "Devez utiliser HOST : PORT dans le champ serveur Tunnel"
|
||||||
|
|
||||||
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
||||||
msgid "NX Protocol"
|
msgid "NX Protocol"
|
||||||
msgstr "Protocole de NX"
|
msgstr "Protocole de NX"
|
||||||
@ -1518,35 +1627,6 @@ msgstr "Transport de RDP (tunnel)"
|
|||||||
msgid "RDP Transport for tunneled connection"
|
msgid "RDP Transport for tunneled connection"
|
||||||
msgstr "Transport de RDP de connexion tunnelée"
|
msgstr "Transport de RDP de connexion tunnelée"
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid "Tunnel server"
|
|
||||||
msgstr "Serveur de tunnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid ""
|
|
||||||
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
|
||||||
"port. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"IP ou nom d'hôte du serveur de tunnel envoyer à la machine cliente (« public "
|
|
||||||
"» ip) et port. (utilisez le format de l'hôte : PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid "Tunnel host check"
|
|
||||||
msgstr "Tunnel hôte cocher"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid ""
|
|
||||||
"If not empty, this server will be used to check if service is running before "
|
|
||||||
"assigning it to user. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"Si ce n'est vide, ce serveur sera utilisé pour vérifier si le service "
|
|
||||||
"s'exécute avant assignant à l'utilisateur. (utilisez le format de l'hôte : "
|
|
||||||
"PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:75 transports/TSNX/TSNXTransport.py:103
|
|
||||||
msgid "Must use HOST:PORT in Tunnel Server Field"
|
|
||||||
msgstr "Devez utiliser HOST : PORT dans le champ serveur Tunnel"
|
|
||||||
|
|
||||||
#: transports/RDP/__init__.py:39
|
#: transports/RDP/__init__.py:39
|
||||||
msgid "Remote Desktop Protocol"
|
msgid "Remote Desktop Protocol"
|
||||||
msgstr "Protocole Bureau distant"
|
msgstr "Protocole Bureau distant"
|
||||||
@ -1563,14 +1643,6 @@ msgstr "Vous pouvez l'obtenir de"
|
|||||||
msgid "CoRD Website"
|
msgid "CoRD Website"
|
||||||
msgstr "Site Web du cordon"
|
msgstr "Site Web du cordon"
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:55
|
|
||||||
msgid "NX Transport (tunneled)"
|
|
||||||
msgstr "Transport NX (tunnel)"
|
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:57
|
|
||||||
msgid "NX Transport for tunneled connection"
|
|
||||||
msgstr "Transport NX pour connexion tunnelée"
|
|
||||||
|
|
||||||
#: web/errors.py:60
|
#: web/errors.py:60
|
||||||
msgid "Unknown error"
|
msgid "Unknown error"
|
||||||
msgstr "Erreur inconnue"
|
msgstr "Erreur inconnue"
|
||||||
@ -1633,6 +1705,10 @@ msgstr ""
|
|||||||
msgid "Authenticator do not provides information"
|
msgid "Authenticator do not provides information"
|
||||||
msgstr "Authentificateur ne fournit pas d'informations"
|
msgstr "Authentificateur ne fournit pas d'informations"
|
||||||
|
|
||||||
|
#: web/forms/LoginForm.py:50
|
||||||
|
msgid "Select authenticator"
|
||||||
|
msgstr "Sélectionnez authentificateur"
|
||||||
|
|
||||||
#: web/forms/LoginForm.py:54
|
#: web/forms/LoginForm.py:54
|
||||||
msgid "authenticator"
|
msgid "authenticator"
|
||||||
msgstr "authentificateur"
|
msgstr "authentificateur"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,70 +18,146 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
#: static/adm/js/api.js:23
|
#: static/adm/js/gui-elements.js:7
|
||||||
msgid "Success on \""
|
|
||||||
msgstr "Succès sur\""
|
|
||||||
|
|
||||||
#: static/adm/js/api.js:24
|
|
||||||
msgid "Received "
|
|
||||||
msgstr "Reçu "
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:17
|
|
||||||
msgid "Display _MENU_ records per page"
|
|
||||||
msgstr "Afficher _MENU_ enregistrements par page"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:18
|
|
||||||
msgid "Nothing found - sorry"
|
|
||||||
msgstr "Rien trouvé - Désolé"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:19
|
|
||||||
msgid "Showing record _START_ to _END_ of _TOTAL_"
|
|
||||||
msgstr "Affichage des enregistrement _START_ à _END_ de _TOTAL_"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:20
|
|
||||||
msgid "Showing 0 to 0 of 0 records"
|
|
||||||
msgstr "Affichage de 0 à 0 sur 0 documents"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:21
|
|
||||||
msgid "(filtered from _MAX_ total records)"
|
|
||||||
msgstr "(filtrée de total d'enregistrements _MAX_)"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:22
|
|
||||||
msgid "Please wait, processing"
|
|
||||||
msgstr "Veuillez patienter, traitement"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:23
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Rechercher"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:26
|
|
||||||
msgid "First"
|
|
||||||
msgstr "Première"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:27
|
|
||||||
msgid "Last"
|
|
||||||
msgstr "Dernière"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:28
|
|
||||||
msgid "Next"
|
|
||||||
msgstr "Prochaine"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:29
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr "Précédent"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:83
|
|
||||||
msgid "Connectivity"
|
|
||||||
msgstr "Connectivité"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:88
|
|
||||||
msgid "Deployed services"
|
|
||||||
msgstr "Services déployés"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:181
|
|
||||||
msgid "Service Providers"
|
msgid "Service Providers"
|
||||||
msgstr "Fournisseurs de services"
|
msgstr "Fournisseurs de services"
|
||||||
|
|
||||||
#: static/adm/js/gui.js:191
|
#: static/adm/js/gui-elements.js:81
|
||||||
msgid "Authenticators"
|
msgid "Connectivity"
|
||||||
msgstr "Authentificateurs"
|
msgstr "Connectivité"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:18
|
||||||
|
msgid "_MENU_ records per page"
|
||||||
|
msgstr "Documents _MENU_ par page"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:19
|
||||||
|
msgid "Empty"
|
||||||
|
msgstr "Vide"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:20
|
||||||
|
msgid "Records _START_ to _END_ of _TOTAL_"
|
||||||
|
msgstr "Dossiers _START_ à _END_ de _TOTAL_"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:21
|
||||||
|
msgid "No records"
|
||||||
|
msgstr "Aucun enregistrement"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:22
|
||||||
|
msgid "(filtered from _MAX_ total records)"
|
||||||
|
msgstr "(filtrée de total d'enregistrements _MAX_)"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:23
|
||||||
|
msgid "Please wait, processing"
|
||||||
|
msgstr "Veuillez patienter, traitement"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:24
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filtre"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:27
|
||||||
|
msgid "First"
|
||||||
|
msgstr "Première"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:28
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "Dernière"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:29
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Prochaine"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:30
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Précédent"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:80
|
||||||
|
msgid "Deployed services"
|
||||||
|
msgstr "Services déployés"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:349
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edit"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:358
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Supprimer"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:367
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr "Actualisation"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Sunday"
|
||||||
|
msgstr "Dimanche"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Monday"
|
||||||
|
msgstr "Lundi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Tuesday"
|
||||||
|
msgstr "Mardi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Wednesday"
|
||||||
|
msgstr "Mercredi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Thursday"
|
||||||
|
msgstr "Jeudi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Friday"
|
||||||
|
msgstr "Vendredi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Saturday"
|
||||||
|
msgstr "Samedi"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Janvier"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Février"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "March"
|
||||||
|
msgstr "Mars"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "April"
|
||||||
|
msgstr "Avril"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Mai"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Juin"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "July"
|
||||||
|
msgstr "Juillet"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "August"
|
||||||
|
msgstr "Août"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "September"
|
||||||
|
msgstr "Septembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "October"
|
||||||
|
msgstr "Octobre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "November"
|
||||||
|
msgstr "Novembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:35
|
||||||
|
msgid "December"
|
||||||
|
msgstr "Décembre"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:20+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,35 +18,86 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:72
|
#: REST/methods/authenticators.py:73
|
||||||
msgid "Current authenticators"
|
msgid "Current authenticators"
|
||||||
msgstr "Autenticatori correnti"
|
msgstr "Autenticatori correnti"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
|
#: REST/methods/authenticators.py:75 REST/methods/networks.py:68
|
||||||
|
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
|
||||||
|
#: REST/methods/transports.py:71 REST/methods/users.py:77
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
|
#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72
|
||||||
|
#: REST/methods/providers.py:70 REST/methods/transports.py:72
|
||||||
|
#: REST/methods/users.py:78
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Commenti"
|
msgstr "Commenti"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:76
|
#: REST/methods/authenticators.py:77
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Utenti"
|
msgstr "Utenti"
|
||||||
|
|
||||||
#: REST/methods/providers.py:69
|
#: REST/methods/networks.py:66
|
||||||
|
msgid "Current Networks"
|
||||||
|
msgstr "Reti attuali"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:69 templates/uds/index.html:79
|
||||||
|
#: templates/uds/html5/index.html:127
|
||||||
|
msgid "Networks"
|
||||||
|
msgstr "Reti"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
|
||||||
|
#: REST/methods/transports.py:73
|
||||||
|
msgid "Used by"
|
||||||
|
msgstr "Utilizzato da"
|
||||||
|
|
||||||
|
#: REST/methods/osmanagers.py:69
|
||||||
|
msgid "Current OS Managers"
|
||||||
|
msgstr "Attuale OS Manager"
|
||||||
|
|
||||||
|
#: REST/methods/providers.py:67
|
||||||
msgid "Current service providers"
|
msgid "Current service providers"
|
||||||
msgstr "Attuali fornitori di servizi"
|
msgstr "Attuali fornitori di servizi"
|
||||||
|
|
||||||
#: REST/methods/providers.py:73 templates/uds/index.html:51
|
#: REST/methods/providers.py:71 templates/uds/index.html:51
|
||||||
#: templates/uds/html5/index.html:68
|
#: templates/uds/html5/index.html:68
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Servizi"
|
msgstr "Servizi"
|
||||||
|
|
||||||
#: admin/views.py:53 admin/views.py:61 web/views.py:422
|
#: REST/methods/transports.py:69
|
||||||
|
msgid "Current Transports"
|
||||||
|
msgstr "Trasporti correnti"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:70
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Users of {0}"
|
||||||
|
msgstr "Utenti di {0}"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:72
|
||||||
|
msgid "Current users"
|
||||||
|
msgstr "Utenti correnti"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:76
|
||||||
|
msgid "User Id"
|
||||||
|
msgstr "Id utente"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:79
|
||||||
|
msgid "state"
|
||||||
|
msgstr "stato"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:80
|
||||||
|
msgid "Last access"
|
||||||
|
msgstr "Ultimo accesso"
|
||||||
|
|
||||||
|
#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422
|
||||||
msgid "Forbidden"
|
msgid "Forbidden"
|
||||||
msgstr "Vietato"
|
msgstr "Vietato"
|
||||||
|
|
||||||
|
#: admin/views.py:69
|
||||||
|
msgid "requested a template that do not exists"
|
||||||
|
msgstr "richiesto da un modello che non esiste"
|
||||||
|
|
||||||
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
||||||
msgid "IP Authenticator"
|
msgid "IP Authenticator"
|
||||||
msgstr "IP autenticatore"
|
msgstr "IP autenticatore"
|
||||||
@ -136,8 +187,9 @@ msgstr "Nome utente con privilegi di lettura sulla base selezionata"
|
|||||||
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
||||||
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
|
#: web/forms/LoginForm.py:70
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Password"
|
msgstr "Password"
|
||||||
|
|
||||||
@ -205,9 +257,9 @@ msgstr "Autenticatore di LDAP di espressioni regolari"
|
|||||||
|
|
||||||
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
||||||
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
||||||
#: transports/NX/NXTransport.py:61 transports/RDP/RDPTransport.py:59
|
#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66
|
||||||
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
||||||
#: web/forms/LoginForm.py:69
|
#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nome utente"
|
msgstr "Nome utente"
|
||||||
|
|
||||||
@ -1059,10 +1111,6 @@ msgstr "e riavviare il browser"
|
|||||||
msgid "Ip"
|
msgid "Ip"
|
||||||
msgstr "IP"
|
msgstr "IP"
|
||||||
|
|
||||||
#: templates/uds/index.html:79 templates/uds/html5/index.html:127
|
|
||||||
msgid "Networks"
|
|
||||||
msgstr "Reti"
|
|
||||||
|
|
||||||
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr "Trasporti"
|
msgstr "Trasporti"
|
||||||
@ -1119,35 +1167,44 @@ msgstr ""
|
|||||||
msgid "toggle navigation"
|
msgid "toggle navigation"
|
||||||
msgstr "navigazione Toggle"
|
msgstr "navigazione Toggle"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:17
|
#: templates/uds/admin/snippets/navbar.html:18
|
||||||
msgid "Service providers"
|
msgid "Service providers"
|
||||||
msgstr "Fornitori di servizi"
|
msgstr "Fornitori di servizi"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:18
|
#: templates/uds/admin/snippets/navbar.html:19
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
msgid "Authenticators"
|
msgid "Authenticators"
|
||||||
msgstr "Autenticatori"
|
msgstr "Autenticatori"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:20
|
#: templates/uds/admin/snippets/navbar.html:21
|
||||||
msgid "Connectivity"
|
msgid "Connectivity"
|
||||||
msgstr "Connettività"
|
msgstr "Connettività"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:21
|
#: templates/uds/admin/snippets/navbar.html:22
|
||||||
msgid "Deployed services"
|
msgid "Deployed services"
|
||||||
msgstr "Servizi distribuiti"
|
msgstr "Servizi distribuiti"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:25
|
#: templates/uds/admin/snippets/navbar.html:26
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Configurazione"
|
msgstr "Configurazione"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:57
|
#: templates/uds/admin/snippets/navbar.html:56
|
||||||
msgid "Exit dashboard"
|
msgid "Exit dashboard"
|
||||||
msgstr "Cruscotto di uscita"
|
msgstr "Cruscotto di uscita"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:58
|
#: templates/uds/admin/snippets/navbar.html:57
|
||||||
#: templates/uds/html5/snippets/navbar.html:47
|
#: templates/uds/html5/snippets/navbar.html:47
|
||||||
msgid "logout"
|
msgid "logout"
|
||||||
msgstr "logout"
|
msgstr "logout"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
|
msgid "administration of authenticators"
|
||||||
|
msgstr "amministrazione di autenticatori"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/dashboard.html:4
|
||||||
|
msgid "overview"
|
||||||
|
msgstr "Panoramica"
|
||||||
|
|
||||||
#: templates/uds/html5/detectJava.html:4
|
#: templates/uds/html5/detectJava.html:4
|
||||||
msgid "Login redirection to UDS"
|
msgid "Login redirection to UDS"
|
||||||
msgstr "Reindirizzamento login a UDS"
|
msgstr "Reindirizzamento login a UDS"
|
||||||
@ -1239,7 +1296,7 @@ msgstr "Circa"
|
|||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Cruscotto"
|
msgstr "Cruscotto"
|
||||||
|
|
||||||
#: templates/uds/html5/templates/base.html:51
|
#: templates/uds/html5/templates/base.html:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your browser is supported only partially. Please, upgrade it to a modern "
|
"Your browser is supported only partially. Please, upgrade it to a modern "
|
||||||
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
||||||
@ -1277,27 +1334,27 @@ msgstr ""
|
|||||||
"accessibile da parte degli utenti"
|
"accessibile da parte degli utenti"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "Empty creds"
|
msgid "Empty creds"
|
||||||
msgstr "Vuoto creds"
|
msgstr "Vuoto creds"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "If checked, the credentials used to connect will be emtpy"
|
msgid "If checked, the credentials used to connect will be emtpy"
|
||||||
msgstr "Se selezionata, le credenziali utilizzate per connettersi sarà emtpy"
|
msgstr "Se selezionata, le credenziali utilizzate per connettersi sarà emtpy"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
||||||
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59
|
||||||
#: transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
||||||
msgid "If not empty, this username will be always used as credential"
|
msgid "If not empty, this username will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se non vuota, questo nome utente verrà sempre utilizzato come credenziale"
|
"Se non vuota, questo nome utente verrà sempre utilizzato come credenziale"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
msgid "If not empty, this password will be always used as credential"
|
msgid "If not empty, this password will be always used as credential"
|
||||||
msgstr "Se non vuota, questa password verrà sempre utilizzata come credenziale"
|
msgstr "Se non vuota, questa password verrà sempre utilizzata come credenziale"
|
||||||
|
|
||||||
@ -1350,46 +1407,98 @@ msgstr "Trasporto NX (diretto)"
|
|||||||
msgid "NX Transport for direct connection"
|
msgid "NX Transport for direct connection"
|
||||||
msgstr "Trasporto di NX per connessione diretta"
|
msgstr "Trasporto di NX per connessione diretta"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listen port"
|
msgid "Listen port"
|
||||||
msgstr "Porta di ascolto"
|
msgstr "Porta di ascolto"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listening port of NX (ssh) at client machine"
|
msgid "Listening port of NX (ssh) at client machine"
|
||||||
msgstr "Porto di NX (ssh) in computer client in ascolto"
|
msgstr "Porto di NX (ssh) in computer client in ascolto"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Connessione"
|
msgstr "Connessione"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection speed for this transport (quality)"
|
msgid "Connection speed for this transport (quality)"
|
||||||
msgstr "Velocità di connessione per questo trasporto (qualità)"
|
msgstr "Velocità di connessione per questo trasporto (qualità)"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Session"
|
msgid "Session"
|
||||||
msgstr "Sessione"
|
msgstr "Sessione"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Desktop session"
|
msgid "Desktop session"
|
||||||
msgstr "Sessione desktop"
|
msgstr "Sessione desktop"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Disk Cache"
|
msgid "Disk Cache"
|
||||||
msgstr "Cache disco"
|
msgstr "Cache disco"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Cache size en Mb stored at disk"
|
msgid "Cache size en Mb stored at disk"
|
||||||
msgstr "Memorizzare nella cache en dimensione che MB conservati a disco"
|
msgstr "Memorizzare nella cache en dimensione che MB conservati a disco"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Memory Cache"
|
msgid "Memory Cache"
|
||||||
msgstr "Memoria Cache"
|
msgstr "Memoria Cache"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Cache size en Mb keept at memory"
|
msgid "Cache size en Mb keept at memory"
|
||||||
msgstr "Cache size it Mb keept a memoria"
|
msgstr "Cache size it Mb keept a memoria"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:55 transports/TSNX/TSNXTransport.py:55
|
||||||
|
msgid "NX Transport (tunneled)"
|
||||||
|
msgstr "Trasporto NX (con tunnel)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:57 transports/TSNX/TSNXTransport.py:57
|
||||||
|
msgid "NX Transport for tunneled connection"
|
||||||
|
msgstr "Trasporto di NX per connessione con tunnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid "Tunnel server"
|
||||||
|
msgstr "Server per il tunnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid ""
|
||||||
|
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
||||||
|
"port. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"IP o l'Hostname del server per il tunnel invia a dispositivo client (ip "
|
||||||
|
"\"pubblico\") e porto. (utilizzare il formato HOST: PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid "Tunnel host check"
|
||||||
|
msgstr "Controllo host tunnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid ""
|
||||||
|
"If not empty, this server will be used to check if service is running before "
|
||||||
|
"assigning it to user. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"Se non vuota, questo server verrà utilizzato per verificare se il servizio è "
|
||||||
|
"in esecuzione prima di assegnandolo all'utente. (utilizzare il formato HOST: "
|
||||||
|
"PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75
|
||||||
|
#: transports/TSNX/TSNXTransport.py:103
|
||||||
|
msgid "Must use HOST:PORT in Tunnel Server Field"
|
||||||
|
msgstr "Necessario utilizzare HOST: porta nel campo Server di Tunnel"
|
||||||
|
|
||||||
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
||||||
msgid "NX Protocol"
|
msgid "NX Protocol"
|
||||||
msgstr "Protocollo NX"
|
msgstr "Protocollo NX"
|
||||||
@ -1481,35 +1590,6 @@ msgstr "Trasporto di RDP (con tunnel)"
|
|||||||
msgid "RDP Transport for tunneled connection"
|
msgid "RDP Transport for tunneled connection"
|
||||||
msgstr "Trasporto di RDP per connessione con tunnel"
|
msgstr "Trasporto di RDP per connessione con tunnel"
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid "Tunnel server"
|
|
||||||
msgstr "Server per il tunnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid ""
|
|
||||||
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
|
||||||
"port. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"IP o l'Hostname del server per il tunnel invia a dispositivo client (ip "
|
|
||||||
"\"pubblico\") e porto. (utilizzare il formato HOST: PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid "Tunnel host check"
|
|
||||||
msgstr "Controllo host tunnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid ""
|
|
||||||
"If not empty, this server will be used to check if service is running before "
|
|
||||||
"assigning it to user. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"Se non vuota, questo server verrà utilizzato per verificare se il servizio è "
|
|
||||||
"in esecuzione prima di assegnandolo all'utente. (utilizzare il formato HOST: "
|
|
||||||
"PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:75 transports/TSNX/TSNXTransport.py:103
|
|
||||||
msgid "Must use HOST:PORT in Tunnel Server Field"
|
|
||||||
msgstr "Necessario utilizzare HOST: porta nel campo Server di Tunnel"
|
|
||||||
|
|
||||||
#: transports/RDP/__init__.py:39
|
#: transports/RDP/__init__.py:39
|
||||||
msgid "Remote Desktop Protocol"
|
msgid "Remote Desktop Protocol"
|
||||||
msgstr "Remote Desktop Protocol"
|
msgstr "Remote Desktop Protocol"
|
||||||
@ -1527,14 +1607,6 @@ msgstr "Si può ottenere da"
|
|||||||
msgid "CoRD Website"
|
msgid "CoRD Website"
|
||||||
msgstr "Sito Web di cavo"
|
msgstr "Sito Web di cavo"
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:55
|
|
||||||
msgid "NX Transport (tunneled)"
|
|
||||||
msgstr "Trasporto NX (con tunnel)"
|
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:57
|
|
||||||
msgid "NX Transport for tunneled connection"
|
|
||||||
msgstr "Trasporto di NX per connessione con tunnel"
|
|
||||||
|
|
||||||
#: web/errors.py:60
|
#: web/errors.py:60
|
||||||
msgid "Unknown error"
|
msgid "Unknown error"
|
||||||
msgstr "Errore sconosciuto"
|
msgstr "Errore sconosciuto"
|
||||||
@ -1598,6 +1670,10 @@ msgstr ""
|
|||||||
msgid "Authenticator do not provides information"
|
msgid "Authenticator do not provides information"
|
||||||
msgstr "Autenticatore do non fornisce informazioni"
|
msgstr "Autenticatore do non fornisce informazioni"
|
||||||
|
|
||||||
|
#: web/forms/LoginForm.py:50
|
||||||
|
msgid "Select authenticator"
|
||||||
|
msgstr "Selezionare autenticatore"
|
||||||
|
|
||||||
#: web/forms/LoginForm.py:54
|
#: web/forms/LoginForm.py:54
|
||||||
msgid "authenticator"
|
msgid "authenticator"
|
||||||
msgstr "autenticatore"
|
msgstr "autenticatore"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,70 +18,146 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: static/adm/js/api.js:23
|
#: static/adm/js/gui-elements.js:7
|
||||||
msgid "Success on \""
|
|
||||||
msgstr "Successo su\""
|
|
||||||
|
|
||||||
#: static/adm/js/api.js:24
|
|
||||||
msgid "Received "
|
|
||||||
msgstr "Ricevuto "
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:17
|
|
||||||
msgid "Display _MENU_ records per page"
|
|
||||||
msgstr "Visualizzare _MENU_ record per pagina"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:18
|
|
||||||
msgid "Nothing found - sorry"
|
|
||||||
msgstr "Trovato nulla - ci dispiace"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:19
|
|
||||||
msgid "Showing record _START_ to _END_ of _TOTAL_"
|
|
||||||
msgstr "Risultati record _START_ per _END_ di _TOTAL_"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:20
|
|
||||||
msgid "Showing 0 to 0 of 0 records"
|
|
||||||
msgstr "Mostrando 0-0 di 0 record"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:21
|
|
||||||
msgid "(filtered from _MAX_ total records)"
|
|
||||||
msgstr "(filtrato da record totale _MAX_)"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:22
|
|
||||||
msgid "Please wait, processing"
|
|
||||||
msgstr "Attendere prego, elaborazione"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:23
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Ricerca"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:26
|
|
||||||
msgid "First"
|
|
||||||
msgstr "Primo"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:27
|
|
||||||
msgid "Last"
|
|
||||||
msgstr "Ultima"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:28
|
|
||||||
msgid "Next"
|
|
||||||
msgstr "Prossimo"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:29
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr "Precedente"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:83
|
|
||||||
msgid "Connectivity"
|
|
||||||
msgstr "Connettività"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:88
|
|
||||||
msgid "Deployed services"
|
|
||||||
msgstr "Servizi distribuiti"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:181
|
|
||||||
msgid "Service Providers"
|
msgid "Service Providers"
|
||||||
msgstr "Fornitori di servizi"
|
msgstr "Fornitori di servizi"
|
||||||
|
|
||||||
#: static/adm/js/gui.js:191
|
#: static/adm/js/gui-elements.js:81
|
||||||
msgid "Authenticators"
|
msgid "Connectivity"
|
||||||
msgstr "Autenticatori"
|
msgstr "Connettività"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:18
|
||||||
|
msgid "_MENU_ records per page"
|
||||||
|
msgstr "Record _MENU_ per pagina"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:19
|
||||||
|
msgid "Empty"
|
||||||
|
msgstr "Vuoto"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:20
|
||||||
|
msgid "Records _START_ to _END_ of _TOTAL_"
|
||||||
|
msgstr "Registra _START_ a _END_ di _TOTAL_"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:21
|
||||||
|
msgid "No records"
|
||||||
|
msgstr "Nessun record"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:22
|
||||||
|
msgid "(filtered from _MAX_ total records)"
|
||||||
|
msgstr "(filtrato da record totale _MAX_)"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:23
|
||||||
|
msgid "Please wait, processing"
|
||||||
|
msgstr "Attendere prego, elaborazione"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:24
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filtro"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:27
|
||||||
|
msgid "First"
|
||||||
|
msgstr "Primo"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:28
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "Ultima"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:29
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Prossimo"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:30
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Precedente"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:80
|
||||||
|
msgid "Deployed services"
|
||||||
|
msgstr "Servizi distribuiti"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:349
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Modifica"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:358
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Eliminare"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:367
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr "Aggiornamento"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Sunday"
|
||||||
|
msgstr "Domenica"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Monday"
|
||||||
|
msgstr "Lunedì"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Tuesday"
|
||||||
|
msgstr "Martedì"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Wednesday"
|
||||||
|
msgstr "Mercoledì"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Thursday"
|
||||||
|
msgstr "Giovedì"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Friday"
|
||||||
|
msgstr "Venerdì"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Saturday"
|
||||||
|
msgstr "Sabato"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Gennaio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Febbraio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "March"
|
||||||
|
msgstr "Marzo"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "April"
|
||||||
|
msgstr "Aprile"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Maggio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Giugno"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "July"
|
||||||
|
msgstr "Luglio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "August"
|
||||||
|
msgstr "Agosto"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "September"
|
||||||
|
msgstr "Settembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "October"
|
||||||
|
msgstr "Ottobre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "November"
|
||||||
|
msgstr "Novembre"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:35
|
||||||
|
msgid "December"
|
||||||
|
msgstr "Dicembre"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:20+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,35 +18,86 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:72
|
#: REST/methods/authenticators.py:73
|
||||||
msgid "Current authenticators"
|
msgid "Current authenticators"
|
||||||
msgstr "Autenticadores atuais"
|
msgstr "Autenticadores atuais"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
|
#: REST/methods/authenticators.py:75 REST/methods/networks.py:68
|
||||||
|
#: REST/methods/osmanagers.py:71 REST/methods/providers.py:69
|
||||||
|
#: REST/methods/transports.py:71 REST/methods/users.py:77
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
|
#: REST/methods/authenticators.py:76 REST/methods/osmanagers.py:72
|
||||||
|
#: REST/methods/providers.py:70 REST/methods/transports.py:72
|
||||||
|
#: REST/methods/users.py:78
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Comentários"
|
msgstr "Comentários"
|
||||||
|
|
||||||
#: REST/methods/authenticators.py:76
|
#: REST/methods/authenticators.py:77
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Usuários"
|
msgstr "Usuários"
|
||||||
|
|
||||||
#: REST/methods/providers.py:69
|
#: REST/methods/networks.py:66
|
||||||
|
msgid "Current Networks"
|
||||||
|
msgstr "Redes atuais"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:69 templates/uds/index.html:79
|
||||||
|
#: templates/uds/html5/index.html:127
|
||||||
|
msgid "Networks"
|
||||||
|
msgstr "Redes"
|
||||||
|
|
||||||
|
#: REST/methods/networks.py:70 REST/methods/osmanagers.py:73
|
||||||
|
#: REST/methods/transports.py:73
|
||||||
|
msgid "Used by"
|
||||||
|
msgstr "Usado por"
|
||||||
|
|
||||||
|
#: REST/methods/osmanagers.py:69
|
||||||
|
msgid "Current OS Managers"
|
||||||
|
msgstr "Atual OS gerentes"
|
||||||
|
|
||||||
|
#: REST/methods/providers.py:67
|
||||||
msgid "Current service providers"
|
msgid "Current service providers"
|
||||||
msgstr "Provedores de serviço atual"
|
msgstr "Provedores de serviço atual"
|
||||||
|
|
||||||
#: REST/methods/providers.py:73 templates/uds/index.html:51
|
#: REST/methods/providers.py:71 templates/uds/index.html:51
|
||||||
#: templates/uds/html5/index.html:68
|
#: templates/uds/html5/index.html:68
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Serviços"
|
msgstr "Serviços"
|
||||||
|
|
||||||
#: admin/views.py:53 admin/views.py:61 web/views.py:422
|
#: REST/methods/transports.py:69
|
||||||
|
msgid "Current Transports"
|
||||||
|
msgstr "Atuais transportes"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:70
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Users of {0}"
|
||||||
|
msgstr "Usuários de {0}"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:72
|
||||||
|
msgid "Current users"
|
||||||
|
msgstr "Usuários atuais"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:76
|
||||||
|
msgid "User Id"
|
||||||
|
msgstr "Id de usuário"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:79
|
||||||
|
msgid "state"
|
||||||
|
msgstr "Estado"
|
||||||
|
|
||||||
|
#: REST/methods/users.py:80
|
||||||
|
msgid "Last access"
|
||||||
|
msgstr "Último acesso"
|
||||||
|
|
||||||
|
#: admin/views.py:55 admin/views.py:63 admin/views.py:76 web/views.py:422
|
||||||
msgid "Forbidden"
|
msgid "Forbidden"
|
||||||
msgstr "Proibido"
|
msgstr "Proibido"
|
||||||
|
|
||||||
|
#: admin/views.py:69
|
||||||
|
msgid "requested a template that do not exists"
|
||||||
|
msgstr "solicitado um modelo que não existe"
|
||||||
|
|
||||||
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
#: auths/IP/Authenticator.py:48 auths/IP/Authenticator.py:50
|
||||||
msgid "IP Authenticator"
|
msgid "IP Authenticator"
|
||||||
msgstr "Autenticador IP"
|
msgstr "Autenticador IP"
|
||||||
@ -136,8 +187,9 @@ msgstr "Nome de usuário com privilégios de leitura da base selecionada"
|
|||||||
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
#: osmanagers/WindowsOsManager/WinRandomPassOsManager.py:30
|
||||||
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
#: services/OVirt/OVirtProvider.py:94 services/Sample/SampleService.py:131
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67 web/forms/LoginForm.py:70
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
|
#: web/forms/LoginForm.py:70
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Senha"
|
msgstr "Senha"
|
||||||
|
|
||||||
@ -206,9 +258,9 @@ msgstr "Autenticador de LDAP de expressões regular"
|
|||||||
|
|
||||||
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
#: auths/RegexLdap/Authenticator.py:72 auths/SimpleLDAP/Authenticator.py:73
|
||||||
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
#: services/OVirt/OVirtProvider.py:93 transports/HTML5RDP/HTML5RDP.py:64
|
||||||
#: transports/NX/NXTransport.py:61 transports/RDP/RDPTransport.py:59
|
#: transports/NX/NXTransport.py:61 transports/NX/TSNXTransport.py:66
|
||||||
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
||||||
#: web/forms/LoginForm.py:69
|
#: transports/TSNX/TSNXTransport.py:66 web/forms/LoginForm.py:69
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nome de usuário"
|
msgstr "Nome de usuário"
|
||||||
|
|
||||||
@ -1061,10 +1113,6 @@ msgstr "e reinicie o navegador"
|
|||||||
msgid "Ip"
|
msgid "Ip"
|
||||||
msgstr "IP"
|
msgstr "IP"
|
||||||
|
|
||||||
#: templates/uds/index.html:79 templates/uds/html5/index.html:127
|
|
||||||
msgid "Networks"
|
|
||||||
msgstr "Redes"
|
|
||||||
|
|
||||||
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
#: templates/uds/index.html:80 templates/uds/html5/index.html:128
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr "Transportes"
|
msgstr "Transportes"
|
||||||
@ -1121,35 +1169,44 @@ msgstr ""
|
|||||||
msgid "toggle navigation"
|
msgid "toggle navigation"
|
||||||
msgstr "navegação toggle"
|
msgstr "navegação toggle"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:17
|
#: templates/uds/admin/snippets/navbar.html:18
|
||||||
msgid "Service providers"
|
msgid "Service providers"
|
||||||
msgstr "Prestadores de serviços"
|
msgstr "Prestadores de serviços"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:18
|
#: templates/uds/admin/snippets/navbar.html:19
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
msgid "Authenticators"
|
msgid "Authenticators"
|
||||||
msgstr "Autenticadores"
|
msgstr "Autenticadores"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:20
|
#: templates/uds/admin/snippets/navbar.html:21
|
||||||
msgid "Connectivity"
|
msgid "Connectivity"
|
||||||
msgstr "Conectividade"
|
msgstr "Conectividade"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:21
|
#: templates/uds/admin/snippets/navbar.html:22
|
||||||
msgid "Deployed services"
|
msgid "Deployed services"
|
||||||
msgstr "Serviços implantados"
|
msgstr "Serviços implantados"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:25
|
#: templates/uds/admin/snippets/navbar.html:26
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Configuração"
|
msgstr "Configuração"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:57
|
#: templates/uds/admin/snippets/navbar.html:56
|
||||||
msgid "Exit dashboard"
|
msgid "Exit dashboard"
|
||||||
msgstr "Painel de saída"
|
msgstr "Painel de saída"
|
||||||
|
|
||||||
#: templates/uds/admin/snippets/navbar.html:58
|
#: templates/uds/admin/snippets/navbar.html:57
|
||||||
#: templates/uds/html5/snippets/navbar.html:47
|
#: templates/uds/html5/snippets/navbar.html:47
|
||||||
msgid "logout"
|
msgid "logout"
|
||||||
msgstr "logout"
|
msgstr "logout"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/authenticators.html:4
|
||||||
|
msgid "administration of authenticators"
|
||||||
|
msgstr "Administração de autenticadores"
|
||||||
|
|
||||||
|
#: templates/uds/admin/tmpl/dashboard.html:4
|
||||||
|
msgid "overview"
|
||||||
|
msgstr "Visão geral"
|
||||||
|
|
||||||
#: templates/uds/html5/detectJava.html:4
|
#: templates/uds/html5/detectJava.html:4
|
||||||
msgid "Login redirection to UDS"
|
msgid "Login redirection to UDS"
|
||||||
msgstr "Redirecionamento de login para UDS"
|
msgstr "Redirecionamento de login para UDS"
|
||||||
@ -1241,7 +1298,7 @@ msgstr "Sobre"
|
|||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Painel de controle"
|
msgstr "Painel de controle"
|
||||||
|
|
||||||
#: templates/uds/html5/templates/base.html:51
|
#: templates/uds/html5/templates/base.html:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your browser is supported only partially. Please, upgrade it to a modern "
|
"Your browser is supported only partially. Please, upgrade it to a modern "
|
||||||
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
"html5 browser like Firefox, Chrome, Opera, ... (IE must be 10 or better)"
|
||||||
@ -1279,27 +1336,27 @@ msgstr ""
|
|||||||
"accesible de usuários"
|
"accesible de usuários"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "Empty creds"
|
msgid "Empty creds"
|
||||||
msgstr "Creds vazio"
|
msgstr "Creds vazio"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
#: transports/HTML5RDP/HTML5RDP.py:63 transports/NX/NXTransport.py:60
|
||||||
#: transports/RDP/RDPTransport.py:58 transports/RDP/TSRDPTransport.py:62
|
#: transports/NX/TSNXTransport.py:65 transports/RDP/RDPTransport.py:58
|
||||||
#: transports/TSNX/TSNXTransport.py:65
|
#: transports/RDP/TSRDPTransport.py:62 transports/TSNX/TSNXTransport.py:65
|
||||||
msgid "If checked, the credentials used to connect will be emtpy"
|
msgid "If checked, the credentials used to connect will be emtpy"
|
||||||
msgstr "Se marcada, as credenciais usadas para se conectar será vazio"
|
msgstr "Se marcada, as credenciais usadas para se conectar será vazio"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
#: transports/HTML5RDP/HTML5RDP.py:64 transports/NX/NXTransport.py:61
|
||||||
#: transports/RDP/RDPTransport.py:59 transports/RDP/TSRDPTransport.py:63
|
#: transports/NX/TSNXTransport.py:66 transports/RDP/RDPTransport.py:59
|
||||||
#: transports/TSNX/TSNXTransport.py:66
|
#: transports/RDP/TSRDPTransport.py:63 transports/TSNX/TSNXTransport.py:66
|
||||||
msgid "If not empty, this username will be always used as credential"
|
msgid "If not empty, this username will be always used as credential"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se não for vazio, este nome de utilizador será sempre usado como credencial"
|
"Se não for vazio, este nome de utilizador será sempre usado como credencial"
|
||||||
|
|
||||||
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
#: transports/HTML5RDP/HTML5RDP.py:65 transports/NX/NXTransport.py:62
|
||||||
#: transports/RDP/RDPTransport.py:60 transports/RDP/TSRDPTransport.py:64
|
#: transports/NX/TSNXTransport.py:67 transports/RDP/RDPTransport.py:60
|
||||||
#: transports/TSNX/TSNXTransport.py:67
|
#: transports/RDP/TSRDPTransport.py:64 transports/TSNX/TSNXTransport.py:67
|
||||||
msgid "If not empty, this password will be always used as credential"
|
msgid "If not empty, this password will be always used as credential"
|
||||||
msgstr "Se não for vazio, essa senha será sempre usada como credencial"
|
msgstr "Se não for vazio, essa senha será sempre usada como credencial"
|
||||||
|
|
||||||
@ -1352,46 +1409,97 @@ msgstr "Transporte NX (direto)"
|
|||||||
msgid "NX Transport for direct connection"
|
msgid "NX Transport for direct connection"
|
||||||
msgstr "Transporte de NX para conexão direta"
|
msgstr "Transporte de NX para conexão direta"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listen port"
|
msgid "Listen port"
|
||||||
msgstr "Porta"
|
msgstr "Porta"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:63 transports/TSNX/TSNXTransport.py:68
|
#: transports/NX/NXTransport.py:63 transports/NX/TSNXTransport.py:68
|
||||||
|
#: transports/TSNX/TSNXTransport.py:68
|
||||||
msgid "Listening port of NX (ssh) at client machine"
|
msgid "Listening port of NX (ssh) at client machine"
|
||||||
msgstr "Ouvindo a porta do NX (ssh) na máquina cliente"
|
msgstr "Ouvindo a porta do NX (ssh) na máquina cliente"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Conexão"
|
msgstr "Conexão"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:64 transports/TSNX/TSNXTransport.py:69
|
#: transports/NX/NXTransport.py:64 transports/NX/TSNXTransport.py:69
|
||||||
|
#: transports/TSNX/TSNXTransport.py:69
|
||||||
msgid "Connection speed for this transport (quality)"
|
msgid "Connection speed for this transport (quality)"
|
||||||
msgstr "Velocidade de conexão para esse transporte (qualidade)"
|
msgstr "Velocidade de conexão para esse transporte (qualidade)"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Session"
|
msgid "Session"
|
||||||
msgstr "Sessão"
|
msgstr "Sessão"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:71 transports/TSNX/TSNXTransport.py:76
|
#: transports/NX/NXTransport.py:71 transports/NX/TSNXTransport.py:76
|
||||||
|
#: transports/TSNX/TSNXTransport.py:76
|
||||||
msgid "Desktop session"
|
msgid "Desktop session"
|
||||||
msgstr "Sessão de desktop"
|
msgstr "Sessão de desktop"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Disk Cache"
|
msgid "Disk Cache"
|
||||||
msgstr "Cache de disco"
|
msgstr "Cache de disco"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:76 transports/TSNX/TSNXTransport.py:81
|
#: transports/NX/NXTransport.py:76 transports/NX/TSNXTransport.py:81
|
||||||
|
#: transports/TSNX/TSNXTransport.py:81
|
||||||
msgid "Cache size en Mb stored at disk"
|
msgid "Cache size en Mb stored at disk"
|
||||||
msgstr "Pt-br tamanho que MB armazenado no disco em cache"
|
msgstr "Pt-br tamanho que MB armazenado no disco em cache"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Memory Cache"
|
msgid "Memory Cache"
|
||||||
msgstr "Memória Cache"
|
msgstr "Memória Cache"
|
||||||
|
|
||||||
#: transports/NX/NXTransport.py:84 transports/TSNX/TSNXTransport.py:89
|
#: transports/NX/NXTransport.py:84 transports/NX/TSNXTransport.py:89
|
||||||
|
#: transports/TSNX/TSNXTransport.py:89
|
||||||
msgid "Cache size en Mb keept at memory"
|
msgid "Cache size en Mb keept at memory"
|
||||||
msgstr "Cache tamanho en Mb keept na memória"
|
msgstr "Cache tamanho en Mb keept na memória"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:55 transports/TSNX/TSNXTransport.py:55
|
||||||
|
msgid "NX Transport (tunneled)"
|
||||||
|
msgstr "Transporte NX (um túnel)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:57 transports/TSNX/TSNXTransport.py:57
|
||||||
|
msgid "NX Transport for tunneled connection"
|
||||||
|
msgstr "Transporte de NX para ligação em túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid "Tunnel server"
|
||||||
|
msgstr "Servidor de túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:62 transports/RDP/TSRDPTransport.py:59
|
||||||
|
#: transports/TSNX/TSNXTransport.py:62
|
||||||
|
msgid ""
|
||||||
|
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
||||||
|
"port. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"IP ou nome do host do servidor de túnel enviar para dispositivo cliente (ip "
|
||||||
|
"\"público\") e Port. (usar formato HOST: PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid "Tunnel host check"
|
||||||
|
msgstr "Seleção de anfitrião do túnel"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:63 transports/RDP/TSRDPTransport.py:60
|
||||||
|
#: transports/TSNX/TSNXTransport.py:63
|
||||||
|
msgid ""
|
||||||
|
"If not empty, this server will be used to check if service is running before "
|
||||||
|
"assigning it to user. (use HOST:PORT format)"
|
||||||
|
msgstr ""
|
||||||
|
"Se não for vazio, este servidor será usado para verificar se o serviço está "
|
||||||
|
"sendo executado antes atribuí-la ao usuário. (usar formato HOST: PORT)"
|
||||||
|
|
||||||
|
#: transports/NX/TSNXTransport.py:103 transports/RDP/TSRDPTransport.py:75
|
||||||
|
#: transports/TSNX/TSNXTransport.py:103
|
||||||
|
msgid "Must use HOST:PORT in Tunnel Server Field"
|
||||||
|
msgstr "Deve usar HOST: PORT no campo servidor de túnel"
|
||||||
|
|
||||||
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
#: transports/NX/__init__.py:45 transports/TSNX/__init__.py:44
|
||||||
msgid "NX Protocol"
|
msgid "NX Protocol"
|
||||||
msgstr "Protocolo NX"
|
msgstr "Protocolo NX"
|
||||||
@ -1481,34 +1589,6 @@ msgstr "Transporte de RDP (um túnel)"
|
|||||||
msgid "RDP Transport for tunneled connection"
|
msgid "RDP Transport for tunneled connection"
|
||||||
msgstr "Transporte de RDP para ligação em túnel"
|
msgstr "Transporte de RDP para ligação em túnel"
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid "Tunnel server"
|
|
||||||
msgstr "Servidor de túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:59 transports/TSNX/TSNXTransport.py:62
|
|
||||||
msgid ""
|
|
||||||
"IP or Hostname of tunnel server send to client device (\"public\" ip) and "
|
|
||||||
"port. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"IP ou nome do host do servidor de túnel enviar para dispositivo cliente (ip "
|
|
||||||
"\"público\") e Port. (usar formato HOST: PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid "Tunnel host check"
|
|
||||||
msgstr "Seleção de anfitrião do túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:60 transports/TSNX/TSNXTransport.py:63
|
|
||||||
msgid ""
|
|
||||||
"If not empty, this server will be used to check if service is running before "
|
|
||||||
"assigning it to user. (use HOST:PORT format)"
|
|
||||||
msgstr ""
|
|
||||||
"Se não for vazio, este servidor será usado para verificar se o serviço está "
|
|
||||||
"sendo executado antes atribuí-la ao usuário. (usar formato HOST: PORT)"
|
|
||||||
|
|
||||||
#: transports/RDP/TSRDPTransport.py:75 transports/TSNX/TSNXTransport.py:103
|
|
||||||
msgid "Must use HOST:PORT in Tunnel Server Field"
|
|
||||||
msgstr "Deve usar HOST: PORT no campo servidor de túnel"
|
|
||||||
|
|
||||||
#: transports/RDP/__init__.py:39
|
#: transports/RDP/__init__.py:39
|
||||||
msgid "Remote Desktop Protocol"
|
msgid "Remote Desktop Protocol"
|
||||||
msgstr "Protocolo de área de trabalho remoto"
|
msgstr "Protocolo de área de trabalho remoto"
|
||||||
@ -1525,14 +1605,6 @@ msgstr "Você pode obtê-lo de"
|
|||||||
msgid "CoRD Website"
|
msgid "CoRD Website"
|
||||||
msgstr "Site medula"
|
msgstr "Site medula"
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:55
|
|
||||||
msgid "NX Transport (tunneled)"
|
|
||||||
msgstr "Transporte NX (um túnel)"
|
|
||||||
|
|
||||||
#: transports/TSNX/TSNXTransport.py:57
|
|
||||||
msgid "NX Transport for tunneled connection"
|
|
||||||
msgstr "Transporte de NX para ligação em túnel"
|
|
||||||
|
|
||||||
#: web/errors.py:60
|
#: web/errors.py:60
|
||||||
msgid "Unknown error"
|
msgid "Unknown error"
|
||||||
msgstr "Erro desconhecido"
|
msgstr "Erro desconhecido"
|
||||||
@ -1595,6 +1667,10 @@ msgstr ""
|
|||||||
msgid "Authenticator do not provides information"
|
msgid "Authenticator do not provides information"
|
||||||
msgstr "Autenticador que não fornece informações"
|
msgstr "Autenticador que não fornece informações"
|
||||||
|
|
||||||
|
#: web/forms/LoginForm.py:50
|
||||||
|
msgid "Select authenticator"
|
||||||
|
msgstr "Selecione o autenticador"
|
||||||
|
|
||||||
#: web/forms/LoginForm.py:54
|
#: web/forms/LoginForm.py:54
|
||||||
msgid "authenticator"
|
msgid "authenticator"
|
||||||
msgstr "autenticador"
|
msgstr "autenticador"
|
||||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-11-14 11:59+0100\n"
|
"POT-Creation-Date: 2013-11-17 04:21+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -18,70 +18,146 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: static/adm/js/api.js:23
|
#: static/adm/js/gui-elements.js:7
|
||||||
msgid "Success on \""
|
|
||||||
msgstr "Sucesso na\""
|
|
||||||
|
|
||||||
#: static/adm/js/api.js:24
|
|
||||||
msgid "Received "
|
|
||||||
msgstr "Recebido "
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:17
|
|
||||||
msgid "Display _MENU_ records per page"
|
|
||||||
msgstr "Exibir _MENU_ de registros por página"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:18
|
|
||||||
msgid "Nothing found - sorry"
|
|
||||||
msgstr "Nada foi encontrado - Desculpe"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:19
|
|
||||||
msgid "Showing record _START_ to _END_ of _TOTAL_"
|
|
||||||
msgstr "Mostrando registro _START_ para _END_ de _TOTAL_"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:20
|
|
||||||
msgid "Showing 0 to 0 of 0 records"
|
|
||||||
msgstr "Mostrando 0 a 0 de 0 registros"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:21
|
|
||||||
msgid "(filtered from _MAX_ total records)"
|
|
||||||
msgstr "(filtrada de registros total de _MAX_)"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:22
|
|
||||||
msgid "Please wait, processing"
|
|
||||||
msgstr "Aguarde, processamento"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:23
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Pesquisa"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:26
|
|
||||||
msgid "First"
|
|
||||||
msgstr "Primeiro"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:27
|
|
||||||
msgid "Last"
|
|
||||||
msgstr "Última"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:28
|
|
||||||
msgid "Next"
|
|
||||||
msgstr "Próxima"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:29
|
|
||||||
msgid "Previous"
|
|
||||||
msgstr "Anterior"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:83
|
|
||||||
msgid "Connectivity"
|
|
||||||
msgstr "Conectividade"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:88
|
|
||||||
msgid "Deployed services"
|
|
||||||
msgstr "Serviços implantados"
|
|
||||||
|
|
||||||
#: static/adm/js/gui.js:181
|
|
||||||
msgid "Service Providers"
|
msgid "Service Providers"
|
||||||
msgstr "Prestadores de serviços"
|
msgstr "Prestadores de serviços"
|
||||||
|
|
||||||
#: static/adm/js/gui.js:191
|
#: static/adm/js/gui-elements.js:81
|
||||||
msgid "Authenticators"
|
msgid "Connectivity"
|
||||||
msgstr "Autenticadores"
|
msgstr "Conectividade"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:18
|
||||||
|
msgid "_MENU_ records per page"
|
||||||
|
msgstr "Registros _MENU_ por página"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:19
|
||||||
|
msgid "Empty"
|
||||||
|
msgstr "Vazio"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:20
|
||||||
|
msgid "Records _START_ to _END_ of _TOTAL_"
|
||||||
|
msgstr "Registros _START_ para _END_ de _TOTAL_"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:21
|
||||||
|
msgid "No records"
|
||||||
|
msgstr "Não há registros"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:22
|
||||||
|
msgid "(filtered from _MAX_ total records)"
|
||||||
|
msgstr "(filtrada de registros total de _MAX_)"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:23
|
||||||
|
msgid "Please wait, processing"
|
||||||
|
msgstr "Aguarde, processamento"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:24
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filtro"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:27
|
||||||
|
msgid "First"
|
||||||
|
msgstr "Primeiro"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:28
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "Última"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:29
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Próxima"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:30
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Anterior"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:80
|
||||||
|
msgid "Deployed services"
|
||||||
|
msgstr "Serviços implantados"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:349
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:358
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Excluir"
|
||||||
|
|
||||||
|
#: static/adm/js/gui.js:367
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr "Atualização"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Sunday"
|
||||||
|
msgstr "Domingo"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Monday"
|
||||||
|
msgstr "Segunda-feira"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:30
|
||||||
|
msgid "Tuesday"
|
||||||
|
msgstr "Terça-feira"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Wednesday"
|
||||||
|
msgstr "Quarta-feira"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Thursday"
|
||||||
|
msgstr "Quinta-feira"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Friday"
|
||||||
|
msgstr "Sexta-feira"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:31
|
||||||
|
msgid "Saturday"
|
||||||
|
msgstr "Sábado"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "January"
|
||||||
|
msgstr "Janeiro de"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "February"
|
||||||
|
msgstr "Fevereiro"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:32
|
||||||
|
msgid "March"
|
||||||
|
msgstr "Março de"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "April"
|
||||||
|
msgstr "Abril"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Maio"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "June"
|
||||||
|
msgstr "Junho de"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:33
|
||||||
|
msgid "July"
|
||||||
|
msgstr "Julho"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "August"
|
||||||
|
msgstr "Agosto"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "September"
|
||||||
|
msgstr "Setembro"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "October"
|
||||||
|
msgstr "Outubro"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:34
|
||||||
|
msgid "November"
|
||||||
|
msgstr "Novembro"
|
||||||
|
|
||||||
|
#: static/adm/js/strftime.js:35
|
||||||
|
msgid "December"
|
||||||
|
msgstr "Dezembro de"
|
||||||
|
@ -1,140 +1,138 @@
|
|||||||
(function(api, $, undefined) {
|
(function(api, $, undefined) {
|
||||||
|
|
||||||
// "public" methods
|
// "public" methods
|
||||||
api.doLog = function(data) {
|
api.doLog = function(data) {
|
||||||
if( api.debug ) {
|
if (api.debug) {
|
||||||
try {
|
try {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// nothing can be logged
|
// nothing can be logged
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
api.getJson = function (path, success_fnc) {
|
api.getJson = function(path, success_fnc) {
|
||||||
url = api.url_for(path)
|
url = api.url_for(path);
|
||||||
api.doLog('Ajax GET Json for "' + url + '"');
|
api.doLog('Ajax GET Json for "' + url + '"');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url : url,
|
||||||
type: "GET",
|
type : "GET",
|
||||||
dataType: "json",
|
dataType : "json",
|
||||||
success: function(data) {
|
success : function(data) {
|
||||||
api.doLog('Success on "' + url + '".');
|
api.doLog('Success on "' + url + '".');
|
||||||
api.doLog('Received ' + JSON.stringify(data));
|
api.doLog('Received ' + JSON.stringify(data));
|
||||||
if( success_fnc != undefined ){
|
if (success_fnc !== undefined) {
|
||||||
api.doLog('Executing success method')
|
api.doLog('Executing success method');
|
||||||
success_fnc(data);
|
success_fnc(data);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeSend: function (request) {
|
beforeSend : function(request) {
|
||||||
request.setRequestHeader(api.auth_header, api.token);
|
request.setRequestHeader(api.auth_header, api.token);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Public attributes
|
// Public attributes
|
||||||
api.debug = false;
|
api.debug = false;
|
||||||
}(window.api = window.api || {}, jQuery));
|
}(window.api = window.api || {}, jQuery));
|
||||||
|
|
||||||
|
|
||||||
// Great part of UDS REST api provides same methods.
|
// Great part of UDS REST api provides same methods.
|
||||||
// We will take advantage of this and save a lot of nonsense, prone to failure code :-)
|
// We will take advantage of this and save a lot of nonsense, prone to failure
|
||||||
|
// code :-)
|
||||||
|
|
||||||
function BasicModelRest(path) {
|
function BasicModelRest(path) {
|
||||||
this.path = path || "";
|
this.path = path || "";
|
||||||
this.cached_types = undefined;
|
this.cached_types = undefined;
|
||||||
this.cached_tableInfo = undefined;
|
this.cached_tableInfo = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
BasicModelRest.prototype = {
|
BasicModelRest.prototype = {
|
||||||
get: function(options, alternate_url) {
|
get : function(options, alternate_url) {
|
||||||
if( options == undefined ){
|
if (options === undefined) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
var path = alternate_url || this.path;
|
var path = alternate_url || this.path;
|
||||||
if( options.id != undefined )
|
if (options.id !== undefined)
|
||||||
path += '/' + options.id;
|
path += '/' + options.id;
|
||||||
api.getJson(path, options.success);
|
api.getJson(path, options.success);
|
||||||
},
|
},
|
||||||
types: function(success_fnc, alternate_url) {
|
types : function(success_fnc, alternate_url) {
|
||||||
// Cache types locally, will not change unless new broker version
|
// Cache types locally, will not change unless new broker version
|
||||||
if( this.cached_types ) {
|
if (this.cached_types) {
|
||||||
if( success_fnc ) {
|
if (success_fnc) {
|
||||||
success_fnc(this.cached_types);
|
success_fnc(this.cached_types);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
var $this = this;
|
||||||
var $this = this;
|
var path = this.path + '/types';
|
||||||
var path = this.path + '/types';
|
if (alternate_url !== undefined)
|
||||||
if( alternate_url != undefined )
|
path = alternate_url;
|
||||||
path = alternate_url;
|
api.getJson(path, function(data) {
|
||||||
api.getJson( path, function(data) {
|
$this.cached_types = data;
|
||||||
$this.cached_types = data;
|
if (success_fnc) {
|
||||||
if( success_fnc ) {
|
success_fnc($this.cached_types);
|
||||||
success_fnc($this.cached_types);
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
}
|
},
|
||||||
},
|
|
||||||
|
tableInfo : function(success_fnc, alternate_url) {
|
||||||
tableInfo: function(success_fnc, alternate_url) {
|
// Cache types locally, will not change unless new broker version
|
||||||
// Cache types locally, will not change unless new broker version
|
if (this.cached_tableInfo) {
|
||||||
if( this.cached_tableInfo ) {
|
if (success_fnc) {
|
||||||
if( success_fnc ) {
|
success_fnc(this.cached_tableInfo);
|
||||||
success_fnc(this.cached_tableInfo);
|
}
|
||||||
}
|
return;
|
||||||
return;
|
}
|
||||||
}
|
var $this = this;
|
||||||
var $this = this;
|
var path = this.path + '/tableinfo';
|
||||||
var path = this.path + '/tableinfo';
|
if (alternate_url !== undefined)
|
||||||
if( alternate_url != undefined )
|
path = alternate_url;
|
||||||
path = alternate_url;
|
|
||||||
|
api.getJson(path, function(data) {
|
||||||
api.getJson( path, function(data) {
|
$this.cached_tableInfo = data;
|
||||||
$this.cached_tableInfo = data;
|
if (success_fnc) {
|
||||||
if( success_fnc ) {
|
success_fnc($this.cached_tableInfo);
|
||||||
success_fnc($this.cached_tableInfo);
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
},
|
||||||
},
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// For REST of type /auth/[id]/users, /services/[id]/users, ...
|
// For REST of type /auth/[id]/users, /services/[id]/users, ...
|
||||||
function DetailModelRestApi(parentApi, path) {
|
function DetailModelRestApi(parentApi, path) {
|
||||||
this.parentPath = parentApi.path;
|
this.parentPath = parentApi.path;
|
||||||
this.path = path;
|
this.path = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
DetailModelRestApi.prototype = {
|
DetailModelRestApi.prototype = {
|
||||||
// Generates a basic model with fixed methods for "detail" models
|
// Generates a basic model with fixed methods for "detail" models
|
||||||
detail: function(parentId) {
|
detail : function(parentId) {
|
||||||
var $this = this;
|
var $this = this;
|
||||||
var rest = new BasicModelRest(this.parentPath + '/' + parentId + '/' + this.path);
|
var rest = new BasicModelRest(this.parentPath + '/' + parentId + '/' + this.path);
|
||||||
|
|
||||||
// Overwrite types, detail do not have types
|
|
||||||
rest.types = function() {
|
|
||||||
return []; // No types at all
|
|
||||||
}
|
|
||||||
|
|
||||||
// And overwrite tableInfo
|
|
||||||
var parentTableInfo = rest.tableInfo;
|
|
||||||
rest.tableInfo = function(success_fnc, alternate_url) {
|
|
||||||
if( alternate_url == undefined )
|
|
||||||
alternate_url = $this.parentPath + '/tableinfo/' + parentId + '/' + $this.path;
|
|
||||||
parentTableInfo( success_fnc, alternate_url )
|
|
||||||
}
|
|
||||||
return rest;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
// Overwrite types, detail do not have types
|
||||||
|
rest.types = function() {
|
||||||
|
return []; // No types at all
|
||||||
|
};
|
||||||
|
|
||||||
|
// And overwrite tableInfo
|
||||||
|
var parentTableInfo = rest.tableInfo;
|
||||||
|
rest.tableInfo = function(success_fnc, alternate_url) {
|
||||||
|
if (alternate_url === undefined)
|
||||||
|
alternate_url = $this.parentPath + '/tableinfo/' + parentId + '/' + $this.path;
|
||||||
|
parentTableInfo(success_fnc, alternate_url);
|
||||||
|
};
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Populate api
|
// Populate api
|
||||||
|
|
||||||
api.providers = new BasicModelRest('providers');
|
api.providers = new BasicModelRest('providers');
|
||||||
//api.services = new BasicModelRest('services');
|
// api.services = new BasicModelRest('services');
|
||||||
api.authenticators = new BasicModelRest('authenticators');
|
api.authenticators = new BasicModelRest('authenticators');
|
||||||
api.authenticators.users = new DetailModelRestApi(api.authenticators, 'users');
|
api.authenticators.users = new DetailModelRestApi(api.authenticators, 'users');
|
||||||
|
|
||||||
@ -142,64 +140,69 @@ api.osmanagers = new BasicModelRest('osmanagers');
|
|||||||
api.transports = new BasicModelRest('transports');
|
api.transports = new BasicModelRest('transports');
|
||||||
api.networks = new BasicModelRest('networks');
|
api.networks = new BasicModelRest('networks');
|
||||||
|
|
||||||
|
// Locale related
|
||||||
|
api.locale = new BasicModelRest('locale');
|
||||||
|
api.locale.tableInfo = api.locale.types = undefined;
|
||||||
|
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
// Templates related
|
// Templates related
|
||||||
// This is not part of REST api provided by UDS, but it's part of the api needed for the admin app
|
// This is not part of REST api provided by UDS, but it's part of the api needed
|
||||||
|
// for the admin app
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
(function(templates, $){
|
(function(templates, $) {
|
||||||
templates.cache = {}; // Will cache templates locally. If name contains '?', data will not be cached and always re-requested
|
templates.cache = {}; // Will cache templates locally. If name contains
|
||||||
templates.get = function(name, success_fnc) {
|
// '?', data will not be cached and always
|
||||||
if( !name.contains('?') ) {
|
// re-requested
|
||||||
if( templates.cache[name] != undefined ) {
|
templates.get = function(name, success_fnc) {
|
||||||
if( success_fnc != undefined ) {
|
api.doLog('Getting tempkate ' + name);
|
||||||
success_fnc(templates.cache[name]);
|
if (name.indexOf('?') != -1) {
|
||||||
}
|
if (templates.cache[name] !== undefined) {
|
||||||
return;
|
if (success_fnc !== undefined) {
|
||||||
}
|
success_fnc(templates.cache[name]);
|
||||||
}
|
}
|
||||||
$.ajax({
|
return;
|
||||||
url: '/adm/tmpl/' + name,
|
}
|
||||||
type: "GET",
|
}
|
||||||
dataType: "text",
|
$.ajax({
|
||||||
success: function(data) {
|
url : '/adm/tmpl/' + name,
|
||||||
templates.cache[name] = data;
|
type : "GET",
|
||||||
api.doLog('Success getting template "' + name + '".');
|
dataType : "text",
|
||||||
api.doLog('Received: ' + data);
|
success : function(data) {
|
||||||
if( success_fnc != undefined ){
|
templates.cache[name] = data;
|
||||||
api.doLog('Executing success method')
|
api.doLog('Success getting template "' + name + '".');
|
||||||
success_fnc(data);
|
api.doLog('Received: ' + data);
|
||||||
}
|
if (success_fnc !== undefined) {
|
||||||
},
|
api.doLog('Executing success method');
|
||||||
});
|
success_fnc(data);
|
||||||
};
|
}
|
||||||
|
},
|
||||||
// Simple JavaScript Templating
|
fail: function( jqXHR, textStatus, errorThrown ) {
|
||||||
// Based on John Resig - http://ejohn.org/ - MIT Licensed
|
api.doLog(jqXHR);
|
||||||
templates.eval = function tmpl(str, data){
|
api.doLog(textStatus);
|
||||||
// Figure out if we're getting a template, or if we need to
|
apid.doLog(errorThrown);
|
||||||
// load the template - and be sure to cache the result.
|
},
|
||||||
var fn =
|
});
|
||||||
// Generate a reusable function that will serve as a template
|
};
|
||||||
// generator (and which will be cached).
|
|
||||||
new Function("obj",
|
// Simple JavaScript Templating
|
||||||
"var p=[],print=function(){p.push.apply(p,arguments);};" +
|
// Based on John Resig - http://ejohn.org/ - MIT Licensed
|
||||||
|
templates.evaluate = function tmpl(str, data) {
|
||||||
// Introduce the data as local variables using with(){}
|
// Figure out if we're getting a template, or if we need to
|
||||||
"with(obj){p.push('" +
|
// load the template - and be sure to cache the result.
|
||||||
|
var fn =
|
||||||
// Convert the template into pure JavaScript
|
// Generate a reusable function that will serve as a template
|
||||||
str
|
// generator (and which will be cached).
|
||||||
.replace(/[\r\t\n]/g, " ")
|
new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};" +
|
||||||
.split("<%").join("\t")
|
|
||||||
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
|
// Introduce the data as local variables using with(){}
|
||||||
.replace(/\t=(.*?)%>/g, "',$1,'")
|
"with(obj){p.push('" +
|
||||||
.split("\t").join("');")
|
|
||||||
.split("%>").join("p.push('")
|
// Convert the template into pure JavaScript
|
||||||
.split("\r").join("\\'")
|
str.replace(/[\r\t\n]/g, " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(
|
||||||
+ "');}return p.join('');");
|
/\t=(.*?)%>/g, "',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join(
|
||||||
|
"\\'") + "');}return p.join('');");
|
||||||
// Provide some basic currying to the user
|
|
||||||
return data ? fn( data ) : fn;
|
// Provide some basic currying to the user
|
||||||
};
|
return data ? fn(data) : fn;
|
||||||
|
};
|
||||||
}(api.templates = api.templates || {}, jQuery));
|
}(api.templates = api.templates || {}, jQuery));
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
// Compose gui elements
|
// Compose gui elements
|
||||||
|
|
||||||
// Service providers
|
// Service providers
|
||||||
gui.providers = new GuiElement(api.providers, 'provi');
|
gui.providers = new GuiElement(api.providers, 'provi');
|
||||||
gui.providers.link = function(event) {
|
gui.providers.link = function(event) {
|
||||||
gui.clearWorkspace();
|
gui.clearWorkspace();
|
||||||
gui.appendToWorkspace(gui.breadcrumbs(gettext('Service Providers')));
|
gui.appendToWorkspace(gui.breadcrumbs(gettext('Service Providers')));
|
||||||
|
|
||||||
var tableId = gui.providers.table({
|
var tableId = gui.providers.table({
|
||||||
rowSelect: 'multi',
|
rowSelect : 'multi',
|
||||||
rowSelectFnc: function(nodes){
|
rowSelectFnc : function(nodes) {
|
||||||
gui.doLog(nodes);
|
gui.doLog(nodes);
|
||||||
gui.doLog(this);
|
gui.doLog(this);
|
||||||
gui.doLog(this.fnGetSelectedData());
|
gui.doLog(this.fnGetSelectedData());
|
||||||
},
|
},
|
||||||
buttons: ['edit', 'refresh', 'delete'],
|
buttons : [ 'edit', 'refresh', 'delete' ],
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
// --------------..
|
// --------------..
|
||||||
@ -25,63 +25,71 @@ gui.providers.link = function(event) {
|
|||||||
gui.authenticators = new GuiElement(api.authenticators, 'auth');
|
gui.authenticators = new GuiElement(api.authenticators, 'auth');
|
||||||
|
|
||||||
gui.authenticators.link = function(event) {
|
gui.authenticators.link = function(event) {
|
||||||
api.templates.get('authenticators', function(tmpl){
|
gui.doLog('enter auths');
|
||||||
gui.clearWorkspace();
|
api.templates.get('authenticators', function(tmpl) {
|
||||||
gui.appendToWorkspace(api.templates.eval(tmpl, { auths: 'auths-placeholder', users: 'users-placeholder' }));
|
gui.clearWorkspace();
|
||||||
gui.setLinksEvents();
|
gui.appendToWorkspace(api.templates.evaluate(tmpl, {
|
||||||
|
auths : 'auths-placeholder',
|
||||||
gui.authenticators.table({
|
users : 'users-placeholder'
|
||||||
container: 'auths-placeholder',
|
}));
|
||||||
rowSelect: 'single',
|
gui.setLinksEvents();
|
||||||
buttons: ['edit', 'refresh', 'delete'],
|
|
||||||
rowSelectFnc: function(nodes){
|
gui.authenticators.table({
|
||||||
var id = this.fnGetSelectedData()[0].id;
|
container : 'auths-placeholder',
|
||||||
var user = new GuiElement(api.authenticators.users.detail(id), 'users');
|
rowSelect : 'single',
|
||||||
user.table({
|
buttons : [ 'edit', 'refresh', 'delete' ],
|
||||||
container: 'users-placeholder',
|
onRowSelect : function(nodes) {
|
||||||
rowSelect: 'multi',
|
var id = this.fnGetSelectedData()[0].id;
|
||||||
buttons: ['edit', 'refresh', 'delete'],
|
var user = new GuiElement(api.authenticators.users.detail(id), 'users');
|
||||||
scroll: true,
|
user.table({
|
||||||
});
|
container : 'users-placeholder',
|
||||||
return false;
|
rowSelect : 'multi',
|
||||||
},
|
buttons : [ 'edit', 'refresh', 'delete' ],
|
||||||
});
|
scroll : true,
|
||||||
});
|
});
|
||||||
|
return false;
|
||||||
return false;
|
},
|
||||||
|
onRefresh : function() {
|
||||||
|
$('#users-placeholder').empty(); // Remove detail on parent refresh
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
gui.osmanagers = new GuiElement(api.osmanagers, 'osm');
|
gui.osmanagers = new GuiElement(api.osmanagers, 'osm');
|
||||||
gui.osmanagers.link = function(event) {
|
gui.osmanagers.link = function(event) {
|
||||||
gui.clearWorkspace();
|
gui.clearWorkspace();
|
||||||
gui.appendToWorkspace(gui.breadcrumbs('Os Managers'));
|
gui.appendToWorkspace(gui.breadcrumbs('Os Managers'));
|
||||||
|
|
||||||
gui.osmanagers.table({
|
gui.osmanagers.table({
|
||||||
rowSelect: 'single',
|
rowSelect : 'single',
|
||||||
buttons: ['edit', 'refresh', 'delete'],
|
buttons : [ 'edit', 'refresh', 'delete' ],
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
gui.connectivity = {
|
gui.connectivity = {
|
||||||
transports: new GuiElement(api.transports, 'trans'),
|
transports : new GuiElement(api.transports, 'trans'),
|
||||||
networks: new GuiElement(api.networks, 'nets'),
|
networks : new GuiElement(api.networks, 'nets'),
|
||||||
};
|
};
|
||||||
|
|
||||||
gui.connectivity.link = function(event) {
|
gui.connectivity.link = function(event) {
|
||||||
gui.clearWorkspace();
|
gui.clearWorkspace();
|
||||||
gui.appendToWorkspace(gui.breadcrumbs(gettext('Connectivity')));
|
gui.appendToWorkspace(gui.breadcrumbs(gettext('Connectivity')));
|
||||||
gui.appendToWorkspace('<div class="row"><div class="col-lg-6" id="ttbl"></div><div class="col-lg-6" id="ntbl"></div></div>');
|
gui
|
||||||
|
.appendToWorkspace('<div class="row"><div class="col-lg-6" id="ttbl"></div><div class="col-lg-6" id="ntbl"></div></div>');
|
||||||
gui.connectivity.transports.table({
|
|
||||||
rowSelect: 'multi',
|
gui.connectivity.transports.table({
|
||||||
container: 'ttbl',
|
rowSelect : 'multi',
|
||||||
buttons: ['edit', 'refresh', 'delete', 'pdf'],
|
container : 'ttbl',
|
||||||
});
|
buttons : [ 'edit', 'refresh', 'delete', 'pdf' ],
|
||||||
gui.connectivity.networks.table({
|
});
|
||||||
rowSelect: 'single',
|
gui.connectivity.networks.table({
|
||||||
container: 'ntbl',
|
rowSelect : 'multi',
|
||||||
buttons: ['edit', 'refresh', 'delete'],
|
container : 'ntbl',
|
||||||
});
|
buttons : [ 'edit', 'refresh', 'delete' ],
|
||||||
}
|
});
|
||||||
|
};
|
||||||
|
@ -1,342 +1,430 @@
|
|||||||
|
/* jshint strict: true */
|
||||||
(function(gui, $, undefined) {
|
(function(gui, $, undefined) {
|
||||||
|
"use strict";
|
||||||
// "public" methods
|
// "public" methods
|
||||||
gui.doLog = function(data) {
|
gui.doLog = function(data) {
|
||||||
if( gui.debug ) {
|
if (gui.debug) {
|
||||||
try {
|
try {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// nothing can be logged
|
// nothing can be logged
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Several convenience "constants"
|
|
||||||
gui.dataTablesLanguage = {
|
|
||||||
"sLengthMenu": gettext("_MENU_ records per page"),
|
|
||||||
"sZeroRecords": gettext("Empty"),
|
|
||||||
"sInfo": gettext("Records _START_ to _END_ of _TOTAL_"),
|
|
||||||
"sInfoEmpty": gettext("No records"),
|
|
||||||
"sInfoFiltered": gettext("(filtered from _MAX_ total records)"),
|
|
||||||
"sProcessing": gettext("Please wait, processing"),
|
|
||||||
"sSearch": gettext("Filter"),
|
|
||||||
"sInfoThousands": django.formats.THOUSAND_SEPARATOR,
|
|
||||||
"oPaginate": {
|
|
||||||
"sFirst": gettext("First"),
|
|
||||||
"sLast": gettext("Last"),
|
|
||||||
"sNext": gettext("Next"),
|
|
||||||
"sPrevious": gettext("Previous"),
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
gui.table = function(title, table_id, options) {
|
}
|
||||||
if( options == undefined )
|
};
|
||||||
options = { 'size': 12, 'icon': 'table'};
|
|
||||||
if( options.size == undefined )
|
|
||||||
options.size = 12;
|
|
||||||
if( options.icon == undefined )
|
|
||||||
options.icon = 'table';
|
|
||||||
|
|
||||||
return '<div class="panel panel-primary"><div class="panel-heading">'+
|
|
||||||
'<h3 class="panel-title"><span class="fa fa-'+ options.icon + '"></span> ' + title + '</h3></div>'+
|
|
||||||
'<div class="panel-body"><table class="table table-striped table-bordered table-hover" id="' + table_id + '" border="0" cellpadding="0" cellspacing="0" width="100%"></table></div></div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
gui.breadcrumbs = function(path) {
|
|
||||||
var items = path.split('/');
|
|
||||||
var active = items.pop();
|
|
||||||
var list = '';
|
|
||||||
$.each(items, function(index, value){
|
|
||||||
list += '<li><a href="#">' + value + '</a></li>';
|
|
||||||
});
|
|
||||||
list += '<li class="active">' + active + '</li>';
|
|
||||||
|
|
||||||
return '<div class="row"><div class="col-lg-12"><ol class="breadcrumb">'+ list + "</ol></div></div>";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
gui.clearWorkspace = function() {
|
|
||||||
$('#page-wrapper').empty();
|
|
||||||
};
|
|
||||||
|
|
||||||
gui.appendToWorkspace = function(data) {
|
// Several convenience "constants"
|
||||||
$(data).appendTo('#page-wrapper');
|
gui.dataTablesLanguage = {
|
||||||
};
|
"sLengthMenu" : gettext("_MENU_ records per page"),
|
||||||
|
"sZeroRecords" : gettext("Empty"),
|
||||||
|
"sInfo" : gettext("Records _START_ to _END_ of _TOTAL_"),
|
||||||
|
"sInfoEmpty" : gettext("No records"),
|
||||||
|
"sInfoFiltered" : gettext("(filtered from _MAX_ total records)"),
|
||||||
|
"sProcessing" : gettext("Please wait, processing"),
|
||||||
|
"sSearch" : gettext("Filter"),
|
||||||
|
"sInfoThousands" : django.formats.THOUSAND_SEPARATOR,
|
||||||
|
"oPaginate" : {
|
||||||
|
"sFirst" : gettext("First"),
|
||||||
|
"sLast" : gettext("Last"),
|
||||||
|
"sNext" : gettext("Next"),
|
||||||
|
"sPrevious" : gettext("Previous"),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
gui.table = function(title, table_id, options) {
|
||||||
// Links methods
|
if (options === undefined)
|
||||||
gui.dashboard = function() {
|
options = {
|
||||||
gui.clearWorkspace();
|
'size' : 12,
|
||||||
gui.appendToWorkspace(gui.breadcrumbs('Dasboard'));
|
'icon' : 'table'
|
||||||
gui.doLog(this);
|
};
|
||||||
};
|
if (options.size === undefined)
|
||||||
|
options.size = 12;
|
||||||
gui.deployed_services = function() {
|
if (options.icon === undefined)
|
||||||
gui.clearWorkspace();
|
options.icon = 'table';
|
||||||
gui.appendToWorkspace(gui.breadcrumbs(gettext('Deployed services')));
|
|
||||||
}
|
return '<div class="panel panel-primary"><div class="panel-heading">' +
|
||||||
|
'<h3 class="panel-title"><span class="fa fa-' + options.icon + '"></span> ' + title + '</h3></div>' +
|
||||||
gui.setLinksEvents = function() {
|
'<div class="panel-body"><table class="table table-striped table-bordered table-hover" id="' +
|
||||||
var sidebarLinks = [
|
table_id + '" border="0" cellpadding="0" cellspacing="0" width="100%"></table></div></div>';
|
||||||
{ id: 'lnk-dashboard', exec: gui.dashboard },
|
};
|
||||||
{ id: 'lnk-service_providers', exec: gui.providers.link },
|
|
||||||
{ id: 'lnk-authenticators', exec: gui.authenticators.link },
|
gui.breadcrumbs = function(path) {
|
||||||
{ id: 'lnk-osmanagers', exec: gui.osmanagers.link },
|
var items = path.split('/');
|
||||||
{ id: 'lnk-connectivity', exec: gui.connectivity.link },
|
var active = items.pop();
|
||||||
{ id: 'lnk-deployed_services', exec: gui.deployed_services },
|
var list = '';
|
||||||
];
|
$.each(items, function(index, value) {
|
||||||
$.each(sidebarLinks, function(index, value){
|
list += '<li><a href="#">' + value + '</a></li>';
|
||||||
gui.doLog('Adding ' + value.id)
|
});
|
||||||
$('.'+value.id).unbind('click').click(function(event) {
|
list += '<li class="active">' + active + '</li>';
|
||||||
if($('.navbar-toggle').css('display') !='none') {
|
|
||||||
$(".navbar-toggle").trigger( "click" );
|
return '<div class="row"><div class="col-lg-12"><ol class="breadcrumb">' + list + "</ol></div></div>";
|
||||||
|
};
|
||||||
|
|
||||||
|
gui.clearWorkspace = function() {
|
||||||
|
$('#page-wrapper').empty();
|
||||||
|
};
|
||||||
|
|
||||||
|
gui.appendToWorkspace = function(data) {
|
||||||
|
$(data).appendTo('#page-wrapper');
|
||||||
|
};
|
||||||
|
|
||||||
|
// Links methods
|
||||||
|
gui.dashboard = function() {
|
||||||
|
gui.clearWorkspace();
|
||||||
|
gui.appendToWorkspace(gui.breadcrumbs('Dasboard'));
|
||||||
|
gui.doLog(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
gui.deployed_services = function() {
|
||||||
|
gui.clearWorkspace();
|
||||||
|
gui.appendToWorkspace(gui.breadcrumbs(gettext('Deployed services')));
|
||||||
|
};
|
||||||
|
|
||||||
|
gui.setLinksEvents = function() {
|
||||||
|
var sidebarLinks = [ {
|
||||||
|
id : 'lnk-dashboard',
|
||||||
|
exec : gui.dashboard
|
||||||
|
}, {
|
||||||
|
id : 'lnk-service_providers',
|
||||||
|
exec : gui.providers.link
|
||||||
|
}, {
|
||||||
|
id : 'lnk-authenticators',
|
||||||
|
exec : gui.authenticators.link
|
||||||
|
}, {
|
||||||
|
id : 'lnk-osmanagers',
|
||||||
|
exec : gui.osmanagers.link
|
||||||
|
}, {
|
||||||
|
id : 'lnk-connectivity',
|
||||||
|
exec : gui.connectivity.link
|
||||||
|
}, {
|
||||||
|
id : 'lnk-deployed_services',
|
||||||
|
exec : gui.deployed_services
|
||||||
|
}, ];
|
||||||
|
$.each(sidebarLinks, function(index, value) {
|
||||||
|
gui.doLog('Adding ' + value.id);
|
||||||
|
$('.' + value.id).unbind('click').click(function(event) {
|
||||||
|
if ($('.navbar-toggle').css('display') != 'none') {
|
||||||
|
$(".navbar-toggle").trigger("click");
|
||||||
}
|
}
|
||||||
$('html, body').scrollTop(0);
|
$('html, body').scrollTop(0);
|
||||||
value.exec(event);
|
value.exec(event);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
|
gui.init = function() {
|
||||||
gui.init = function() {
|
gui.setLinksEvents();
|
||||||
gui.setLinksEvents();
|
};
|
||||||
};
|
|
||||||
|
// Public attributes
|
||||||
// Public attributes
|
gui.debug = true;
|
||||||
gui.debug = true;
|
|
||||||
}(window.gui = window.gui || {}, jQuery));
|
}(window.gui = window.gui || {}, jQuery));
|
||||||
|
|
||||||
function GuiElement(restItem, name) {
|
function GuiElement(restItem, name) {
|
||||||
this.rest = restItem;
|
"use strict";
|
||||||
this.name = name;
|
this.rest = restItem;
|
||||||
this.types = {}
|
this.name = name;
|
||||||
this.init();
|
this.types = {};
|
||||||
|
this.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
// all gui elements has, at least, name && type
|
// all gui elements has, at least, name && type
|
||||||
// Types must include, at least: type, icon
|
// Types must include, at least: type, icon
|
||||||
GuiElement.prototype = {
|
GuiElement.prototype = {
|
||||||
init: function() {
|
init : function() {
|
||||||
gui.doLog('Initializing ' + this.name);
|
"use strict";
|
||||||
var $this = this;
|
gui.doLog('Initializing ' + this.name);
|
||||||
this.rest.types(function(data){
|
var $this = this;
|
||||||
var styles = '';
|
this.rest.types(function(data) {
|
||||||
$.each(data, function(index, value){
|
var styles = '';
|
||||||
var className = $this.name + '-' + value.type;
|
$.each(data, function(index, value) {
|
||||||
$this.types[value.type] = { css: className, name: value.name || '', description: value.description || '' };
|
var className = $this.name + '-' + value.type;
|
||||||
gui.doLog('Creating style for ' + className )
|
$this.types[value.type] = {
|
||||||
var style = '.' + className +
|
css : className,
|
||||||
' { display:inline-block; background: url(data:image/png;base64,' + value.icon + '); ' +
|
name : value.name || '',
|
||||||
'width: 16px; height: 16px; vertical-align: middle; } ';
|
description : value.description || ''
|
||||||
styles += style;
|
};
|
||||||
});
|
gui.doLog('Creating style for ' + className);
|
||||||
if(styles != '') {
|
var style = '.' + className + ' { display:inline-block; background: url(data:image/png;base64,' +
|
||||||
styles = '<style media="screen">' + styles + '</style>'
|
value.icon + '); ' + 'width: 16px; height: 16px; vertical-align: middle; } ';
|
||||||
$(styles).appendTo('head');
|
styles += style;
|
||||||
}
|
});
|
||||||
});
|
if (styles !== '') {
|
||||||
},
|
styles = '<style media="screen">' + styles + '</style>';
|
||||||
table: function(options) {
|
$(styles).appendTo('head');
|
||||||
// Options (all are optionals)
|
}
|
||||||
// rowSelect: 'single' or 'multi'
|
});
|
||||||
// container: ID of the element that will hold this table (will be emptied)
|
},
|
||||||
// rowSelectFnc: function to invoke on row selection. receives 1 array - node : TR elements that were selected
|
table : function(options) {
|
||||||
// rowDeselectFnc: function to invoke on row deselection. receives 1 array - node : TR elements that were selected
|
"use strict";
|
||||||
gui.doLog('Composing table for ' + this.name);
|
// Options (all are optionals)
|
||||||
var tableId = this.name + '-table';
|
// rowSelect: 'single' or 'multi'
|
||||||
var $this = this;
|
// container: ID of the element that will hold this table (will be
|
||||||
this.rest.tableInfo(function(data){
|
// emptied)
|
||||||
var title = data.title;
|
// rowSelectFnc: function to invoke on row selection. receives 1 array -
|
||||||
var columns = [];
|
// node : TR elements that were selected
|
||||||
$.each(data.fields,function(index, value) {
|
// rowDeselectFnc: function to invoke on row deselection. receives 1
|
||||||
for( var v in value ){
|
// array - node : TR elements that were selected
|
||||||
var options = value[v];
|
gui.doLog('Composing table for ' + this.name);
|
||||||
var column = { mData: v };
|
var tableId = this.name + '-table';
|
||||||
column.sTitle = options.title;
|
var $this = this;
|
||||||
if( options.type )
|
|
||||||
column.sType = options.type;
|
// Empty cells transform
|
||||||
if( options.width )
|
var renderEmptyCell = function(data) {
|
||||||
column.sWidth = options.width;
|
if( data === '' )
|
||||||
if( options.visible != undefined )
|
return '-';
|
||||||
column.bVisible = options.visible;
|
return data;
|
||||||
if( options.sortable != undefined )
|
};
|
||||||
column.bSortable = options.sortable;
|
|
||||||
if( options.searchable != undefined )
|
// Datetime renderer (with specified format)
|
||||||
column.bSearchable = options.searchable;
|
var renderDate = function(format) {
|
||||||
|
return function(data, type, full) {
|
||||||
|
return strftime(format, new Date(data*1000));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Icon renderer, based on type (created on init methods in styles)
|
||||||
|
var renderTypeIcon = function(data, type, value){
|
||||||
|
if( type == 'display' ) {
|
||||||
|
var css = $this.types[value.type].css;
|
||||||
|
return '<span class="' + css + '"></span> ' + renderEmptyCell(data);
|
||||||
|
} else {
|
||||||
|
return renderEmptyCell(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Custom icon renderer, in fact span with defined class
|
||||||
|
var renderIcon = function(icon) {
|
||||||
|
return function(data, type, full) {
|
||||||
|
if( type == 'display' ) {
|
||||||
|
return '<span class="' + icon + '"></span> ' + renderEmptyCell(data);
|
||||||
|
} else {
|
||||||
|
return renderEmptyCell(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
// Text transformation, dictionary based
|
||||||
|
var renderTextTransform = function(dict) {
|
||||||
|
return function(data, type, full) {
|
||||||
|
return dict[data] || renderEmptyCell('');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
this.rest.tableInfo(function(data) {
|
||||||
|
var title = data.title;
|
||||||
|
var columns = [];
|
||||||
|
$.each(data.fields, function(index, value) {
|
||||||
|
for ( var v in value) {
|
||||||
|
var options = value[v];
|
||||||
|
var column = {
|
||||||
|
mData : v,
|
||||||
|
};
|
||||||
|
column.sTitle = options.title;
|
||||||
|
column.mRender = renderEmptyCell;
|
||||||
|
if (options.type !== undefined) {
|
||||||
|
switch(options.type) {
|
||||||
|
case 'date':
|
||||||
|
column.sType = 'date';
|
||||||
|
column.mRender = renderDate(djangoFormat(get_format('SHORT_DATE_FORMAT')));
|
||||||
|
break;
|
||||||
|
case 'datetime':
|
||||||
|
column.sType = 'date';
|
||||||
|
column.mRender = renderDate(djangoFormat(get_format('SHORT_DATETIME_FORMAT')));
|
||||||
|
break;
|
||||||
|
case 'time':
|
||||||
|
column.mRender = renderDate(djangoFormat(get_format('TIME_FORMAT')));
|
||||||
|
break;
|
||||||
|
case 'iconType':
|
||||||
|
//columnt.sType = 'html'; // html is default, so this is not needed
|
||||||
|
column.mRender = renderTypeIcon;
|
||||||
|
break;
|
||||||
|
case 'icon':
|
||||||
|
if( options.icon !== undefined ) {
|
||||||
|
column.mRender = renderIcon(options.icon);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'dict':
|
||||||
|
if( options.dict !== undefined ) {
|
||||||
|
column.mRender = renderTextTransform(options.dict);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
column.sType = options.type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options.width)
|
||||||
|
column.sWidth = options.width;
|
||||||
|
if (options.visible !== undefined)
|
||||||
|
column.bVisible = options.visible;
|
||||||
|
if (options.sortable !== undefined)
|
||||||
|
column.bSortable = options.sortable;
|
||||||
|
if (options.searchable !== undefined)
|
||||||
|
column.bSearchable = options.searchable;
|
||||||
|
columns.push(column);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Generate styles for responsibe table, just the name of fields
|
||||||
|
var respStyles = [];
|
||||||
|
var counter = 0;
|
||||||
|
$.each(columns, function(col, value) {
|
||||||
|
if( value.bVisible === false )
|
||||||
|
return;
|
||||||
|
counter += 1;
|
||||||
|
respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):before { content: "' +
|
||||||
|
(value.sTitle || '') + '";}\n');
|
||||||
|
respStyles.push('#' + tableId + ' td:nth-of-type(' + counter + '):empty { background-color: red ;}\n');
|
||||||
|
});
|
||||||
|
// If styles already exists, remove them before adding new ones
|
||||||
|
$('style-' + tableId).remove();
|
||||||
|
$('<style id="style-' + tableId + '" media="screen">@media (max-width: 979px) { ' + respStyles.join('') + '};</style>').appendTo('head')
|
||||||
|
|
||||||
|
$this.rest.get({
|
||||||
|
success : function(data) {
|
||||||
|
var table = gui.table(title, tableId);
|
||||||
|
if (options.container === undefined) {
|
||||||
|
gui.appendToWorkspace('<div class="row"><div class="col-lg-12">' + table + '</div></div>');
|
||||||
|
} else {
|
||||||
|
$('#' + options.container).empty();
|
||||||
|
$('#' + options.container).append(table);
|
||||||
|
}
|
||||||
|
|
||||||
|
var btns = [];
|
||||||
|
|
||||||
|
if (options.buttons) {
|
||||||
|
|
||||||
|
// methods for buttons click
|
||||||
|
var editFnc = function() {
|
||||||
|
gui.doLog('Edit');
|
||||||
|
gui.doLog(this);
|
||||||
|
};
|
||||||
|
var deleteFnc = function() {
|
||||||
|
gui.doLog('Delete');
|
||||||
|
gui.doLog(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
// What execute on refresh button push
|
||||||
|
var onRefresh = options.onRefresh || function(){};
|
||||||
|
|
||||||
|
var refreshFnc = function(btn) {
|
||||||
|
// Refreshes table content
|
||||||
|
var tbl = $('#' + tableId).dataTable();
|
||||||
|
var width = $(btn).width();
|
||||||
|
var saved = $(btn).html();
|
||||||
|
$(btn).addClass('disabled').html('<span class="fa fa-spinner fa-spin"></span>')
|
||||||
|
.width(width);
|
||||||
|
onRefresh();
|
||||||
|
$this.rest.get({
|
||||||
|
success : function(data) {
|
||||||
|
tbl.fnClearTable();
|
||||||
|
tbl.fnAddData(data);
|
||||||
|
$(btn).removeClass('disabled').html(saved);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// methods for buttons on row select
|
||||||
|
var editSelected = function(btn, obj, node) {
|
||||||
|
var sel = this.fnGetSelectedData();
|
||||||
|
if (sel.length == 1) {
|
||||||
|
$(btn).removeClass('disabled').addClass('btn-info');
|
||||||
|
} else {
|
||||||
|
$(btn).removeClass('btn-info').addClass('disabled');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var deleteSelected = function(btn, obj, node) {
|
||||||
|
var sel = this.fnGetSelectedData();
|
||||||
|
if (sel.length > 0) {
|
||||||
|
$(btn).removeClass('disabled').addClass('btn-warning');
|
||||||
|
} else {
|
||||||
|
$(btn).removeClass('btn-warning').addClass('disabled');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.each(options.buttons, function(index, value) {
|
||||||
|
var btn;
|
||||||
|
switch (value) {
|
||||||
|
case 'edit':
|
||||||
|
btn = {
|
||||||
|
"sExtends" : "text",
|
||||||
|
"sButtonText" : gettext('Edit'),
|
||||||
|
"fnSelect" : editSelected,
|
||||||
|
"fnClick" : editFnc,
|
||||||
|
"sButtonClass" : "disabled"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
btn = {
|
||||||
|
"sExtends" : "text",
|
||||||
|
"sButtonText" : gettext('Delete'),
|
||||||
|
"fnSelect" : deleteSelected,
|
||||||
|
"fnClick" : deleteFnc,
|
||||||
|
"sButtonClass" : "disabled"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'refresh':
|
||||||
|
btn = {
|
||||||
|
"sExtends" : "text",
|
||||||
|
"sButtonText" : gettext('Refresh'),
|
||||||
|
"fnClick" : refreshFnc,
|
||||||
|
"sButtonClass" : "btn-info"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'csb':
|
||||||
|
btn = {
|
||||||
|
"sExtends" : "csv",
|
||||||
|
"sTitle" : title,
|
||||||
|
"sFileName" : title + '.csv',
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'pdf':
|
||||||
|
btn = {
|
||||||
|
"sExtends" : "pdf",
|
||||||
|
"sTitle" : title,
|
||||||
|
"sPdfMessage" : "Summary Info",
|
||||||
|
"sFileName" : title + '.pdf',
|
||||||
|
"sPdfOrientation" : "portrait"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (btn !== undefined)
|
||||||
|
btns.push(btn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initializes oTableTools
|
||||||
|
var oTableTools = {
|
||||||
|
"aButtons" : btns
|
||||||
|
};
|
||||||
|
if (options.rowSelect) {
|
||||||
|
oTableTools.sRowSelect = options.rowSelect;
|
||||||
|
}
|
||||||
|
if (options.onRowSelect) {
|
||||||
|
oTableTools.fnRowSelected = options.onRowSelect;
|
||||||
|
}
|
||||||
|
if (options.onRowDeselect) {
|
||||||
|
oTableTools.fnRowDeselected = options.onRowDeselect;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#' + tableId).dataTable({
|
||||||
|
"aaData" : data,
|
||||||
|
"aoColumns" : columns,
|
||||||
|
"oLanguage" : gui.dataTablesLanguage,
|
||||||
|
"oTableTools" : oTableTools,
|
||||||
|
// First is upper row,
|
||||||
|
// second row is lower
|
||||||
|
// (pagination) row
|
||||||
|
"sDom" : "<'row'<'col-xs-6'T><'col-xs-6'f>r>t<'row'<'col-xs-5'i><'col-xs-7'p>>",
|
||||||
|
|
||||||
|
});
|
||||||
|
$('#' + tableId + '_filter input').addClass('form-control');
|
||||||
|
var tableTop = $('#' + tableId).offset().top;
|
||||||
|
if (options.scroll)
|
||||||
|
$('html, body').scrollTop(tableTop);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return '#' + tableId;
|
||||||
|
}
|
||||||
|
|
||||||
// Fix name columm so we can add a class icon
|
|
||||||
if( v == 'name' ) {
|
|
||||||
column.sType ='html'
|
|
||||||
}
|
|
||||||
|
|
||||||
columns.push(column);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
gui.doLog(columns);
|
|
||||||
|
|
||||||
var processResponse = function(data) {
|
|
||||||
// If it has a "type" column
|
|
||||||
try {
|
|
||||||
if( data[0].type != undefined ) {
|
|
||||||
$.each(data, function(index, value){
|
|
||||||
var type = $this.types[value.type];
|
|
||||||
data[index].name = '<span class="' + type.css + '"> </span> ' + value.name
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$this.rest.get({
|
|
||||||
success: function(data) {
|
|
||||||
processResponse(data);
|
|
||||||
var table = gui.table(title, tableId);
|
|
||||||
if( options.container == undefined ) {
|
|
||||||
gui.appendToWorkspace('<div class="row"><div class="col-lg-12">' + table + '</div></div>');
|
|
||||||
} else {
|
|
||||||
$('#'+options.container).empty();
|
|
||||||
$('#'+options.container).append(table);
|
|
||||||
}
|
|
||||||
|
|
||||||
var btns = [
|
|
||||||
];
|
|
||||||
|
|
||||||
if( options.buttons ) {
|
|
||||||
|
|
||||||
// methods for buttons click
|
|
||||||
var editFnc = function() {
|
|
||||||
gui.doLog('Edit');
|
|
||||||
gui.doLog(this);
|
|
||||||
};
|
|
||||||
var deleteFnc = function() {
|
|
||||||
gui.doLog('Delete');
|
|
||||||
gui.doLog(this);
|
|
||||||
};
|
|
||||||
var refreshFnc = function(btn) {
|
|
||||||
// Refreshes table content
|
|
||||||
gui.doLog('Refresh');
|
|
||||||
gui.doLog(this);
|
|
||||||
gui.doLog(btn);
|
|
||||||
var tbl = $('#' + tableId).dataTable();
|
|
||||||
var width = $(btn).width();
|
|
||||||
var saved = $(btn).html();
|
|
||||||
$(btn).addClass('disabled').html('<span class="fa fa-spinner fa-spin"></span>').width(width);
|
|
||||||
$this.rest.get({
|
|
||||||
success: function(data) {
|
|
||||||
processResponse(data);
|
|
||||||
tbl.fnClearTable();
|
|
||||||
tbl.fnAddData(data);
|
|
||||||
$(btn).removeClass('disabled').html(saved);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// methods for buttons on row select
|
|
||||||
var editSelected = function(btn, obj, node) {
|
|
||||||
var sel = this.fnGetSelectedData();
|
|
||||||
if( sel.length == 1) {
|
|
||||||
$(btn).removeClass('disabled').addClass('btn-info');
|
|
||||||
} else {
|
|
||||||
$(btn).removeClass('btn-info').addClass('disabled');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var deleteSelected = function(btn, obj, node) {
|
|
||||||
var sel = this.fnGetSelectedData();
|
|
||||||
if( sel.length > 0) {
|
|
||||||
$(btn).removeClass('disabled').addClass('btn-warning');
|
|
||||||
} else {
|
|
||||||
$(btn).removeClass('btn-warning').addClass('disabled');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.each(options.buttons, function(index, value){
|
|
||||||
var btn = undefined;
|
|
||||||
switch(value) {
|
|
||||||
case 'edit':
|
|
||||||
btn = {
|
|
||||||
"sExtends": "text",
|
|
||||||
"sButtonText": gettext('Edit'),
|
|
||||||
"fnSelect": editSelected,
|
|
||||||
"fnClick": editFnc,
|
|
||||||
"sButtonClass": "disabled"
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 'delete':
|
|
||||||
btn = {
|
|
||||||
"sExtends": "text",
|
|
||||||
"sButtonText": gettext('Delete'),
|
|
||||||
"fnSelect": deleteSelected,
|
|
||||||
"fnClick": deleteFnc,
|
|
||||||
"sButtonClass": "disabled"
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 'refresh':
|
|
||||||
btn = {
|
|
||||||
"sExtends": "text",
|
|
||||||
"sButtonText": gettext('Refresh'),
|
|
||||||
"fnClick": refreshFnc,
|
|
||||||
"sButtonClass": "btn-info"
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 'csb':
|
|
||||||
btn = {
|
|
||||||
"sExtends": "csv",
|
|
||||||
"sTitle": title,
|
|
||||||
"sFileName": title + '.csv',
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
case 'pdf':
|
|
||||||
btn = {
|
|
||||||
"sExtends": "pdf",
|
|
||||||
"sTitle": title,
|
|
||||||
"sPdfMessage": "Summary Info",
|
|
||||||
"sFileName": title + '.pdf',
|
|
||||||
"sPdfOrientation": "portrait"
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( btn != undefined )
|
|
||||||
btns.push(btn);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initializes oTableTools
|
|
||||||
oTableTools = {
|
|
||||||
"aButtons": btns
|
|
||||||
};
|
|
||||||
if( options.rowSelect ) {
|
|
||||||
oTableTools.sRowSelect = options.rowSelect
|
|
||||||
}
|
|
||||||
if( options.rowSelectFnc ) {
|
|
||||||
oTableTools.fnRowSelected = options.rowSelectFnc
|
|
||||||
}
|
|
||||||
if( options.rowDeselectFnc ) {
|
|
||||||
oTableTools.fnRowDeselected = options.rowDeselectFnc
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#' + tableId).dataTable({
|
|
||||||
"aaData": data,
|
|
||||||
"aoColumns": columns,
|
|
||||||
"oLanguage": gui.dataTablesLanguage,
|
|
||||||
"oTableTools": oTableTools,
|
|
||||||
// First is upper row, second row is lower (pagination) row
|
|
||||||
"sDom": "<'row'<'col-xs-6'T><'col-xs-6'f>r>t<'row'<'col-xs-5'i><'col-xs-7'p>>",
|
|
||||||
|
|
||||||
});
|
|
||||||
$('#' + tableId + '_filter input').addClass('form-control');
|
|
||||||
var tableTop = $('#'+tableId).offset().top;
|
|
||||||
gui.doLog(tableTop);
|
|
||||||
//$('html, body').animate({ scrollTop: tableTop });
|
|
||||||
if( options.scroll )
|
|
||||||
$('html, body').scrollTop(tableTop);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return '#' + tableId;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
345
server/src/uds/static/adm/js/strftime.js
Normal file
345
server/src/uds/static/adm/js/strftime.js
Normal file
@ -0,0 +1,345 @@
|
|||||||
|
//
|
||||||
|
// strftime
|
||||||
|
// github.com/samsonjs/strftime
|
||||||
|
// @_sjs
|
||||||
|
//
|
||||||
|
// Copyright 2010 - 2013 Sami Samhuri <sami@samhuri.net>
|
||||||
|
//
|
||||||
|
// MIT License
|
||||||
|
// http://sjs.mit-license.org
|
||||||
|
//
|
||||||
|
|
||||||
|
;(function() {
|
||||||
|
|
||||||
|
// // Where to export the API
|
||||||
|
var namespace;
|
||||||
|
|
||||||
|
// CommonJS / Node module
|
||||||
|
if (typeof module !== 'undefined') {
|
||||||
|
namespace = module.exports = strftime;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Browsers and other environments
|
||||||
|
else {
|
||||||
|
// Get the global object. Works in ES3, ES5, and ES5 strict mode.
|
||||||
|
namespace = (function(){ return this || (1,eval)('this'); }());
|
||||||
|
}
|
||||||
|
|
||||||
|
function words(s) { return (s || '').split(' '); }
|
||||||
|
|
||||||
|
var dayNames = [gettext('Sunday'), gettext('Monday'), gettext('Tuesday'),
|
||||||
|
gettext('Wednesday'), gettext('Thursday'), gettext('Friday'), gettext('Saturday')];
|
||||||
|
var monthNames = [gettext('January'), gettext('February'), gettext('March'),
|
||||||
|
gettext('April'), gettext('May'), gettext('June'), gettext('July'),
|
||||||
|
gettext('August'), gettext('September'), gettext('October'), gettext('November'),
|
||||||
|
gettext('December')];
|
||||||
|
|
||||||
|
function initialsOf(arr) {
|
||||||
|
var res = [];
|
||||||
|
for( var v in arr ) {
|
||||||
|
res.push(arr[v].substr(0,3));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
var DefaultLocale = {
|
||||||
|
days: dayNames,
|
||||||
|
shortDays: initialsOf(dayNames),
|
||||||
|
months: monthNames,
|
||||||
|
shortMonths: initialsOf(monthNames),
|
||||||
|
AM: 'AM',
|
||||||
|
PM: 'PM',
|
||||||
|
am: 'am',
|
||||||
|
pm: 'pm',
|
||||||
|
};
|
||||||
|
|
||||||
|
// Added this to convert django format strings to c format string
|
||||||
|
// This is ofc, a "simplified" version, aimed to use date format used by DJANGO
|
||||||
|
namespace.djangoFormat = function(format) {
|
||||||
|
return format.replace(/./g, function(c) {
|
||||||
|
switch(c) {
|
||||||
|
case 'a':
|
||||||
|
case 'A':
|
||||||
|
return '%p';
|
||||||
|
case 'b':
|
||||||
|
case 'd':
|
||||||
|
case 'm':
|
||||||
|
case 'w':
|
||||||
|
case 'W':
|
||||||
|
case 'y':
|
||||||
|
case 'Y':
|
||||||
|
return '%' + c;
|
||||||
|
case 'c': return '%FT%TZ';
|
||||||
|
case 'D': return '%a';
|
||||||
|
case 'e': return '%z';
|
||||||
|
case 'f': return '%I:%M';
|
||||||
|
case 'F': return '%F';
|
||||||
|
case 'h':
|
||||||
|
case 'g':
|
||||||
|
return '%I';
|
||||||
|
case 'H':
|
||||||
|
case 'G':
|
||||||
|
return '%H';
|
||||||
|
case 'i': return '%M';
|
||||||
|
case 'I': return ''; // daylight saving
|
||||||
|
case 'j': return '%d';
|
||||||
|
case 'l': return '%A';
|
||||||
|
case 'L': return ''; // if it is leap year
|
||||||
|
case 'M': return '%b';
|
||||||
|
case 'n': return '%m';
|
||||||
|
case 'N': return '%b';
|
||||||
|
case 'o': return '%W'; // Not so sure, not important i thing anyway :-)
|
||||||
|
case 'O': return '%z';
|
||||||
|
case 'P': return '%R %p';
|
||||||
|
case 'r': return '%a, %d %b %Y %T %z';
|
||||||
|
case 's': return '%S';
|
||||||
|
case 'S': return ''; // english ordinal suffix for day of month
|
||||||
|
case 't': return ''; // number of days of specified month, not important
|
||||||
|
case 'T': return '%Z';
|
||||||
|
case 'u': return '0'; // microseconds
|
||||||
|
case 'U': return ''; // Seconds since EPOCH, not used
|
||||||
|
case 'z': return '%j';
|
||||||
|
case 'Z': return 'z'; // Time zone offset in seconds, replaced by offset in ours/minutes :-)
|
||||||
|
default:
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
namespace.strftime = strftime;
|
||||||
|
function strftime(fmt, d, locale) {
|
||||||
|
return _strftime(fmt, d, locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
// locale is optional
|
||||||
|
namespace.strftimeTZ = strftime.strftimeTZ = strftimeTZ;
|
||||||
|
function strftimeTZ(fmt, d, locale, timezone) {
|
||||||
|
if (typeof locale == 'number' && timezone == null) {
|
||||||
|
timezone = locale;
|
||||||
|
locale = undefined;
|
||||||
|
}
|
||||||
|
return _strftime(fmt, d, locale, { timezone: timezone });
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace.strftimeUTC = strftime.strftimeUTC = strftimeUTC;
|
||||||
|
function strftimeUTC(fmt, d, locale) {
|
||||||
|
return _strftime(fmt, d, locale, { utc: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace.localizedStrftime = strftime.localizedStrftime = localizedStrftime;
|
||||||
|
function localizedStrftime(locale) {
|
||||||
|
return function(fmt, d, options) {
|
||||||
|
return strftime(fmt, d, locale, options);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// d, locale, and options are optional, but you can't leave
|
||||||
|
// holes in the argument list. If you pass options you have to pass
|
||||||
|
// in all the preceding args as well.
|
||||||
|
//
|
||||||
|
// options:
|
||||||
|
// - locale [object] an object with the same structure as DefaultLocale
|
||||||
|
// - timezone [number] timezone offset in minutes from GMT
|
||||||
|
function _strftime(fmt, d, locale, options) {
|
||||||
|
options = options || {};
|
||||||
|
|
||||||
|
// d and locale are optional so check if d is really the locale
|
||||||
|
if (d && !quacksLikeDate(d)) {
|
||||||
|
locale = d;
|
||||||
|
d = undefined;
|
||||||
|
}
|
||||||
|
d = d || new Date();
|
||||||
|
|
||||||
|
locale = locale || DefaultLocale;
|
||||||
|
locale.formats = locale.formats || {};
|
||||||
|
|
||||||
|
// Hang on to this Unix timestamp because we might mess with it directly
|
||||||
|
// below.
|
||||||
|
var timestamp = d.getTime();
|
||||||
|
|
||||||
|
if (options.utc || typeof options.timezone == 'number') {
|
||||||
|
d = dateToUTC(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof options.timezone == 'number') {
|
||||||
|
d = new Date(d.getTime() + (options.timezone * 60000));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Most of the specifiers supported by C's strftime, and some from Ruby.
|
||||||
|
// Some other syntax extensions from Ruby are supported: %-, %_, and %0
|
||||||
|
// to pad with nothing, space, or zero (respectively).
|
||||||
|
return fmt.replace(/%([-_0]?.)/g, function(_, c) {
|
||||||
|
var mod, padding;
|
||||||
|
if (c.length == 2) {
|
||||||
|
mod = c[0];
|
||||||
|
// omit padding
|
||||||
|
if (mod == '-') {
|
||||||
|
padding = '';
|
||||||
|
}
|
||||||
|
// pad with space
|
||||||
|
else if (mod == '_') {
|
||||||
|
padding = ' ';
|
||||||
|
}
|
||||||
|
// pad with zero
|
||||||
|
else if (mod == '0') {
|
||||||
|
padding = '0';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// unrecognized, return the format
|
||||||
|
return _;
|
||||||
|
}
|
||||||
|
c = c[1];
|
||||||
|
}
|
||||||
|
switch (c) {
|
||||||
|
case 'A': return locale.days[d.getDay()];
|
||||||
|
case 'a': return locale.shortDays[d.getDay()];
|
||||||
|
case 'B': return locale.months[d.getMonth()];
|
||||||
|
case 'b': return locale.shortMonths[d.getMonth()];
|
||||||
|
case 'C': return pad(Math.floor(d.getFullYear() / 100), padding);
|
||||||
|
case 'D': return _strftime(locale.formats.D || '%m/%d/%y', d, locale);
|
||||||
|
case 'd': return pad(d.getDate(), padding);
|
||||||
|
case 'e': return d.getDate();
|
||||||
|
case 'F': return _strftime(locale.formats.F || '%Y-%m-%d', d, locale);
|
||||||
|
case 'H': return pad(d.getHours(), padding);
|
||||||
|
case 'h': return locale.shortMonths[d.getMonth()];
|
||||||
|
case 'I': return pad(hours12(d), padding);
|
||||||
|
case 'j':
|
||||||
|
var y = new Date(d.getFullYear(), 0, 1);
|
||||||
|
var day = Math.ceil((d.getTime() - y.getTime()) / (1000 * 60 * 60 * 24));
|
||||||
|
return pad(day, 3);
|
||||||
|
case 'k': return pad(d.getHours(), padding == null ? ' ' : padding);
|
||||||
|
case 'L': return pad(Math.floor(timestamp % 1000), 3);
|
||||||
|
case 'l': return pad(hours12(d), padding == null ? ' ' : padding);
|
||||||
|
case 'M': return pad(d.getMinutes(), padding);
|
||||||
|
case 'm': return pad(d.getMonth() + 1, padding);
|
||||||
|
case 'n': return '\n';
|
||||||
|
case 'o': return String(d.getDate()) + ordinal(d.getDate());
|
||||||
|
case 'P': return d.getHours() < 12 ? locale.am : locale.pm;
|
||||||
|
case 'p': return d.getHours() < 12 ? locale.AM : locale.PM;
|
||||||
|
case 'R': return _strftime(locale.formats.R || '%H:%M', d, locale);
|
||||||
|
case 'r': return _strftime(locale.formats.r || '%I:%M:%S %p', d, locale);
|
||||||
|
case 'S': return pad(d.getSeconds(), padding);
|
||||||
|
case 's': return Math.floor(timestamp / 1000);
|
||||||
|
case 'T': return _strftime(locale.formats.T || '%H:%M:%S', d, locale);
|
||||||
|
case 't': return '\t';
|
||||||
|
case 'U': return pad(weekNumber(d, 'sunday'), padding);
|
||||||
|
case 'u':
|
||||||
|
var day = d.getDay();
|
||||||
|
return day == 0 ? 7 : day; // 1 - 7, Monday is first day of the
|
||||||
|
// week
|
||||||
|
case 'v': return _strftime(locale.formats.v || '%e-%b-%Y', d, locale);
|
||||||
|
case 'W': return pad(weekNumber(d, 'monday'), padding);
|
||||||
|
case 'w': return d.getDay(); // 0 - 6, Sunday is first day of the
|
||||||
|
// week
|
||||||
|
case 'Y': return d.getFullYear();
|
||||||
|
case 'y':
|
||||||
|
var y = String(d.getFullYear());
|
||||||
|
return y.slice(y.length - 2);
|
||||||
|
case 'Z':
|
||||||
|
if (options.utc) {
|
||||||
|
return "GMT";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var tz = d.toString().match(/\((\w+)\)/);
|
||||||
|
return tz && tz[1] || '';
|
||||||
|
}
|
||||||
|
case 'z':
|
||||||
|
if (options.utc) {
|
||||||
|
return "+0000";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var off = typeof options.timezone == 'number' ? options.timezone : -d.getTimezoneOffset();
|
||||||
|
return (off < 0 ? '-' : '+') + pad(Math.abs(off / 60)) + pad(off % 60);
|
||||||
|
}
|
||||||
|
default: return c;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function dateToUTC(d) {
|
||||||
|
var msDelta = (d.getTimezoneOffset() || 0) * 60000;
|
||||||
|
return new Date(d.getTime() + msDelta);
|
||||||
|
}
|
||||||
|
|
||||||
|
var RequiredDateMethods = ['getTime', 'getTimezoneOffset', 'getDay', 'getDate', 'getMonth', 'getFullYear', 'getYear', 'getHours', 'getMinutes', 'getSeconds'];
|
||||||
|
function quacksLikeDate(x) {
|
||||||
|
var i = 0
|
||||||
|
, n = RequiredDateMethods.length
|
||||||
|
;
|
||||||
|
for (i = 0; i < n; ++i) {
|
||||||
|
if (typeof x[RequiredDateMethods[i]] != 'function') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default padding is '0' and default length is 2, both are optional.
|
||||||
|
function pad(n, padding, length) {
|
||||||
|
// pad(n, <length>)
|
||||||
|
if (typeof padding === 'number') {
|
||||||
|
length = padding;
|
||||||
|
padding = '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Defaults handle pad(n) and pad(n, <padding>)
|
||||||
|
if (padding == null) {
|
||||||
|
padding = '0';
|
||||||
|
}
|
||||||
|
length = length || 2;
|
||||||
|
|
||||||
|
var s = String(n);
|
||||||
|
// padding may be an empty string, don't loop forever if it is
|
||||||
|
if (padding) {
|
||||||
|
while (s.length < length) s = padding + s;
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function hours12(d) {
|
||||||
|
var hour = d.getHours();
|
||||||
|
if (hour == 0) hour = 12;
|
||||||
|
else if (hour > 12) hour -= 12;
|
||||||
|
return hour;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the ordinal suffix for a number: st, nd, rd, or th
|
||||||
|
function ordinal(n) {
|
||||||
|
var i = n % 10
|
||||||
|
, ii = n % 100
|
||||||
|
;
|
||||||
|
if ((ii >= 11 && ii <= 13) || i === 0 || i >= 4) {
|
||||||
|
return 'th';
|
||||||
|
}
|
||||||
|
switch (i) {
|
||||||
|
case 1: return 'st';
|
||||||
|
case 2: return 'nd';
|
||||||
|
case 3: return 'rd';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// firstWeekday: 'sunday' or 'monday', default is 'sunday'
|
||||||
|
//
|
||||||
|
// Pilfered & ported from Ruby's strftime implementation.
|
||||||
|
function weekNumber(d, firstWeekday) {
|
||||||
|
firstWeekday = firstWeekday || 'sunday';
|
||||||
|
|
||||||
|
// This works by shifting the weekday back by one day if we
|
||||||
|
// are treating Monday as the first day of the week.
|
||||||
|
var wday = d.getDay();
|
||||||
|
if (firstWeekday == 'monday') {
|
||||||
|
if (wday == 0) // Sunday
|
||||||
|
wday = 6;
|
||||||
|
else
|
||||||
|
wday--;
|
||||||
|
}
|
||||||
|
var firstDayOfYear = new Date(d.getFullYear(), 0, 1)
|
||||||
|
, yday = (d - firstDayOfYear) / 86400000
|
||||||
|
, weekNum = (yday + 7 - wday) / 7
|
||||||
|
;
|
||||||
|
return Math.floor(weekNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
}());
|
@ -1 +0,0 @@
|
|||||||
|
|
9266
server/src/uds/static/js/jquery-1.7.1.js
vendored
9266
server/src/uds/static/js/jquery-1.7.1.js
vendored
File diff suppressed because it is too large
Load Diff
@ -9,9 +9,8 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
{% block meta %}{% endblock %}
|
|
||||||
|
|
||||||
{% block icon %}<link href="{% get_static_prefix %}img/favicon.ico" rel="icon" type="image/x-icon" />{% endblock %}
|
<link href="{% get_static_prefix %}img/favicon.ico" rel="icon" type="image/x-icon" />
|
||||||
|
|
||||||
<!-- Bootstrap -->
|
<!-- Bootstrap -->
|
||||||
<link href="{% get_static_prefix %}css/bootstrap.min.css" rel="stylesheet" media="screen">
|
<link href="{% get_static_prefix %}css/bootstrap.min.css" rel="stylesheet" media="screen">
|
||||||
@ -23,9 +22,8 @@
|
|||||||
<link href="{% get_static_prefix %}adm/css/TableTools.css" rel="stylesheet" media="screen">
|
<link href="{% get_static_prefix %}adm/css/TableTools.css" rel="stylesheet" media="screen">
|
||||||
<link href="{% get_static_prefix %}adm/css/dataTables.bootstrap.css" rel="stylesheet" media="screen">
|
<link href="{% get_static_prefix %}adm/css/dataTables.bootstrap.css" rel="stylesheet" media="screen">
|
||||||
|
|
||||||
<!-- <link href="{% get_static_prefix %}css/tables.css" rel="stylesheet" media="screen"> -->
|
<link href="{% get_static_prefix %}css/tables.css" rel="stylesheet" media="screen">
|
||||||
<link href="{% get_static_prefix %}adm/css/uds-admin.css" rel="stylesheet" media="screen">
|
<link href="{% get_static_prefix %}adm/css/uds-admin.css" rel="stylesheet" media="screen">
|
||||||
{% block css %}{% endblock %}
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -50,13 +48,14 @@
|
|||||||
<script src="{% get_static_prefix %}adm/js/jquery.dataTables.min.js"></script>
|
<script src="{% get_static_prefix %}adm/js/jquery.dataTables.min.js"></script>
|
||||||
|
|
||||||
<script src="{% get_static_prefix %}adm/js/TableTools.min.js"></script>
|
<script src="{% get_static_prefix %}adm/js/TableTools.min.js"></script>
|
||||||
|
|
||||||
|
<!-- strftime -->
|
||||||
|
<script src="{% get_static_prefix %}adm/js/strftime.js"></script>
|
||||||
|
|
||||||
<!-- <script src="{% get_static_prefix %}adm/js/ZeroClipboard.js"></script> -->
|
<!-- <script src="{% get_static_prefix %}adm/js/ZeroClipboard.js"></script> -->
|
||||||
|
|
||||||
<script src="{% get_static_prefix %}adm/js/dataTables.bootstrap.js"></script>
|
<script src="{% get_static_prefix %}adm/js/dataTables.bootstrap.js"></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="{% get_static_prefix %}adm/js/templating.js"></script>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Initialize a few settings, needed for api to work
|
// Initialize a few settings, needed for api to work
|
||||||
(function(api, $, undefined){
|
(function(api, $, undefined){
|
||||||
@ -76,7 +75,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(function() {
|
$(function() {
|
||||||
// Initialize gui
|
// Initialize gui
|
||||||
gui.init();
|
gui.init();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -45,7 +45,8 @@
|
|||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
{% for lang in LANGUAGES %}
|
{% for lang in LANGUAGES %}
|
||||||
{% if lang.0 != LANGUAGE_CODE %}
|
{% if lang.0 != LANGUAGE_CODE %}
|
||||||
<li><a href="#" onclick='$("#id_language").val("{{ lang.0 }}"); $("#form_language").submit()'><i class="glyphicon bfh-flag-{{ lang.0|country }}"></i>{% trans lang.1|capfirst %}</a></li>
|
<!-- here we force an update of locale of REST api -->
|
||||||
|
<li><a href="#" onclick='$("#id_language").val("{{ lang.0 }}"); api.locale.get({id:"{{ lang.0 }}", success:function(){ $("#form_language").submit() }});'><i class="glyphicon bfh-flag-{{ lang.0|country }}"></i>{% trans lang.1|capfirst %}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -62,7 +62,7 @@ urlpatterns = patterns('uds',
|
|||||||
# Change Language
|
# Change Language
|
||||||
(r'^i18n/', include('django.conf.urls.i18n')),
|
(r'^i18n/', include('django.conf.urls.i18n')),
|
||||||
# Downloadables
|
# Downloadables
|
||||||
(r'^download/(?P<idDownload>[a-zA-Z0-9]*)$', 'web.views.download'),
|
(r'^download/(?P<idDownload>[a-zA-Z0-9-]*)$', 'web.views.download'),
|
||||||
# Custom authentication callback
|
# Custom authentication callback
|
||||||
(r'^auth/(?P<authName>.+)', 'web.views.authCallback'),
|
(r'^auth/(?P<authName>.+)', 'web.views.authCallback'),
|
||||||
(r'^authJava/(?P<idAuth>.+)/(?P<hasJava>.*)$', 'web.views.authJava'),
|
(r'^authJava/(?P<idAuth>.+)/(?P<hasJava>.*)$', 'web.views.authJava'),
|
||||||
@ -80,7 +80,7 @@ urlpatterns = patterns('uds',
|
|||||||
|
|
||||||
# Internacionalization in javascript
|
# Internacionalization in javascript
|
||||||
# Javascript catalog
|
# Javascript catalog
|
||||||
(r'^jsi18n/(?P<lang>.*)$', 'web.views.jsCatalog', js_info_dict),
|
(r'^jsi18n/(?P<lang>[a-z]*)$', 'web.views.jsCatalog', js_info_dict),
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -431,4 +431,6 @@ def download(request, idDownload):
|
|||||||
last_modified_date = timezone.now()
|
last_modified_date = timezone.now()
|
||||||
@last_modified(lambda req, **kw: last_modified_date)
|
@last_modified(lambda req, **kw: last_modified_date)
|
||||||
def jsCatalog(request, lang, domain='djangojs', packages=None):
|
def jsCatalog(request, lang, domain='djangojs', packages=None):
|
||||||
|
if lang != '':
|
||||||
|
request.GET = { 'language': lang } # Fake args for catalog :-)
|
||||||
return javascript_catalog(request, domain, packages)
|
return javascript_catalog(request, domain, packages)
|
||||||
|
Loading…
Reference in New Issue
Block a user