translation fix, master merged

This commit is contained in:
Arvind Tiwari 2017-09-01 23:13:54 +05:30
commit b622e53313
16 changed files with 254 additions and 154 deletions

View file

@ -972,6 +972,10 @@ tech-sub-sec h2 {
.navbar-default .navbar-nav>.open>a:focus,
.navbar-default .navbar-nav>.open>a:hover {
background: transparent;
}
.navbar-transparent .navbar-nav>.open>a,
.navbar-transparent .navbar-nav>.open>a:focus,
.navbar-transparent .navbar-nav>.open>a:hover {
color: #fff;
}

View file

@ -86,17 +86,29 @@
}
function _initNavUrl() {
$('.url-init').each(function(idx, el) {
var $this = $(el);
var currentPath = window.location.pathname;
var thisPaths = $this.attr('href').split('#')
if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) {
$this.removeClass('url-init');
$this.attr('href', '');
} else if ($('#'+thisPaths[1]).length) {
$this.removeClass('url-init').addClass('url');
$this.attr('href', '#' + thisPaths[1]);
} else {
$this.removeClass('url-init');
}
});
$('.url').click(function(event) {
event.preventDefault();
var href = $(this).attr('data-url');
var href = $(this).attr('href');
$('.navbar-collapse').removeClass('in');
$('.navbar-collapse').addClass('collapsing');
if ($(href).length) {
$('html, body').animate({
scrollTop: $(href).offset().top
}, 1000);
} else {
window.location.href = '/datacenterlight' + href;
}
});
}

View file

