improve template translations

This commit is contained in:
ziirish 2017-01-20 08:32:55 +01:00
parent 09d084f664
commit 533b1bd91d
16 changed files with 1259 additions and 804 deletions

View file

@ -37,29 +37,31 @@ Here are some custom filters
@view.app_template_filter()
def mypad(s):
def mypad(value):
"""
Filter: used to pad 0's to backup numbers as in the burp's status monitor
"""
if not s:
if not value:
return '0000000'
return '{0:07d}'.format(int(s))
return '{0:07d}'.format(int(value))
@view.app_template_filter()
def time_human(d):
s = ''
seconds = (((d % 31536000) % 86400) % 3600) % 60
minutes = math.floor((((d % 31536000) % 86400) % 3600) / 60)
hours = math.floor(((d % 31536000) % 86400) / 3600)
def time_human(value):
"""Convert the input value to human readable time"""
string = ''
seconds = (((value % 31536000) % 86400) % 3600) % 60
minutes = math.floor((((value % 31536000) % 86400) % 3600) / 60)
hours = math.floor(((value % 31536000) % 86400) / 3600)
if hours > 0:
s = '%02dH' % hours
return '%s %02dm %02ds' % (s, minutes, seconds)
string = '%02dH' % hours
return '%s %02dm %02ds' % (string, minutes, seconds)
@view.app_template_filter()
def bytes_human(b):
return '{0:.1eM}'.format(_hr(b))
def bytes_human(value):
"""Convert the input value to human readable bytes"""
return '{0:.1eM}'.format(_hr(value))
"""

View file

@ -5,54 +5,54 @@
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ server }} clients</a></li>
<li><a href="{{ url_for('view.client', name=cname, server=server) }}">{{ cname }} overview</a></li>
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ _('%(server)s clients', server=server) }}</a></li>
<li><a href="{{ url_for('view.client', name=cname, server=server) }}">{{ _('%(client)s overview', client=cname) }}</a></li>
<li class="active">{{ _('Backup n°%(number)s overview', number=mypad(nbackup)) }}</li>
{% else -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li><a href="{{ url_for('view.client', name=cname) }}">{{ cname }} overview</a></li>
<li class="active">Backup n°{{ nbackup|mypad }} overview</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li><a href="{{ url_for('view.client', name=cname) }}">{{ _('%(client)s overview', client=cname) }}</a></li>
<li class="active">{{ _('Backup n°%(number)s overview', number=mypad(nbackup)) }}</li>
{% endif -%}
</ul>
<br />
<h1 class="page-header">Backup n°{{ nbackup|mypad }} of {{ cname }}</h1>
<h1 class="page-header">{{ _('Backup n°%(number)s of %(client)s', number=mypad(nbackup), client=cname) }}</h1>
<div class="row placeholders">
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_new" style="height: 350px;">
<svg></svg>
</div>
<h4>New</h4>
<h4>{{ _('New') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_changed" style="height: 350px;">
<svg></svg>
</div>
<h4>Changed</h4>
<h4>{{ _('Changed') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_unchanged" style="height: 350px;">
<svg></svg>
</div>
<h4>Unchanged</h4>
<h4>{{ _('Unchanged') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_deleted" style="height: 350px;">
<svg></svg>
</div>
<h4>Deleted</h4>
<h4>{{ _('Deleted') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_total" style="height: 350px;">
<svg></svg>
</div>
<h4>Total</h4>
<h4>{{ _('Total') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_scanned" style="height: 350px;">
<svg></svg>
</div>
<h4>Scanned</h4>
<h4>{{ _('Scanned') }}</h4>
</div>
<!--
<div class="col-xs-12 col-sm-12 placeholder">

View file

@ -5,11 +5,11 @@
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">Calendar</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('Calendar') }}</li>
{% else -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">Calendar</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('Calendar') }}</li>
{% endif -%}
</ul>
<br />

View file

@ -5,12 +5,12 @@
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ server }} clients</a></li>
<li class="active">{{ cname }} overview</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ _("%(server)s clients", server=server) }}</a></li>
<li class="active">{{ _('%(client)s overview', client=cname) }}</li>
{% else -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">{{ cname }} overview</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('%(client)s overview', client=cname) }}</li>
{% endif -%}
</ul>
<br />
@ -20,43 +20,43 @@
<div class="mycharts" id="chart_new" style="height: 350px;">
<svg></svg>
</div>
<h4>New</h4>
<h4>{{ _('New') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_changed" style="height: 350px;">
<svg></svg>
</div>
<h4>Changed</h4>
<h4>{{ _('Changed') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_unchanged" style="height: 350px;">
<svg></svg>
</div>
<h4>Unchanged</h4>
<h4>{{ _('Unchanged') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_deleted" style="height: 350px;">
<svg></svg>
</div>
<h4>Deleted</h4>
<h4>{{ _('Deleted') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_total" style="height: 350px;">
<svg></svg>
</div>
<h4>Total</h4>
<h4>{{ _('Total') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_scanned" style="height: 350px;">
<svg></svg>
</div>
<h4>Scanned</h4>
<h4>{{ _('Scanned') }}</h4>
</div>
<div class="col-xs-12 col-sm-12 placeholder">
<div class="mycharts" id="chart_stats" style="height: 350px;">
<svg></svg>
</div>
<h4>Statistics</h4>
<h4>{{ _('Statistics') }}</h4>
</div>
</div>
</div>

View file

@ -6,42 +6,42 @@
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ server }} clients</a></li>
<li class="active">{{ cname }} {{ _('overview') }}</li>
<li><a href="{{ url_for('view.clients', server=server) }}">{{ _('%(server)s clients', server=server) }}</a></li>
<li class="active">{{ _('%(client)s overview', client=cname) }}</li>
{% else -%}
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ cname }} {{ _('overview') }}</li>
<li class="active">{{ _('%(client)s overview', client=cname) }}</li>
{% endif -%}
</ul>
<br />
<h1 class="page-header">{{ cname }}</h1>
<h2 class="sub-header">Backups</h2>
<h2 class="sub-header">{{ _('Backups') }}</h2>
<p>
Toggle column: <a class="toggle-vis" data-column="0" href="#">{{ _('Number') }}</a> -
<a class="toggle-vis" data-column="1" href="#">Date</a> -
<a class="toggle-vis" data-column="1" href="#">{{ _('Date') }}</a> -
<a class="toggle-vis" data-column="2" href="#">{{ _('Bytes received') }}</a> -
<a class="toggle-vis" data-column="3" href="#">{{ _('Estimated size') }}</a> -
<a class="toggle-vis" data-column="4" href="#">{{ _('Deletable') }}</a> -
<a class="toggle-vis" data-column="5" href="#">Status</a>
<a class="toggle-vis" data-column="5" href="#">{{ _('Status') }}</a>
</p>
<div class="table-responsive">
<table class="table table-striped table-hover nowrap" id="table-client" width="100%">
<thead>
<tr>
<th>{{ _('Number') }}</th>
<th class="desktop">Date</th>
<th class="desktop">{{ _('Date') }}</th>
<th class="desktop">{{ _('Bytes received') }}</th>
<th class="desktop">{{ _('Estimated size') }}</th>
<th class="desktop">{{ _('Deletable') }}</th>
<th class="desktop">Status</th>
<th class="desktop">{{ _('Status') }}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<div class="alert alert-dismissable alert-danger" id="client-alert" style="display: none;">
<span class="glyphicon glyphicon-exclamation-sign"></span> <strong>{{ _('Sorry!') }}</strong> {{ _('There are no backups for this client.') }}
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;{{ _('<strong>Sorry!</strong> There are no backups for this client.') }}
</div>
</div>
<br />

View file

@ -5,38 +5,38 @@
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">{{ server }} clients</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('%(server)s clients', server=server) }}</li>
{% else -%}
<li class="active">Home</li>
<li class="active">{{ _('Home') }}</li>
{% endif -%}
</ul>
<br />
<h1 class="page-header">Global server report</h1>
<h1 class="page-header">{{ _('Global server report') }}</h1>
<div class="row placeholders">
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_repartition" style="height: 350px;">
<svg></svg>
</div>
<h4>Clients repartition</h4>
<h4>{{ _('Clients repartition') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_size" style="height: 350px;">
<svg></svg>
</div>
<h4>Used space</h4>
<h4>{{ _('Used space') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_files" style="height: 350px;">
<svg></svg>
</div>
<h4>Total files</h4>
<h4>{{ _('Total files') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_backups" style="height: 350px;">
<svg></svg>
</div>
<h4>Number of backups</h4>
<h4>{{ _('Number of backups') }}</h4>
</div>
</div>
</div>

View file

@ -6,15 +6,15 @@
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ server }} clients</li>
<li class="active">{{ _('%(server)s clients', server=server) }}</li>
{% else -%}
<li class="active">{{ _('Home') }}</li>
{% endif -%}
</ul>
<br />
<h1 class="page-header">Clients</h1>
<h1 class="page-header">{{ _('Clients') }}</h1>
<h2 class="sub-header">Status</h2>
<h2 class="sub-header">{{ _('Status') }}</h2>
<div class="table-responsive">
<table class="table table-striped table-hover nowrap" id="table-clients" width="100%">
<thead>

View file

@ -2,22 +2,24 @@
{% block body %}
<div class="main">
<ul class="breadcrumb" style="margin-bottom: 5px;">
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">Live monitor</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('Live monitor') }}</li>
</ul>
<div class="row" id="live-container" ng-cloak>
{# From here, the jinja syntax is escaped because we use the angularjs syntax #}
{% raw %}
<div class="col-lg-12" ng-repeat="client in clients">
<br />
<h1 class="page-header">{{ ::client.client }}<span ng-if="client.agent"> on {{ ::client.agent }}</h1>
<h1 class="page-header">{{ _('{{ ::client.client }}<span ng-if="client.agent"> on {{ ::client.agent }}</span>') }}</h1>
{# From here, the jinja syntax is escaped because we use the angularjs syntax #}
{% raw %}
<h4>{{ client.counters.percent | number:0 }}%</h4>
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-success" style="width: {{ client.counters.percent }}%"></div>
</div>
<div class="panel panel-primary" ng-if="client.counters.path">
<div class="panel-heading">
<h3 class="panel-title">Path</h3>
{% endraw %}
<h3 class="panel-title">{{ _('Path') }}</h3>
{% raw %}
</div>
<div class="panel-body">
{{ client.counters.path }}
@ -28,15 +30,21 @@
<ul class="list-group">
<li class="list-group-item" ng-if="client.counters.phase">
<span class="badge">{{ client.counters.phase }}</span>
Phase
{% endraw %}
{{ _('Phase') }}
{% raw %}
</li>
<li class="list-group-item" ng-if="client.counters.timeleft">
<span class="badge">{{ client.counters.timeleft | time_human }}</span>
Time left
{% endraw %}
{{ _('Time left') }}
{% raw %}
</li>
<li class="list-group-item" ng-if="client.counters.warning && client.counters.warning > 0">
<span class="badge">{{ client.counters.warning }}</span>
Warning<span ng-if="client.counters.warning > 1">s</span>
{% endraw %}
{{ _('Warning<span ng-if="client.counters.warning > 1">s</span>') }}
{% raw %}
</li>
</ul>
</div>
@ -44,15 +52,21 @@
<ul class="list-group">
<li class="list-group-item" ng-if="client.counters.bytes_in">
<span class="badge">{{ client.counters.bytes_in | bytes_human }}</span>
Bytes received
{% endraw %}
{{ _('Bytes received') }}
{% raw %}
</li>
<li class="list-group-item" ng-if="client.counters.bytes">
<span class="badge">{{ client.counters.bytes | bytes_human }}</span>
Bytes received
{% endraw %}
{{ _('Bytes received') }}
{% raw %}
</li>
<li class="list-group-item" ng-if="client.counters.speed && client.counters.speed > 0">
<span class="badge">{{ client.counters.speed | bytes_human }}/s</span>
Speed
{% endraw %}
{{ _('Speed') }}
{% raw %}
</li>
</ul>
</div>
@ -60,12 +74,14 @@
<table class="table table-striped table-hover" id="table-stats">
<thead>
<tr>
{% endraw %}
<th></th>
<th>New</th>
<th>Changed</th>
<th>Unchanged</th>
<th>Deleted</th>
<th>Scanned</th>
<th>{{ _('New') }}</th>
<th>{{ _('Changed') }}</th>
<th>{{ _('Unchanged') }}</th>
<th>{{ _('Deleted') }}</th>
<th>{{ _('Scanned') }}</th>
{% raw %}
</tr>
</thead>
<tbody>

View file

@ -4,34 +4,34 @@
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
<li class="active">Home</li>
<li class="active">{{ _('Home') }}</li>
</ul>
<br />
<h1 class="page-header">Global report</h1>
<h1 class="page-header">{{ _('Global report') }}</h1>
<div class="row placeholders">
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_repartition" style="height: 350px;">
<svg></svg>
</div>
<h4>Clients repartition per server</h4>
<h4>{{ _('Clients repartition per server') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_size" style="height: 350px;">
<svg></svg>
</div>
<h4>Used space</h4>
<h4>{{ _('Used space') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_files" style="height: 350px;">
<svg></svg>
</div>
<h4>Total files</h4>
<h4>{{ _('Total files') }}</h4>
</div>
<div class="col-xs-6 col-sm-6 placeholder">
<div class="mycharts" id="chart_backups" style="height: 350px;">
<svg></svg>
</div>
<h4>Number of backups</h4>
<h4>{{ _('Number of backups') }}</h4>
</div>
</div>
</div>

View file

@ -14,8 +14,8 @@
<thead>
<tr>
<th>{{ _('Name') }}</th>
<th class="desktop">Clients</th>
<th class="desktop">Status</th>
<th class="desktop">{{ _('Clients') }}</th>
<th class="desktop">{{ _('Status') }}</th>
</tr>
</thead>
<tbody>

View file

@ -5,16 +5,16 @@
{% include "small_topbar.html" %}
<ul class="breadcrumb" style="margin-bottom: 5px;">
{% if server -%}
<li><a href="{{ url_for('view.home') }}">Home</a></li>
<li class="active">{{ server }} Burp Configuration</li>
<li><a href="{{ url_for('view.home') }}">{{ _('Home') }}</a></li>
<li class="active">{{ _('Burp Configuration of %(server)s', server=server) }}</li>
{% else -%}
<li class="active">Burp Configuration</li>
<li class="active">{{ _('Burp Configuration') }}</li>
{% endif -%}
</ul>
<br />
<div id="waiting-container" class="row">
<span class="icon-refresh-animate glyphicon glyphicon-refresh"></span>&nbsp;Loading, Please wait...
<span class="icon-refresh-animate glyphicon glyphicon-refresh"></span>&nbsp;{{ _('Loading, Please wait...') }}
<br />
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-info" style="width: 100%"></div>
@ -27,10 +27,10 @@
{% else -%}
<form class="form-horizontal" action="{{ url_for('api.server_settings', conf=conf, server=server) }}" method="POST" ng-submit="submit($event)" name="setSettings" onbeforeunload>
{% endif -%}
<fieldset>
<legend id="boolean">{{ _('Booleans') }}</legend>
{# From here, the jinja syntax is escaped because we use the angularjs syntax #}
{% raw %}
<fieldset>
<legend id="boolean">Booleans</legend>
<div class="form-group" ng-repeat="bool in bools">
<label for="{{ ::bool.name }}_view" class="col-lg-3 control-label">{{ ::bool.name }}</label>
<div class="col-lg-2">
@ -45,7 +45,11 @@
<div class="form-group" ng-hide="!add.bools">
<div class="col-lg-3">
<ui-select ng-model="new.bools" ng-disabled="!add.bools" style="width: 100%;" on-select="select($item, $select, 'bools')">
<ui-select-match placeholder="Select an option">{{ $select.selected.name }}</ui-select-match>
{% endraw %}
<ui-select-match placeholder="{{ _('Select an option') }}">
{% raw %}
{{ $select.selected.name }}
</ui-select-match>
<ui-select-choices repeat="value.name as value in avail.bools | filter: $select.search">
<div ng-bind-html="value.name | highlight: $select.search"></div>
</ui-select-choices>
@ -62,7 +66,9 @@
</div>
</fieldset>
<fieldset>
<legend id="string">Strings</legend>
{% endraw %}
<legend id="string">{{ _('Strings') }}</legend>
{% raw %}
<div class="form-group" ng-repeat="string in strings" ng-class="{'has-error': invalid[string.name] }">
<label for="{{ ::string.name }}" class="col-lg-3 control-label">{{ ::string.name }}</label>
<div ng-if="!suggest[string.name]" class="col-lg-2">
@ -81,7 +87,11 @@
<div class="form-group" ng-hide="!add.strings">
<div class="col-lg-3">
<ui-select ng-model="new.strings" ng-disabled="!add.strings" style="width: 100%;" on-select="select($item, $select, 'strings')">
<ui-select-match placeholder="Select an option">{{ $select.selected.name }}</ui-select-match>
{% endraw %}
<ui-select-match placeholder="{{ _('Select an option') }}">
{% raw %}
{{ $select.selected.name }}
</ui-select-match>
<ui-select-choices repeat="value.name as value in avail.strings | filter: $select.search">
<div ng-bind-html="value.name | highlight: $select.search"></div>
</ui-select-choices>
@ -98,7 +108,9 @@
</div>
</fieldset>
<fieldset>
<legend id="integer">Integers</legend>
{% endraw %}
<legend id="integer">{{ _('Integers') }}</legend>
{% raw %}
<div class="form-group" ng-class="{'has-error': !setSettings[int.name].$valid}" ng-repeat="int in integers">
<label for="{{ ::int.name }}" class="col-lg-3 control-label">{{ ::int.name }}</label>
<div class="col-lg-2">
@ -112,7 +124,11 @@
<div class="form-group" ng-hide="!add.integers">
<div class="col-lg-3">
<ui-select ng-model="new.integers" ng-disabled="!add.integers" style="width: 100%;" on-select="select($item, $select, 'integers')">
<ui-select-match placeholder="Select an option">{{ $select.selected.name }}</ui-select-match>
{% endraw %}
<ui-select-match placeholder="{{ _('Select an option') }}">
{% raw %}
{{ $select.selected.name }}
</ui-select-match>
<ui-select-choices repeat="value.name as value in avail.integers | filter: $select.search">
<div ng-bind-html="value.name | highlight: $select.search"></div>
</ui-select-choices>
@ -129,7 +145,9 @@
</div>
</fieldset>
<fieldset>
<legend id="multi">Multi</legend>
{% endraw %}
<legend id="multi">{{ _('Multi') }}</legend>
{% raw %}
<div class="well" ng-repeat="multi in multis">
<div class="form-group" ng-repeat="(i, val) in multi.value track by $index">
<label class="col-lg-3 control-label" for="{{ ::$parent.multi.name }}-{{ $index }}">{{ ::$parent.multi.name }}</label>
@ -148,7 +166,11 @@
<div class="form-group" ng-hide="!add.multis">
<div class="col-lg-3">
<ui-select ng-model="new.multis" ng-disabled="!add.multis" style="width: 100%;" on-select="select($item, $select, 'multis')">
<ui-select-match placeholder="Select an option">{{ $select.selected.name }}</ui-select-match>
{% endraw %}
<ui-select-match placeholder="{{ _('Select an option') }}">
{% raw %}
{{ $select.selected.name }}
</ui-select-match>
<ui-select-choices repeat="value.name as value in avail.multis | filter: $select.search">
<div ng-bind-html="value.name | highlight: $select.search"></div>
</ui-select-choices>
@ -165,10 +187,16 @@
</div>
</fieldset>
<fieldset>
<legend id="includes_source">Source files</legend>
{% endraw %}
<legend id="includes_source">{{ _('Source external configuration files') }}</legend>
{% raw %}
<div class="well">
<div class="form-group" ng-repeat="(i, val) in includes track by $index" ng-class="{'has-error': inc_invalid[$index] }">
<label for="include-{{ $index }}" class="col-lg-3 control-label">source</label>
<label for="include-{{ $index }}" class="col-lg-3 control-label">
{% endraw %}
{{ _('source config') }}
{% raw %}
</label>
<div class="col-lg-2">
<input class="form-control" type="text" id="include-{{ $index }}" name="includes" ng-model="includes[i]" ng-focus="focusIn($event)" ng-blur="focusOut($event)" placeholder="{{ ::placeholders['.'] }}">
<input type="hidden" ng-disabled="{{ includes_ori[$index] === false }}" name="includes_ori" value="{{ includes_ori[$index] }}">
@ -188,27 +216,27 @@
<div class="col-lg-5" ng-if="$first" ng-bind-html="::server_doc['.']"></div>
</div>
<div class="form-group">
<label for="btn-add-include" class="col-lg-3 control-label">source</label>
{% endraw %}
<label for="btn-add-include" class="col-lg-3 control-label">{{ _('source config') }}</label>
<div class="col-lg-9">
<button type="button" class="btn btn-success btn-primary" ng-click="clickAddIncludes()"><span class="glyphicon glyphicon-plus"></span></button>
</div>
</div>
</div>
</fieldset>
{% endraw %}
<div class="btn-toolbar">
<div class="col-lg-3 col-lg-offset-3">
<button type="submit" class="btn btn-primary" ng-disabled="!setSettings.$valid">Submit</button>
<button type="submit" class="btn btn-primary" ng-disabled="!setSettings.$valid">{{ _('Submit') }}</button>
</div>
<div class="col-lg-6">
{% if client and not conf -%}
<div class="btn-group dropupi text-right">
<button type="button" class="btn btn-danger" ng-click="deleteClient()">Remove '{{ client }}'</button>
<button type="button" class="btn btn-danger" ng-click="deleteClient()">{{ _("Remove '%(client)s'", client=client) }}</button>
<button class="btn btn-danger dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu browse">
<li><label for="keepconf">Do not remove the configuration:&nbsp;</label><input type="checkbox" id="keepconf" name="keepconf"></li>
<li><label for="delcert">Remove associated certificate:&nbsp;</label><input type="checkbox" id="delcert" name="delcert"></li>
<li><label for="revoke">Revoke associated certificate:&nbsp;</label><input type="checkbox" id="revoke" name="revoke" ng-disabled="!revokeEnabled"></li>
<li><label for="keepconf">{{ _('Do not remove the configuration:') }}&nbsp;</label><input type="checkbox" id="keepconf" name="keepconf"></li>
<li><label for="delcert">{{ _('Remove associated certificate:') }}&nbsp;</label><input type="checkbox" id="delcert" name="delcert"></li>
<li><label for="revoke">{{ _('Revoke associated certificate:') }}&nbsp;</label><input type="checkbox" id="revoke" name="revoke" ng-disabled="!revokeEnabled"></li>
</div>
{% endif -%}
</div>

View file

@ -2,27 +2,29 @@
<div id="navbar-config">
<h4>{{ _('Configuration navigation') }}</h4>
<ul class="nav nav-sidebar bui-scrollspy">
<li class="active" data-target="#boolean"><a href="#boolean">Booleans</a></li>
<li data-target="#string"><a href="#string">Strings</a></li>
<li data-target="#integer"><a href="#integer">Integers</a></li>
<li data-target="#multi"><a href="#multi">Multi</a></li>
<li data-target="#includes_source"><a href="#includes_source">Source files</a></li>
<li class="active" data-target="#boolean"><a href="#boolean">{{ _('Booleans') }}</a></li>
<li data-target="#string"><a href="#string">{{ _('Strings') }}</a></li>
<li data-target="#integer"><a href="#integer">{{ _('Integers') }}</a></li>
<li data-target="#multi"><a href="#multi">{{ _('Multi') }}</a></li>
<li data-target="#includes_source"><a href="#includes_source">{{ _('Source files') }}</a></li>
</ul>
<h4>{{ _('Client to configure') }}</h4>
<ul class="nav nav-sidebar" ng-cloak>
{% raw %}
<li>
<ui-select ng-model="client.selected" style="width: 100%;" on-select="selectClient($item, $select)">
<ui-select-match placeholder="Select a client">{{ $select.selected.name }}</ui-select-match>
<ui-select-match placeholder="{{ _('Select a client') }}">
{% raw -%}
{{ $select.selected.name }}
</ui-select-match>
<ui-select-choices repeat="client in clients | filter: {name: $select.search}">
<div ng-bind-html="client.name | highlight: $select.search"></div>
<small>
config: <span ng-bind-html="''+client.value | highlight: $select.search"></span>
{% endraw -%}
{{ _('config:') }} <span ng-bind-html="''+client.value | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
</li>
{% endraw %}
</ul>
<ul class="nav nav-sidebar">
<li>

View file

@ -7,7 +7,7 @@
{% if not settings and not me -%}
<div class="btn-group btn-group-justified hidden-md hidden-lg">
{% if backup -%}
<a class="btn btn-default {% if overview %}active{% endif %}" href="{{ url_for('view.client_browse', name=cname, server=server, backup=nbackup) }}"><span class="glyphicon glyphicon-th"></span>&nbsp;Overview</a>
<a class="btn btn-default {% if overview %}active{% endif %}" href="{{ url_for('view.client_browse', name=cname, server=server, backup=nbackup) }}"><span class="glyphicon glyphicon-th"></span>&nbsp;{{ _('Overview') }}</a>
{% elif client -%}
<a class="btn btn-default {% if overview %}active{% endif %}" href="{{ url_for('view.client', name=cname, server=server) }}"><span class="glyphicon glyphicon-th"></span>&nbsp;{{ _('Overview') }}</a>
{% elif clients -%}

View file

@ -13,7 +13,7 @@
<table class="table table-striped table-hover nowrap" id="table-sessions" width="100%">
<thead>
<tr>
<th>IP</th>
<th>{{ _('IP') }}</th>
<th>{{ _('Last seen') }}</th>
<th>{{ _('User-Agent') }}</th>
<th>{{ _('API Login') }}</th>

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-12-30 09:40+0100\n"
"POT-Creation-Date: 2017-01-20 08:31+0100\n"
"PO-Revision-Date: 2016-08-25 15:19+0200\n"
"Last-Translator: Ziirish <hi+burpui@ziirish.me>\n"
"Language: fr\n"
@ -18,11 +18,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: burpui/app.py:465
#: burpui/app.py:471
msgid "Please log in to access this page."
msgstr "Veuillez vous authentifier pour accéder à cette page."
#: burpui/app.py:468
#: burpui/app.py:474
msgid "Please reauthenticate to access this page."
msgstr "Veuillez vous ré-authentifier pour accéder à cette page."
@ -43,23 +43,23 @@ msgstr "Langue"
msgid "Remember me"
msgstr "Rester connecté"
#: burpui/routes.py:186 burpui/routes.py:193
#: burpui/routes.py:188 burpui/routes.py:195
msgid "Sorry, there are no running backups"
msgstr "Désolé, il n&#39;y a pas de backups"
#: burpui/routes.py:213 burpui/routes.py:251
#: burpui/routes.py:215 burpui/routes.py:253
msgid "Sorry, there are no restore file found for this client"
msgstr "Désolé, il n&#39;y a pas restoration prévue pour ce client"
#: burpui/routes.py:410
#: burpui/routes.py:412
msgid "Logged in successfully"
msgstr "Connecté avec succès"
#: burpui/routes.py:420
#: burpui/routes.py:422
msgid "Wrong username or password"
msgstr "Mauvais nom d&#39;utilisateur ou mot de passe"
#: burpui/routes.py:422
#: burpui/routes.py:424
msgid "Wrong CSRF token, please try again"
msgstr "Mauvais token CSRF, veuillez réessayer"
@ -993,34 +993,85 @@ msgstr "Parcourir l'"
msgid "Administration"
msgstr "Administration"
#: burpui/templates/client-browse.html:8 burpui/templates/client.html:8
#: burpui/templates/client.html:12 burpui/templates/clients.html:8
#: burpui/templates/clients.html:11 burpui/templates/servers.html:7
#: burpui/templates/backup-report.html:8 burpui/templates/backup-report.html:13
#: burpui/templates/calendar.html:8 burpui/templates/calendar.html:11
#: burpui/templates/client-browse.html:8 burpui/templates/client-report.html:8
#: burpui/templates/client-report.html:12 burpui/templates/client.html:8
#: burpui/templates/client.html:12 burpui/templates/clients-report.html:8
#: burpui/templates/clients-report.html:11 burpui/templates/clients.html:8
#: burpui/templates/clients.html:11 burpui/templates/live-monitor.html:5
#: burpui/templates/servers-report.html:7 burpui/templates/servers.html:7
#: burpui/templates/settings.html:8
msgid "Home"
msgstr "Accueil"
#: burpui/templates/client-browse.html:9
#: burpui/templates/backup-report.html:9 burpui/templates/client-browse.html:9
#: burpui/templates/client-report.html:9 burpui/templates/client.html:9
#: burpui/templates/clients-report.html:9 burpui/templates/clients.html:9
#, python-format
msgid "%(server)s clients"
msgstr "Clients de %(server)s"
#: burpui/templates/backup-report.html:10
#: burpui/templates/backup-report.html:14
#: burpui/templates/client-browse.html:10
#: burpui/templates/client-browse.html:14
#: burpui/templates/client-report.html:10
#: burpui/templates/client-report.html:13 burpui/templates/client.html:10
#: burpui/templates/client.html:13
#, python-format
msgid "%(client)s overview"
msgstr "Aperçu de %(client)s"
#: burpui/templates/backup-report.html:11
#: burpui/templates/backup-report.html:15
#: burpui/templates/client-browse.html:11
#: burpui/templates/client-browse.html:15
#, python-format
msgid "Backup n°%(number)s overview"
msgstr "Sauvegarde n°%(number)s"
#: burpui/templates/backup-report.html:19
#: burpui/templates/client-browse.html:19
#, python-format
msgid "Backup n°%(number)s of %(client)s"
msgstr "Sauvegarde n°%(number)s de %(client)s"
#: burpui/templates/backup-report.html:25
#: burpui/templates/client-report.html:23 burpui/templates/live-monitor.html:79
msgid "New"
msgstr "Nouveaux"
#: burpui/templates/backup-report.html:31
#: burpui/templates/client-report.html:29 burpui/templates/live-monitor.html:80
msgid "Changed"
msgstr "Changés"
#: burpui/templates/backup-report.html:37
#: burpui/templates/client-report.html:35 burpui/templates/live-monitor.html:81
msgid "Unchanged"
msgstr "Inchangés"
#: burpui/templates/backup-report.html:43
#: burpui/templates/client-report.html:41 burpui/templates/live-monitor.html:82
msgid "Deleted"
msgstr "Supprimés"
#: burpui/templates/backup-report.html:49
#: burpui/templates/client-report.html:47
msgid "Total"
msgstr "Totaux"
#: burpui/templates/backup-report.html:55
#: burpui/templates/client-report.html:53 burpui/templates/live-monitor.html:83
msgid "Scanned"
msgstr "Scannés"
#: burpui/templates/calendar.html:9 burpui/templates/calendar.html:12
#: burpui/templates/sidebar.html:43 burpui/templates/small_topbar.html:31
msgid "Calendar"
msgstr "Calendrier"
#: burpui/templates/client-browse.html:24
msgid "filter..."
msgstr "filtrer..."
@ -1060,7 +1111,7 @@ msgstr ""
msgid "Load all nodes"
msgstr "Pré-charger tous les nœuds"
#: burpui/templates/client-browse.html:48
#: burpui/templates/client-browse.html:48 burpui/templates/settings.html:17
msgid "Loading, Please wait..."
msgstr "Chargement, veuillez patienter..."
@ -1146,15 +1197,24 @@ msgstr "Erreur de restauration"
msgid "An error occurred while processing the restoration."
msgstr "Une erreur s'est produite lors de la restauration."
#: burpui/templates/client.html:10 burpui/templates/client.html:13
msgid "overview"
msgstr "aperçu"
#: burpui/templates/client-report.html:59
msgid "Statistics"
msgstr "Statistiques"
#: burpui/templates/client.html:19
msgid "Backups"
msgstr "Sauvegardes"
#: burpui/templates/client.html:21 burpui/templates/client.html:32
msgid "Number"
msgstr "Numéro"
#: burpui/templates/client.html:22 burpui/templates/client.html:33
msgid "Date"
msgstr "Date"
#: burpui/templates/client.html:23 burpui/templates/client.html:34
#: burpui/templates/live-monitor.html:56 burpui/templates/live-monitor.html:62
msgid "Bytes received"
msgstr "Octets reçus"
@ -1166,13 +1226,14 @@ msgstr "Taille (estimation)"
msgid "Deletable"
msgstr "Supprimable"
#: burpui/templates/client.html:44
msgid "Sorry!"
msgstr "Désolé!"
#: burpui/templates/client.html:26 burpui/templates/client.html:37
#: burpui/templates/clients.html:17 burpui/templates/servers.html:18
msgid "Status"
msgstr "Status"
#: burpui/templates/client.html:44
msgid "There are no backups for this client."
msgstr "Il n'y a pas de sauvegardes pour ce client."
msgid "<strong>Sorry!</strong> There are no backups for this client."
msgstr "<strong>Désolé !</strong> Il n'y a pas de sauvegardes pour ce client."
#: burpui/templates/client.html:50
msgid "Edit restore"
@ -1186,6 +1247,33 @@ msgstr "Planifier sauvegarde"
msgid "Cancel backup"
msgstr "Annuler sauvegarde"
#: burpui/templates/clients-report.html:15
msgid "Global server report"
msgstr "Rapport global du serveur"
#: burpui/templates/clients-report.html:21
msgid "Clients repartition"
msgstr "Répartition des clients"
#: burpui/templates/clients-report.html:27
#: burpui/templates/servers-report.html:22
msgid "Used space"
msgstr "Espace disque"
#: burpui/templates/clients-report.html:33
#: burpui/templates/servers-report.html:28
msgid "Total files"
msgstr "Nombre de fichiers"
#: burpui/templates/clients-report.html:39
#: burpui/templates/servers-report.html:34
msgid "Number of backups"
msgstr "Nombre de sauvegardes"
#: burpui/templates/clients.html:15 burpui/templates/servers.html:17
msgid "Clients"
msgstr "Clients"
#: burpui/templates/clients.html:22 burpui/templates/servers.html:16
msgid "Name"
msgstr "Nom"
@ -1198,6 +1286,38 @@ msgstr "État"
msgid "Last Backup"
msgstr "Dernière sauvegarde"
#: burpui/templates/live-monitor.html:6 burpui/templates/topbar.html:49
msgid "Live monitor"
msgstr "Moniteur temps réél"
#: burpui/templates/live-monitor.html:11
msgid ""
"{{ ::client.client }}<span ng-if=\"client.agent\"> on {{ ::client.agent "
"}}</span>"
msgstr ""
"{{ ::client.client }}<span ng-if=\"client.agent\"> sur {{ ::client.agent "
"}}</span>"
#: burpui/templates/live-monitor.html:21
msgid "Path"
msgstr "Chemin"
#: burpui/templates/live-monitor.html:34
msgid "Phase"
msgstr "Phase"
#: burpui/templates/live-monitor.html:40
msgid "Time left"
msgstr "Temps restant"
#: burpui/templates/live-monitor.html:46
msgid "Warning<span ng-if=\"client.counters.warning > 1\">s</span>"
msgstr "Problème<span ng-if=\"client.counters.warning > 1\">s</span>"
#: burpui/templates/live-monitor.html:68
msgid "Speed"
msgstr "Vitesse"
#: burpui/templates/login.html:7
msgid "Login"
msgstr "Se connecter"
@ -1216,10 +1336,77 @@ msgstr ""
" Vous pouvez vous connecter avec les comptes "
"<em>admin</em> / <em>admin</em> ou <em>demo</em> / <em>demo</em>.\n"
#: burpui/templates/servers-report.html:10
msgid "Global report"
msgstr "Rapport global"
#: burpui/templates/servers-report.html:16
msgid "Clients repartition per server"
msgstr "Répartition des clients par serveur"
#: burpui/templates/servers.html:10 burpui/templates/topbar.html:23
msgid "Servers"
msgstr "Serveurs"
#: burpui/templates/settings.html:9
#, python-format
msgid "Burp Configuration of %(server)s"
msgstr "Configuration Burp de %(server)s"
#: burpui/templates/settings.html:11
msgid "Burp Configuration"
msgstr "Configuration Burp"
#: burpui/templates/settings.html:31 burpui/templates/sideconfig.html:5
msgid "Booleans"
msgstr "Booléens"
#: burpui/templates/settings.html:49 burpui/templates/settings.html:91
#: burpui/templates/settings.html:128 burpui/templates/settings.html:170
msgid "Select an option"
msgstr "Choisissez une option"
#: burpui/templates/settings.html:70 burpui/templates/sideconfig.html:6
msgid "Strings"
msgstr "Chaînes"
#: burpui/templates/settings.html:112 burpui/templates/sideconfig.html:7
msgid "Integers"
msgstr "Nombres"
#: burpui/templates/settings.html:149 burpui/templates/sideconfig.html:8
msgid "Multi"
msgstr "Valeurs multiples"
#: burpui/templates/settings.html:191
msgid "Source external configuration files"
msgstr ""
#: burpui/templates/settings.html:197 burpui/templates/settings.html:220
msgid "source config"
msgstr "Charger configuration"
#: burpui/templates/settings.html:229 burpui/templates/user.html:59
msgid "Submit"
msgstr "Envoyer"
#: burpui/templates/settings.html:234
#, python-format
msgid "Remove '%(client)s'"
msgstr "Supprimer '%(client)s'"
#: burpui/templates/settings.html:237
msgid "Do not remove the configuration:"
msgstr "Ne pas supprimer la configuration :"
#: burpui/templates/settings.html:238
msgid "Remove associated certificate:"
msgstr "Supprimer les certificats associés :"
#: burpui/templates/settings.html:239
msgid "Revoke associated certificate:"
msgstr "Révoquer les certificats associés :"
#: burpui/templates/sideadmin.html:3
msgid "Administration navigation"
msgstr "Navigation"
@ -1239,9 +1426,9 @@ msgstr "Contrôles d'accès"
#: burpui/templates/sidebar.html:18 burpui/templates/sidebar.html:20
#: burpui/templates/sidebar.html:22 burpui/templates/sidebar.html:24
#: burpui/templates/sidebar.html:26 burpui/templates/small_topbar.html:12
#: burpui/templates/small_topbar.html:14 burpui/templates/small_topbar.html:16
#: burpui/templates/small_topbar.html:18
#: burpui/templates/sidebar.html:26 burpui/templates/small_topbar.html:10
#: burpui/templates/small_topbar.html:12 burpui/templates/small_topbar.html:14
#: burpui/templates/small_topbar.html:16 burpui/templates/small_topbar.html:18
msgid "Overview"
msgstr "Aperçu"
@ -1253,19 +1440,27 @@ msgstr "Aperçu"
msgid "Reports"
msgstr "Rapports"
#: burpui/templates/sidebar.html:43 burpui/templates/small_topbar.html:31
msgid "Calendar"
msgstr "Calendrier"
#: burpui/templates/sideconfig.html:3
msgid "Configuration navigation"
msgstr "Navigation"
#: burpui/templates/sideconfig.html:9
msgid "Source files"
msgstr "Charger les fichiers"
#: burpui/templates/sideconfig.html:11
msgid "Client to configure"
msgstr "Client à configurer"
#: burpui/templates/sideconfig.html:31
#: burpui/templates/sideconfig.html:15
msgid "Select a client"
msgstr "Sélectionner un client"
#: burpui/templates/sideconfig.html:23
msgid "config:"
msgstr "configuration :"
#: burpui/templates/sideconfig.html:33
msgid "Create new client"
msgstr "Créer un nouveau client"
@ -1289,10 +1484,6 @@ msgstr "Afficher menu"
msgid "About"
msgstr "À propos"
#: burpui/templates/topbar.html:49
msgid "Live monitor"
msgstr "Moniteur temps réél"
#: burpui/templates/topbar.html:64 burpui/templates/user.html:7
msgid "User settings"
msgstr "Paramètres utilisateur"
@ -1309,6 +1500,10 @@ msgstr "Rafraîchir"
msgid "Search client..."
msgstr "Rechercher client..."
#: burpui/templates/user.html:16
msgid "IP"
msgstr "IP"
#: burpui/templates/user.html:17
msgid "Last seen"
msgstr "Dernière visite"
@ -1353,10 +1548,6 @@ msgstr "Nouveau mot de passe (confirmation)"
msgid "Cancel"
msgstr "Annuler"
#: burpui/templates/user.html:59
msgid "Submit"
msgstr "Envoyer"
#: burpui/templates/user.html:82
msgid "You are about to revoke a session, are you sure?"
msgstr "Vous êtes sur le point de révoquer une session, êtes vous sûr ?"
@ -1379,11 +1570,11 @@ msgstr "Réduire l&#39;arborescence"
#: burpui/templates/js/client-browse.js:307
msgid "Loading"
msgstr ""
msgstr "Chargement"
#: burpui/templates/js/client-browse.js:313
msgid "Nodes loaded"
msgstr ""
msgstr "Arborescence chargée"
#: burpui/templates/js/client.js:97
msgid "Encrypted backup"
@ -1420,3 +1611,18 @@ msgstr "maintenant"
#~ msgid ""
#~ msgstr ""
#~ msgid "overview"
#~ msgstr "aperçu"
#~ msgid "Sorry!"
#~ msgstr "Désolé!"
#~ msgid "There are no backups for this client."
#~ msgstr "Il n'y a pas de sauvegardes pour ce client."
#~ msgid "Source external configuration files"
#~ msgstr "Charger des configurations externes"
#~ msgid "Source configuration files"
#~ msgstr ""