@ -2,52 +2,37 @@
{% get_current_language as LANGUAGE_CODE %}
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<ul class="list-inline">
{% if request.resolver_match.url_name != "index" %}
<li>
<a href="{% url 'datacenterlight:index' %}">{% trans "Home" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
{% endif %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#how">{% trans "Highlights" %}</a>
</li>
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#your">{% trans "Scale out" %}</a>
</li>
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#our">{% trans "Reliable and light" %}</a>
</li>
{% if request.resolver_match.url_name != "index" %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Pricing" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
{% else %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Order VM" %}</a>
</li>
{% endif %}
<li>
<a class="url-init" href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a>
</li>
</ul>
<ul class="list-inline">
{% if request.resolver_match.url_name == "index" %}
<li>
<a class="url" href="javascript:void(0)" data-url="#how" >{% trans "Highlights" %}</a>
</li>
<li>
<a class="url" href="javascript:void(0)" data-url="#your" >{% trans "Scale out" %}</a>
</li>
<li>
<a class="url" href="javascript:void(0)" data-url="#our">{% trans "Reliable and light" %}</a>
</li>
<li>
<a class="url" href="javascript:void(0)" data-url="#price" >{% trans "Order VM" %}</a>
</li>
<li>
<a class="url" href="javascript:void(0)" data-url="#contact" >{% trans "Contact" %}</a>
</li>
{% else %}
<li>
<a href="{% url 'datacenterlight:index' %}">{% trans "Home" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a href="{% url 'datacenterlight:index' %}#how">{% trans "Highlights" %}</a></li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a href="{% url 'datacenterlight:index' %}#your">{% trans "Scale out" %}</a></li>
<li>&sdot;</li>
<li>
<a href="{% url 'datacenterlight:index' %}#our">{% trans "Reliable and light" %}</a></li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a href="{% url 'datacenterlight:index' %}#price">{% trans "Pricing" %}</a>
</li>
<li class="footer-menu-divider">&sdot;</li>
<li>
<a href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a>
</li>
{% endif %}
</ul>
<p class="copyright text-muted small">Copyright &copy; ungleich GmbH {% now "Y" %}. {% trans "All Rights Reserved" %}</p>
</div>
</div>
<p class="copyright text-muted small">Copyright &copy; ungleich GmbH {% now "Y" %}. {% trans "All Rights Reserved" %}</p>
</div>
</footer>

View file

@ -1,99 +1,47 @@
{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} {% load custom_tags %}
{% load staticfiles i18n%} {% load custom_tags %} {% get_current_language as LANGUAGE_CODE %}
<nav class="navbar navbar-default navbar-fixed-top topnav">
<div class="topnav">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% if request.resolver_match.url_name == "index" or request.resolver_match.url_name == "whydatacenterlight" %}
<a href="{% url 'datacenterlight:index' %}" id="logoBlack" class="navbar-brand topnav" data-url="#home"><img
src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="{% url 'datacenterlight:index' %}" id="logoWhite" class="navbar-brand topnav" data-url="#home"><img
src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
{% else %}
<a href="{% url 'datacenterlight:index' %}" id="logoBlack" class="navbar-brand topnav"><img
src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="{% url 'datacenterlight:index' %}" id="logoWhite" class="navbar-brand topnav"><img
src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
{% endif %}
<a href="{% url 'datacenterlight:index' %}" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
<a href="{% url 'datacenterlight:index' %}" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><!-- Start Navbar collapse-->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<!-- Start Navbar collapse-->
<ul class="nav navbar-nav navbar-right">
{% if request.resolver_match.url_name == "index" or request.resolver_match.url_name == "whydatacenterlight" %}
<li class="dropdown">
<a class="dropdown-toggle visible-mobile" href="#" data-toggle="dropdown" role="button"
aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span
class="caret"></span></a>
<a class="dropdown-toggle url disabled visible-desktop menu-url" data-url="#how"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a class="url menu-url" data-url="#your" href="#your">{% trans "Scale out" %}</a></li>
<li><a class="url menu-url" data-url="#our" href="#our">{% trans "Reliable and light" %}</a>
</li>
<li><a class="url menu-url" data-url="#price" href="#price">{% trans "Order VM" %}</a></li>
<li class="dropdown highlights-dropdown">
<a class="dropdown-toggle url-init" href="{% url 'datacenterlight:index' %}#how" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}&nbsp;<span class="caret"></span></a>
<ul class="dropdown-menu ">
<li><a class="url-init" href="{% url 'datacenterlight:index' %}#your">{% trans "Scale out" %}</a></li>
<li><a class="url-init" href="{% url 'datacenterlight:index' %}#our">{% trans "Reliable and light" %}</a></li>
<li> <a class="url-init" href="{% url 'datacenterlight:index' %}#price">{% trans "Order VM" %}</a></li>
</ul>
</li>
<li>
<a href="{% url 'datacenterlight:whydatacenterlight' %}">{% trans "Why Data Center Light?" %}</a>
</li>
<li>
<a class="url" href="{% url 'datacenterlight:index' %}#contact" data-url="#contact">{% trans "Contact" %}</a>
<a class="url-init" href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a>
</li>
{% else %}
<li class="dropdown">
<a class="dropdown-toggle visible-mobile" href="#" data-toggle="dropdown" role="button"
aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span
class="caret"></span></a>
<a class="dropdown-toggle url disabled visible-desktop menu-url" data-url="#how"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a class="url menu-url" data-url="#your"
href="{% url 'datacenterlight:whydatacenterlight' %}#your">{% trans "Scale out" %}</a>
</li>
<li><a class="url menu-url" data-url="#our"
href="{% url 'datacenterlight:whydatacenterlight' %}#our">{% trans "Reliable and light" %}
</a></li>
<li><a class="url menu-url" data-url="#price"
href="{% url 'datacenterlight:whydatacenterlight' %}#price">{% trans "Order VM" %}</a>
</li>
</ul>
</li>
<li>
<a href="{% url 'datacenterlight:whydatacenterlight' %}">{% trans "Why Data Center Light?" %}</a>
</li>
<li>
<a class="url" href="{% url 'datacenterlight:index' %}#contact" data-url="#contact">{% trans "Contact" %}</a>
</li>
{% endif %}
<li>
{% if LANGUAGE_CODE == 'en-us'%}
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch&nbsp;&nbsp;<i class="fa fa-globe"
aria-hidden="true"></i></a>
{% else %}
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English&nbsp;&nbsp;<i
class="fa fa-globe" aria-hidden="true"></i></a>
{% endif %}
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% else %}
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English&nbsp;&nbsp;<i class="fa fa-globe" aria-hidden="true"></i></a> {% endif %}
</li>
{% comment %}
<!-- to be used when more than one option for language -->
<li class="nav-language">
<div class="dropdown">
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button"
aria-haspopup="true" aria-expanded="false">
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{% if LANGUAGE_CODE == 'en-us'%}
<span>English</span>
{% else %}
<span>Deutsch</span>
{% endif %}
<span>English</span> {% else %}
<span>Deutsch</span> {% endif %}
<i class="fa fa-globe" aria-hidden="true"></i>
</div>
<ul class="dropdown-menu drop-language dropdown-menu-right">
@ -107,7 +55,6 @@
</li>
{% endcomment %}
</ul>
<!-- /.navbar-collapse -->
</div>
<!-- /.navbar-collapse -->
</div>
</nav>

View file

@ -16,10 +16,10 @@
<hr class="intro-divider">
<ul class="list-inline intro-social-buttons">
<li>
<a class="btn btn-default btn-lg btn-transparent url" href="javascript:void(0)" data-url="#how" ><i class="#Services"></i> <span class="network-name">{% trans "Highlights" %}</span></a>
<a class="btn btn-default btn-lg btn-transparent url" href="#how"><i class="#Services"></i> <span class="network-name">{% trans "Highlights" %}</span></a>
</li>
<li>
<a class="btn btn-primary btn-lg page-scroll url" href="javascript:void(0)" data-url="#price" ><span class="network-name">{% trans "I want it!" %}</span></a>
<a class="btn btn-primary btn-lg page-scroll url" href="#price"><span class="network-name">{% trans "I want it!" %}</span></a>
</li>
</ul>
</div>

View file

@ -2,6 +2,11 @@
{% load staticfiles bootstrap3 %}
{% load i18n %}
{% load custom_tags %}
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %}
{% endblock navbar %}
{% block content %}
<div class="order-detail-container">
@ -72,13 +77,15 @@
</div>
<br/>
<form method="post">
{% csrf_token %}
<div class="col-md-8 col-xs-7 pull-left tbl-no-padding">
<p class="dcl-place-order-text">{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.</p>
</div>
<div class="col-md-4 col-xs-5 content tbl-no-padding">
<a href="{{next_url}}" ><button class="btn btn-info pull-right">{% trans "Place order"%}</button></a>
</div>
{% csrf_token %}
<div class="row">
<div class="col-sm-8">
<p class="dcl-place-order-text">{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.</p>
</div>
<div class="col-sm-4 content">
<a href="{{next_url}}" ><button class="btn btn-info pull-right">{% trans "Place order"%}</button></a>
</div>
</div>
</form>
</div>
</div>

View file

@ -554,7 +554,7 @@ class OrderConfirmationView(DetailView):
stripe_subscription_obj = subscription_result.get('response_object')
# Check if the subscription was approved and is active
if stripe_subscription_obj is None or \
stripe_subscription_obj.status != 'active':
stripe_subscription_obj.status != 'active':
msg = subscription_result.get('error')
messages.add_message(self.request, messages.ERROR, msg,
extra_tags='failed_payment')

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-31 15:51+0530\n"
"POT-Creation-Date: 2017-08-31 23:46+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -278,9 +278,6 @@ msgstr ""
msgid "See Invoice"
msgstr "Rechnung"
msgid "View Detail"
msgstr "Details anzeigen"
msgid "Page"
msgstr ""
@ -357,10 +354,10 @@ msgid "Type"
msgstr "Kartentyp"
msgid "REMOVE CARD"
msgstr ""
msgstr "KARTE ENTFERNEN"
msgid "EDIT CARD"
msgstr ""
msgstr "BEARBEITEN"
msgid "Add a new Card."
msgstr "Neue Kreditkarte hinzufügen."
@ -397,9 +394,6 @@ msgstr ""
"Du kannst deinen privaten SSH Schlüssel nur einmal herunterladen. Beware ihn "
"sicher auf."
msgid "Your SSH Keys"
msgstr "Deine SSH Keys"
msgid ""
"To generate a new key pair or to upload your existing key, click 'Add Key'"
msgstr ""
@ -496,6 +490,9 @@ msgstr "Um eine neue VM zu erzeugen, klicke \"Neue VM erzeugen\""
msgid "CREATE VM"
msgstr "NEUE VM"
msgid "View Detail"
msgstr "Details anzeigen"
msgid "login"
msgstr "Einloggen"
@ -534,6 +531,9 @@ msgid ""
"contact Data Center Light Support."
msgstr "Kontaktiere den Data Center Light Support."
#~ msgid "Your SSH Keys"
#~ msgstr "Deine SSH Keys"
#~ msgid "Approved"
#~ msgstr "Akzeptiert"

View file

@ -1,3 +1,9 @@
@media (min-width: 768px) {
.navbar-right {
margin-right: 10px;
}
}
.dashboard-container {
padding-top:70px;
padding-bottom: 70px;

View file

@ -39,11 +39,28 @@ h6 {
.topnav {
font-size: 14px;
}
.topnav .navbar-fixed-top .navbar-collapse {
max-height: 740px;
}
.navbar-brand {
padding: 10px 15px;
}
.navbar-default {
background: #fff;
box-shadow: 0 3px 3px -2px hsla(0,0%,78%,.72);
}
.navbar-default .navbar-header {
position: relative;
z-index: 1;
}
.navbar-transparent {
background: transparent;
border: none;
padding: 20px;
box-shadow: none;
}
.navbar-transparent.topnav {
@ -71,6 +88,42 @@ h6 {
/* color: #fff; */
}
.navbar-right .highlights-dropdown .dropdown-menu {
left: 0 !important;
min-width: 155px;
margin-left: 15px;
padding: 5px !important;
}
@media(min-width: 768px) {
.navbar-right .highlights-dropdown .dropdown-menu {
border: 1px solid #fff;
}
.navbar-right .highlights-dropdown .dropdown-menu:before {
content: '';
display: block;
height: 1px;
background: #e7e7e7;
position: absolute;
top: -1px;
left: -1px;
right: -1px;
}
}
.navbar-right .highlights-dropdown .dropdown-menu > li > a{
font-size: 13px;
font-weight: 300;
font-family: 'Lato', sans-serif;
padding: 1px 10px !important;
background: transparent;
color: #333;
}
.navbar-right .highlights-dropdown .dropdown-menu > li > a:hover,
.navbar-right .highlights-dropdown .dropdown-menu > li > a:focus,
.navbar-right .highlights-dropdown .dropdown-menu > li > a:active {
background: transparent;
text-decoration: underline !important;
}
.lead {
font-size: 18px;
font-weight: 400;
@ -536,6 +589,7 @@ a.unlink:hover {
.dcl-place-order-text{
font-size: 13px;
color: #808080;
margin-bottom: 15px;
}
.dcl-order-table-total .tbl-total {
@ -761,6 +815,30 @@ a.unlink:hover {
color: #ddd;
}
.visible-mobile {
display: none !important;
}
@media(max-width:767px) {
.visible-mobile {
display: block !important;
}
.visible-desktop {
display: none !important;
}
}
.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:focus, .navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, .navbar-default .navbar-nav>.active>a:hover {
background-color: transparent;
}
@media (max-width: 767px) {
.navbar-default .navbar-nav .open .dropdown-menu>.active>a, .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus, .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover {
background-color: transparent;
}
}
/* bootstrap danger color override from #a94442 */
.text-danger,
.has-error .help-block,

View file

@ -163,8 +163,8 @@
/* margin-left: 0; */
}
.col-md-12, .col-sm-12{
padding-left: 5px;
padding-right: 5px;
/*padding-left: 5px;*/
/*padding-right: 5px;*/
}
}
@media (max-width: 360px){
@ -172,8 +172,8 @@
/* width: 100% !important; */
}
.container {
padding-right: 5px;
padding-left: 5px;
/*padding-right: 5px;
padding-left: 5px;*/
}
}
.dashboard-choice-container {

View file

@ -1,5 +1,59 @@
$( document ).ready(function() {
// also declared in datacenterlight/js/main.js
function _initNavUrl() {
// $('.url').click(function(event) {
// event.preventDefault();
// var href = $(this).attr('href');
// $('.navbar-collapse').removeClass('in');
// $('.navbar-collapse').addClass('collapsing');
// if ($(href).length) {
// $('html, body').animate({
// scrollTop: $(href).offset().top
// }, 1000);
// } else {
// window.location.href = '/datacenterlight' + href;
// }
// });
$('.url-init').each(function(idx, el) {
var $this = $(el);
var currentPath = window.location.pathname;
var thisPaths = $this.attr('href').split('#')
if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) {
$this.removeClass('url-init');
$this.attr('href', '');
} else if ($('#'+thisPaths[1]).length) {
$this.removeClass('url-init').addClass('url');
$this.attr('href', '#' + thisPaths[1]);
} else {
$this.removeClass('url-init');
}
});
$('.url').click(function(event) {
event.preventDefault();
var href = $(this).attr('href');
$('.navbar-collapse').removeClass('in');
$('.navbar-collapse').addClass('collapsing');
if ($(href).length) {
$('html, body').animate({
scrollTop: $(href).offset().top
}, 1000);
}
});
}
/* ---------------------------------------------
Nav panel classic
--------------------------------------------- */
if (window.matchMedia("(min-width: 767px)").matches) {
$('ul.nav li.dropdown').hover(function() {
$(this).find('.dropdown-menu').stop(true, true).fadeIn(500);
}, function() {
$(this).find('.dropdown-menu').stop(true, true).fadeOut(500);
});
} else {
/* the viewport is less than 400 pixels wide */
}
$( document ).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
@ -13,6 +67,8 @@ $( document ).ready(function() {
}, 1000);
});
_initNavUrl();
/*
* Replace all SVG images with inline SVG
*/

View file

@ -60,12 +60,14 @@
<div class="container topnav">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% if request.user.is_authenticated %}
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% endif %}
<a class="navbar-brand topnav" href="{% if site_url %}{{site_url}}{% else %}{{ request.session.hosting_url}}{% endif %}"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a>
</div>
{% if request.user.is_authenticated %}

View file

@ -40,7 +40,7 @@
{% endif %}
</td>
<td class="text-right last-td">
<a class="btn btn-order-detail alt-text" href="{% url 'hosting:orders' order.pk %}" data-alt="{% trans 'See Invoice' %}">{% trans "View Detail" %}</a>
<a class="btn btn-order-detail" href="{% url 'hosting:orders' order.pk %}">{% trans 'See Invoice' %}</a>
</td>
</tr>
{% endfor %}

View file

@ -5,6 +5,10 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
{% endblock css_extra %}
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %}
{% endblock navbar %}
{% block content %}
<!-- Credit card form -->
<div class="dcl-order-container">
@ -211,7 +215,6 @@
window.hasCreditcard = true;
})();
</script>
{%endif%}
{%endblock%}

View file

@ -3,7 +3,7 @@
{% block content %}
<div>
<div class="container virtual-machine-container dashboard-container ">
<h1 class="h1-thin"><i class="fa fa-key" aria-hidden="true"></i>&nbsp;{% trans "Your SSH Keys" %}</h1>
<h1 class="h1-thin"><i class="fa fa-key" aria-hidden="true"></i>&nbsp;{% trans "My SSH Keys" %}</h1>
{% if messages %}
<div class="alert alert-warning">
{% for message in messages %}