summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-02-14 23:02:12 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-14 23:02:12 +0100
commit59b5828458c2017909426e8e1fc79b11ae49be6f (patch)
tree1af7a82f1ac51f25a376b8d1dfbd97288c528be0
parent3250e565928377004ab42e5e4ed2fe1327bfd99d (diff)
parent69b50e44ad682ddcc7356d4ccc0c271f606be864 (diff)
downloadwww-59b5828458c2017909426e8e1fc79b11ae49be6f.tar.gz
www-59b5828458c2017909426e8e1fc79b11ae49be6f.tar.bz2
www-59b5828458c2017909426e8e1fc79b11ae49be6f.zip
mering
-rw-r--r--Makefile2
-rw-r--r--common/navigation.j2.inc4
-rw-r--r--dist/css/bootstrap-theme.css457
-rw-r--r--dist/css/bootstrap-theme.css.map1
-rw-r--r--dist/css/bootstrap-theme.min.css5
-rw-r--r--governments.html.j22
-rw-r--r--index.html.j212
-rw-r--r--investors.html.j24
-rw-r--r--justified-nav.css82
-rw-r--r--locale/de/LC_MESSAGES/messages.po236
-rw-r--r--locale/en/LC_MESSAGES/messages.po236
-rw-r--r--locale/es/LC_MESSAGES/messages.po236
-rw-r--r--locale/fr/LC_MESSAGES/messages.po236
-rw-r--r--locale/it/LC_MESSAGES/messages.po236
-rw-r--r--merchants.html.j22
-rw-r--r--taler-small.svg4
-rwxr-xr-xtemplate.py59
-rwxr-xr-xtemplate.sh17
18 files changed, 727 insertions, 1104 deletions
diff --git a/Makefile b/Makefile
index 24f3de50..2f39d063 100644
--- a/Makefile
+++ b/Makefile
@@ -33,4 +33,4 @@ locale: locale-update locale-compile
# Run the jinga2 templating engine to expand templates to HTML
# incorporating translations.
template: locale-compile
- ./template.sh
+ ./template.py
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index 6bb279e2..ab513e4e 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -1,4 +1,4 @@
- <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="navbar navbar-fixed-top navbar-taler" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
<span class="sr-only">Toggle navigation</span>
@@ -10,7 +10,7 @@
<div class="collapse navbar-collapse" id="main-navbar">
<ul class="nav nav-justified">
<li class="m_index"><a href="{{ url_localized('index.html') }}">{{ _("Home") }}</a></li>
- <li class="m_demo btn btn-outline-success"><a href="https://demo.taler.net/" target="_blank">{{ _("Demo") }}</a></li>
+ <li class="m_demo"><a href="https://demo.taler.net/" target="_blank">{{ _("Demo") }}</a></li>
<li class="m_citizens"><a href="{{ url_localized('citizens.html') }}">{{ _("Citizens") }}</a></li>
<li class="m_merchants"><a href="{{ url_localized('merchants.html') }}">{{ _("Merchants") }}</a></li>
<li class="m_governments"><a href="{{ url_localized('governments.html') }}">{{ _("Governments") }}</a></li>
diff --git a/dist/css/bootstrap-theme.css b/dist/css/bootstrap-theme.css
deleted file mode 100644
index b82bd721..00000000
--- a/dist/css/bootstrap-theme.css
+++ /dev/null
@@ -1,457 +0,0 @@
-/*!
- * Bootstrap v3.3.0 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
-}
-.btn-default:active,
-.btn-primary:active,
-.btn-success:active,
-.btn-info:active,
-.btn-warning:active,
-.btn-danger:active,
-.btn-default.active,
-.btn-primary.active,
-.btn-success.active,
-.btn-info.active,
-.btn-warning.active,
-.btn-danger.active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn-default .badge,
-.btn-primary .badge,
-.btn-success .badge,
-.btn-info .badge,
-.btn-warning .badge,
-.btn-danger .badge {
- text-shadow: none;
-}
-.btn:active,
-.btn.active {
- background-image: none;
-}
-.btn-default {
- text-shadow: 0 1px 0 #fff;
- background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
- background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #dbdbdb;
- border-color: #ccc;
-}
-.btn-default:hover,
-.btn-default:focus {
- background-color: #e0e0e0;
- background-position: 0 -15px;
-}
-.btn-default:active,
-.btn-default.active {
- background-color: #e0e0e0;
- border-color: #dbdbdb;
-}
-.btn-default:disabled,
-.btn-default[disabled] {
- background-color: #e0e0e0;
- background-image: none;
-}
-.btn-primary {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #2b669a;
-}
-.btn-primary:hover,
-.btn-primary:focus {
- background-color: #2d6ca2;
- background-position: 0 -15px;
-}
-.btn-primary:active,
-.btn-primary.active {
- background-color: #2d6ca2;
- border-color: #2b669a;
-}
-.btn-primary:disabled,
-.btn-primary[disabled] {
- background-color: #2d6ca2;
- background-image: none;
-}
-.btn-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
- background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #3e8f3e;
-}
-.btn-success:hover,
-.btn-success:focus {
- background-color: #419641;
- background-position: 0 -15px;
-}
-.btn-success:active,
-.btn-success.active {
- background-color: #419641;
- border-color: #3e8f3e;
-}
-.btn-success:disabled,
-.btn-success[disabled] {
- background-color: #419641;
- background-image: none;
-}
-.btn-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
- background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #28a4c9;
-}
-.btn-info:hover,
-.btn-info:focus {
- background-color: #2aabd2;
- background-position: 0 -15px;
-}
-.btn-info:active,
-.btn-info.active {
- background-color: #2aabd2;
- border-color: #28a4c9;
-}
-.btn-info:disabled,
-.btn-info[disabled] {
- background-color: #2aabd2;
- background-image: none;
-}
-.btn-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #e38d13;
-}
-.btn-warning:hover,
-.btn-warning:focus {
- background-color: #eb9316;
- background-position: 0 -15px;
-}
-.btn-warning:active,
-.btn-warning.active {
- background-color: #eb9316;
- border-color: #e38d13;
-}
-.btn-warning:disabled,
-.btn-warning[disabled] {
- background-color: #eb9316;
- background-image: none;
-}
-.btn-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
- background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #b92c28;
-}
-.btn-danger:hover,
-.btn-danger:focus {
- background-color: #c12e2a;
- background-position: 0 -15px;
-}
-.btn-danger:active,
-.btn-danger.active {
- background-color: #c12e2a;
- border-color: #b92c28;
-}
-.btn-danger:disabled,
-.btn-danger[disabled] {
- background-color: #c12e2a;
- background-image: none;
-}
-.thumbnail,
-.img-thumbnail {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- background-color: #e8e8e8;
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- background-color: #357ebd;
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
- background-repeat: repeat-x;
-}
-.navbar-default {
- background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
- background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
- background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
- background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
-}
-.navbar-brand,
-.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
-}
-.navbar-inverse {
- background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
- background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
- background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
- background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
-}
-.navbar-inverse .navbar-brand,
-.navbar-inverse .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
-}
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- border-radius: 0;
-}
-.alert {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
-}
-.alert-success {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
- background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
- background-repeat: repeat-x;
- border-color: #b2dba1;
-}
-.alert-info {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
- background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #9acfea;
-}
-.alert-warning {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #f5e79e;
-}
-.alert-danger {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
- background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dca7a7;
-}
-.progress {
- background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
- background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
- background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
- background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-striped {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.list-group {
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
- text-shadow: 0 -1px 0 #3071a9;
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
- background-repeat: repeat-x;
- border-color: #3278b3;
-}
-.list-group-item.active .badge,
-.list-group-item.active:hover .badge,
-.list-group-item.active:focus .badge {
- text-shadow: none;
-}
-.panel {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
-}
-.panel-default > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-primary > .panel-heading {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-success > .panel-heading {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
- background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-info > .panel-heading {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
- background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-warning > .panel-heading {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-danger > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
- background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
- background-repeat: repeat-x;
-}
-.well {
- background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
- background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dcdcdc;
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
-}
-/*# sourceMappingURL=bootstrap-theme.css.map */
diff --git a/dist/css/bootstrap-theme.css.map b/dist/css/bootstrap-theme.css.map
deleted file mode 100644
index 1ea032ac..00000000
--- a/dist/css/bootstrap-theme.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","bootstrap-theme.css","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAcA;;;;;;EAME,0CAAA;ECgDA,6FAAA;EACQ,qFAAA;EC5DT;AFgBC;;;;;;;;;;;;EC2CA,0DAAA;EACQ,kDAAA;EC7CT;AFVD;;;;;;EAiBI,mBAAA;EECH;AFgCC;;EAEE,wBAAA;EE9BH;AFmCD;EGlDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EA+B2C,2BAAA;EAA2B,oBAAA;EExBvE;AFLC;;EAEE,2BAAA;EACA,8BAAA;EEOH;AFJC;;EAEE,2BAAA;EACA,uBAAA;EEMH;AFHC;;EAEE,2BAAA;EACA,wBAAA;EEKH;AFUD;EGnDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EE+BD;AF7BC;;EAEE,2BAAA;EACA,8BAAA;EE+BH;AF5BC;;EAEE,2BAAA;EACA,uBAAA;EE8BH;AF3BC;;EAEE,2BAAA;EACA,wBAAA;EE6BH;AFbD;EGpDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEuDD;AFrDC;;EAEE,2BAAA;EACA,8BAAA;EEuDH;AFpDC;;EAEE,2BAAA;EACA,uBAAA;EEsDH;AFnDC;;EAEE,2BAAA;EACA,wBAAA;EEqDH;AFpCD;EGrDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EE+ED;AF7EC;;EAEE,2BAAA;EACA,8BAAA;EE+EH;AF5EC;;EAEE,2BAAA;EACA,uBAAA;EE8EH;AF3EC;;EAEE,2BAAA;EACA,wBAAA;EE6EH;AF3DD;EGtDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEuGD;AFrGC;;EAEE,2BAAA;EACA,8BAAA;EEuGH;AFpGC;;EAEE,2BAAA;EACA,uBAAA;EEsGH;AFnGC;;EAEE,2BAAA;EACA,wBAAA;EEqGH;AFlFD;EGvDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EE+HD;AF7HC;;EAEE,2BAAA;EACA,8BAAA;EE+HH;AF5HC;;EAEE,2BAAA;EACA,uBAAA;EE8HH;AF3HC;;EAEE,2BAAA;EACA,wBAAA;EE6HH;AFnGD;;ECfE,oDAAA;EACQ,4CAAA;ECsHT;AF9FD;;EGxEI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHuEF,2BAAA;EEoGD;AFlGD;;;EG7EI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH6EF,2BAAA;EEwGD;AF/FD;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EJ4GA,oBAAA;EC9CA,6FAAA;EACQ,qFAAA;ECoJT;AF1GD;;EG1FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,0DAAA;EACQ,kDAAA;EC8JT;AFvGD;;EAEE,gDAAA;EEyGD;AFrGD;EG7GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EFyOD;AF7GD;;EG7GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,yDAAA;EACQ,iDAAA;ECoLT;AFvHD;;EAYI,2CAAA;EE+GH;AF1GD;;;EAGE,kBAAA;EE4GD;AFnGD;EACE,+CAAA;EC5FA,4FAAA;EACQ,oFAAA;ECkMT;AF3FD;EGvJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH+IF,uBAAA;EEuGD;AFlGD;EGxJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH+IF,uBAAA;EE+GD;AFzGD;EGzJI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH+IF,uBAAA;EEuHD;AFhHD;EG1JI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH+IF,uBAAA;EE+HD;AFhHD;EGlKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDqRH;AF7GD;EG5KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED4RH;AFnHD;EG7KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDmSH;AFzHD;EG9KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED0SH;AF/HD;EG/KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDiTH;AFrID;EGhLI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDwTH;AFxID;EGnJI,+MAAA;EACA,0MAAA;EACA,uMAAA;ED8RH;AFpID;EACE,oBAAA;EC/IA,oDAAA;EACQ,4CAAA;ECsRT;AFrID;;;EAGE,+BAAA;EGpME,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHkMF,uBAAA;EE2ID;AFhJD;;;EAQI,mBAAA;EE6IH;AFnID;ECpKE,mDAAA;EACQ,2CAAA;EC0ST;AF7HD;EG7NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED6VH;AFnID;EG9NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDoWH;AFzID;EG/NI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED2WH;AF/ID;EGhOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDkXH;AFrJD;EGjOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDyXH;AF3JD;EGlOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDgYH;AF3JD;EGzOI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHuOF,uBAAA;EC5LA,2FAAA;EACQ,mFAAA;EC8VT","file":"bootstrap-theme.css","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &:disabled,\n &[disabled] {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n",".btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default:disabled,\n.btn-default[disabled] {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);\n background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);\n background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #2d6ca2;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #2d6ca2;\n border-color: #2b669a;\n}\n.btn-primary:disabled,\n.btn-primary[disabled] {\n background-color: #2d6ca2;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success:disabled,\n.btn-success[disabled] {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info:disabled,\n.btn-info[disabled] {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning:disabled,\n.btn-warning[disabled] {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger:disabled,\n.btn-danger[disabled] {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);\n background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);\n background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);\n background-color: #357ebd;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);\n background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);\n background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #3071a9;\n background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);\n background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);\n background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);\n border-color: #3278b3;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);\n background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);\n background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file
diff --git a/dist/css/bootstrap-theme.min.css b/dist/css/bootstrap-theme.min.css
deleted file mode 100644
index 3bbb0506..00000000
--- a/dist/css/bootstrap-theme.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * Bootstrap v3.3.0 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-o-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#2d6ca2));background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-primary:disabled,.btn-primary[disabled]{background-color:#2d6ca2;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-o-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3071a9));background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-o-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3278b3));background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);background-repeat:repeat-x;border-color:#3278b3}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file
diff --git a/governments.html.j2 b/governments.html.j2
index a9b332f2..2512bb22 100644
--- a/governments.html.j2
+++ b/governments.html.j2
@@ -91,7 +91,7 @@
<h2>{{ _("Efficient") }}</h2>
<p>{{ _("Taler has an efficient design. Unlike
- timeline-based payment systems, such as BitCoin,
+ timeline-based payment systems, such as Bitcoin,
Taler will not threaten the availability of
national electric grids or (significantly)
contribute to environmental pollution.") }}</p>
diff --git a/index.html.j2 b/index.html.j2
index 03c446f3..fd3745ff 100644
--- a/index.html.j2
+++ b/index.html.j2
@@ -18,17 +18,17 @@
<p>{{ _("Taler is an electronic payment system under
development
- at <a href=\"http://www.inria.fr/\">Inria</a>. This
- community Web site provides extensive documentation
- about the system, which we expect to make
- operational in 2017.") }}</p>
+ at <a href=\"http://www.inria.fr/\">Inria</a>. We expect to make it operational in 2017.
+ Meanwhile you can learn about Taler on this website, try the <a href=\"https://demo.taler.net\">demo</a>
+ and look at our <a href=\"https://docs.taler.net\">developer</a> and <a href=\"https://api.taler.net\">API</a> documentation.
+ ") }}</p>
</div>
<div class="row">
<div class="col-lg-4">
<h2>{{ _("<b>T</b>axable") }}</h2>
- <p>{{ _("Unlike BitCoin or cash payments, Taler ensures that
+ <p>{{ _("Unlike Bitcoin or cash payments, Taler ensures that
governments can learn their citizen's total income
and thus collect sales, value-added or income
taxes. Taler is a currency for the mainstream
@@ -75,7 +75,7 @@
wallet holding coins in reserve. Taler's
cryptographic coins correspond to existing
currencies, such as US Dollars, Euros or even
- BitCoins.") }}</p>
+ Bitcoins.") }}</p>
</div>
<div class="col-lg-4">
diff --git a/investors.html.j2 b/investors.html.j2
index 24040cf0..895682f6 100644
--- a/investors.html.j2
+++ b/investors.html.j2
@@ -14,7 +14,7 @@
<h1>{{ _("Invest in Taler!") }}</h1>
<div class="col-lg-12">
<p>{{ _("We have created a company, Taler Systems SA in
- Luxemburgh.<br>
+ Luxemburg.<br>
Please contact <tt>invest@taler.net</tt>
if you want to invest in Taler.") }}</p>
</div>
@@ -53,7 +53,7 @@
<p>{{ _("The scalable business model for Taler is the operation
of the payment service provider, which converts money from
traditional payment systems (Mastercard, SEPA,
- Visa, BitCoin, ACH, SWIFT, etc.) to anonymous
+ Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous
electronic coins in the same currency. The customer
can then redeem the electronic coins at a merchant,
who can exchange them for money represented using
diff --git a/justified-nav.css b/justified-nav.css
index 966c3b5d..b8b8b74c 100644
--- a/justified-nav.css
+++ b/justified-nav.css
@@ -6,7 +6,6 @@ body {
padding-top: 40px;
padding-bottom: 40px;
margin-top: 40px;
- border-top: 1px solid #eee;
}
/* Main marketing message and sign up button */
@@ -22,66 +21,36 @@ body {
/* Customize the nav-justified links to be fill the entire space of the .navbar */
.nav-justified {
- background-color: #eee;
- border: 1px solid #ccc;
- border-radius: 5px;
-/* position:fixed;
- z-index:99;
- top:20;
- right:0;
- left:0;*/
+ background: #fff;
}
.nav-justified > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
- margin-bottom: 0;
- font-weight: bold;
- color: #777;
+ border-radius: 20px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ margin-bottom: 5px;
+ margin-left: 10px;
+ margin-top: 5px;
+ font-weight: normal;
+ color: #000;
text-align: center;
- background-color: #e5e5e5; /* Old browsers */
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e5e5e5));
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
- background-image: -o-linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(top), color-stop(0%, #f5f5f5), to(#e5e5e5));
- background-image: linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#e5e5e5',GradientType=0 ); /* IE6-9 */
- background-repeat: repeat-x; /* Repeat the gradient */
- border-bottom: 1px solid #d5d5d5;
+ font-size: large;
}
+
.nav-justified > .active > a,
.nav-justified > .active > a:hover,
.nav-justified > .active > a:focus {
background-color: #ddd;
- background-image: none;
- -webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.15);
- box-shadow: inset 0 3px 7px rgba(0,0,0,.15);
-}
-.nav-justified > li:first-child > a {
- border-radius: 5px 5px 0 0;
}
-.nav-justified > li:last-child > a {
- border-bottom: 0;
- border-radius: 0 0 5px 5px;
+
+.nav-justified > li > a:hover {
+ transition: background-color 0.3s;
}
-@media (min-width: 768px) {
- .nav-justified {
- max-height: 52px;
- }
- .nav-justified > li > a {
- border-right: 1px solid #d5d5d5;
- border-left: 1px solid #fff;
- }
- .nav-justified > li:first-child > a {
- border-left: 0;
- border-radius: 5px 0 0 5px;
- }
- .nav-justified > li:last-child > a {
- border-right: 0;
- border-radius: 0 5px 5px 0;
- }
+.nav-justified > .m_demo > a {
+ font-weight: bold;
}
+
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
/* Remove the padding we set earlier */
@@ -92,3 +61,20 @@ body {
padding-left: 0;
}
}
+
+.navbar-taler {
+ background-color: #fff;
+ border-bottom: 2px solid #eee;
+}
+
+.navbar-taler .navbar-toggle {
+ border-color: #ddd;
+}
+.navbar-taler .navbar-toggle:hover,
+.navbar-taler .navbar-toggle:focus {
+ background-color: #ddd;
+}
+.navbar-taler .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+
diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po
index 27e79eb9..595641d7 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -3,15 +3,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-13 13:23+0100\n"
+"POT-Creation-Date: 2017-02-14 21:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: de\n"
"Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
+"Generated-By: Babel 2.3.4\n"
#: about.html.j2:2 citizens.html.j2:2 developers.html.j2:2
#: governments.html.j2:2 investors.html.j2:2 merchants.html.j2:2
@@ -20,8 +21,8 @@ msgid "en"
msgstr "de"
#: about.html.j2:5 citizens.html.j2:5 developers.html.j2:5
-#: governments.html.j2:5 index.html.j2:5 investors.html.j2:5
-#: merchants.html.j2:5 wallet.html.j2:5
+#: governments.html.j2:5 investors.html.j2:5 merchants.html.j2:5
+#: wallet.html.j2:5
msgid "GNU Taler"
msgstr "GNU Taler"
@@ -612,7 +613,7 @@ msgstr "Effizient"
#: governments.html.j2:93
msgid ""
"Taler has an efficient design. Unlike\n"
-" timeline-based payment systems, such as BitCoin,\n"
+" timeline-based payment systems, such as Bitcoin,\n"
" Taler will not threaten the availability of\n"
" national electric grids or (significantly)\n"
" contribute to environmental pollution."
@@ -678,105 +679,6 @@ msgid ""
" that Taler collects."
msgstr ""
-#: index.html.j2:6
-msgid "Taxable Anonymous Libre Electronic Reserves"
-msgstr ""
-
-#: index.html.j2:17
-msgid "Independent One-Click Payments!"
-msgstr ""
-
-#: index.html.j2:19
-msgid ""
-"Taler is an electronic payment system under\n"
-"\t development\n"
-"\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
-"\t community Web site provides extensive documentation\n"
-"\t about the system, which we expect to make\n"
-"\t operational in 2017."
-msgstr ""
-
-#: index.html.j2:29
-msgid "<b>T</b>axable"
-msgstr ""
-
-#: index.html.j2:31
-msgid ""
-"Unlike BitCoin or cash payments, Taler ensures that\n"
-"\t governments can learn their citizen's total income\n"
-"\t and thus collect sales, value-added or income\n"
-"\t taxes. Taler is a currency for the mainstream\n"
-"\t economy, and not the black market."
-msgstr ""
-
-#: index.html.j2:39
-msgid "<b>A</b>nonymous"
-msgstr ""
-
-#: index.html.j2:41
-msgid ""
-"When you pay with Taler, your identity does not\n"
-"\t have to be revealed to the merchant. Just like\n"
-"\t payments in cash, nobody else can track how you\n"
-"\t spent your electronic money. However, you obtain a\n"
-"\t legally valid proof of payment."
-msgstr ""
-
-#: index.html.j2:49
-msgid "<b>L</b>ibre"
-msgstr ""
-
-#: index.html.j2:51
-msgid ""
-"Taler is free software\n"
-"\t from <a href=\"http://www.gnu.org/\">the GNU\n"
-"\t project</a> implementing an open protocol. Anybody\n"
-"\t is welcome to inspect our code and integrate our\n"
-"\t reference implementation into their applications."
-msgstr ""
-
-#: index.html.j2:62
-msgid "<b>E</b>lectronic"
-msgstr ""
-
-#: index.html.j2:64
-msgid ""
-"Taler is easy to integrate with existing Web\n"
-"\t applications. Payments are cryptographically\n"
-"\t secured and are confirmed within milliseconds with\n"
-"\t extremely low transaction costs."
-msgstr ""
-
-#: index.html.j2:71
-msgid "<b>R</b>eserves"
-msgstr ""
-
-#: index.html.j2:73
-msgid ""
-"Taler does not introduce a new currency with\n"
-"\t fluctuation risks, and instead uses a digital\n"
-"\t wallet holding coins in reserve. Taler's\n"
-"\t cryptographic coins correspond to existing\n"
-"\t currencies, such as US Dollars, Euros or even\n"
-"\t BitCoins."
-msgstr ""
-
-#: index.html.j2:82
-msgid "Latest Videos"
-msgstr ""
-
-#: index.html.j2:83
-msgid "Florian Dold talks about Taler at 50p!"
-msgstr ""
-
-#: index.html.j2:93
-msgid "Taler News"
-msgstr ""
-
-#: index.html.j2:97
-msgid "Financial News"
-msgstr ""
-
#: investors.html.j2:5
msgid "Investors"
msgstr "Investoren"
@@ -788,7 +690,7 @@ msgstr ""
#: investors.html.j2:16
msgid ""
"We have created a company, Taler Systems SA in \n"
-" Luxemburgh.<br>\n"
+" Luxemburg.<br>\n"
" Please contact <tt>invest@taler.net</tt>\n"
" if you want to invest in Taler."
msgstr ""
@@ -841,7 +743,7 @@ msgid ""
" of the payment service provider, which converts money "
"from\n"
" traditional payment systems (Mastercard, SEPA,\n"
-" Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+" Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous\n"
" electronic coins in the same currency. The customer\n"
" can then redeem the electronic coins at a merchant,\n"
" who can exchange them for money represented using\n"
@@ -980,7 +882,7 @@ msgstr "Flexibel"
#: merchants.html.j2:83
msgid ""
"Taler can be used for different currencies (such as\n"
-"\t Euros, US Dollars or BitCoins) and different\n"
+"\t Euros, US Dollars or Bitcoins) and different\n"
"\t payment models limited only by what the payment\n"
"\t service provider supports in its interactions."
msgstr ""
@@ -1139,3 +1041,123 @@ msgstr ""
#~ msgid "Taler as seen by the exchange operator"
#~ msgstr "Taler aus Betreiberperspektive"
+#~ msgid ""
+#~ "Taler has an efficient design. Unlike\n"
+#~ " timeline-based payment systems, such as BitCoin,\n"
+#~ " Taler will not threaten the availability of\n"
+#~ " national electric grids or (significantly)\n"
+#~ " contribute to environmental pollution."
+#~ msgstr ""
+
+#~ msgid "Taxable Anonymous Libre Electronic Reserves"
+#~ msgstr ""
+
+#~ msgid "Independent One-Click Payments!"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is an electronic payment system under\n"
+#~ "\t development\n"
+#~ "\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
+#~ "\t community Web site provides extensive documentation\n"
+#~ "\t about the system, which we expect to make\n"
+#~ "\t operational in 2017."
+#~ msgstr ""
+
+#~ msgid "<b>T</b>axable"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Unlike BitCoin or cash payments, Taler ensures that\n"
+#~ "\t governments can learn their citizen's total income\n"
+#~ "\t and thus collect sales, value-added or income\n"
+#~ "\t taxes. Taler is a currency for the mainstream\n"
+#~ "\t economy, and not the black market."
+#~ msgstr ""
+
+#~ msgid "<b>A</b>nonymous"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When you pay with Taler, your identity does not\n"
+#~ "\t have to be revealed to the merchant. Just like\n"
+#~ "\t payments in cash, nobody else can track how you\n"
+#~ "\t spent your electronic money. However, you obtain a\n"
+#~ "\t legally valid proof of payment."
+#~ msgstr ""
+
+#~ msgid "<b>L</b>ibre"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is free software\n"
+#~ "\t from <a href=\"http://www.gnu.org/\">the GNU\n"
+#~ "\t project</a> implementing an open protocol. Anybody\n"
+#~ "\t is welcome to inspect our code and integrate our\n"
+#~ "\t reference implementation into their applications."
+#~ msgstr ""
+
+#~ msgid "<b>E</b>lectronic"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is easy to integrate with existing Web\n"
+#~ "\t applications. Payments are cryptographically\n"
+#~ "\t secured and are confirmed within milliseconds with\n"
+#~ "\t extremely low transaction costs."
+#~ msgstr ""
+
+#~ msgid "<b>R</b>eserves"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler does not introduce a new currency with\n"
+#~ "\t fluctuation risks, and instead uses a digital\n"
+#~ "\t wallet holding coins in reserve. Taler's\n"
+#~ "\t cryptographic coins correspond to existing\n"
+#~ "\t currencies, such as US Dollars, Euros or even\n"
+#~ "\t BitCoins."
+#~ msgstr ""
+
+#~ msgid "Latest Videos"
+#~ msgstr ""
+
+#~ msgid "Florian Dold talks about Taler at 50p!"
+#~ msgstr ""
+
+#~ msgid "Taler News"
+#~ msgstr ""
+
+#~ msgid "Financial News"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "We have created a company, Taler Systems SA in \n"
+#~ " Luxemburgh.<br>\n"
+#~ " Please contact <tt>invest@taler.net</tt>\n"
+#~ " if you want to invest in Taler."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The scalable business model for Taler is the operation\n"
+#~ " of the payment service "
+#~ "provider, which converts money from\n"
+#~ " traditional payment systems (Mastercard, SEPA,\n"
+#~ " Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+#~ " electronic coins in the "
+#~ "same currency. The customer\n"
+#~ " can then redeem the "
+#~ "electronic coins at a merchant,\n"
+#~ " who can exchange them for money represented using\n"
+#~ " traditional payment systems at the exchange. The\n"
+#~ " exchange charges fees (to the customer,\n"
+#~ " merchant or both) to facilitate the transactions."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler can be used for different currencies (such as\n"
+#~ "\t Euros, US Dollars or BitCoins) and different\n"
+#~ "\t payment models limited only by what the payment\n"
+#~ "\t service provider supports in its interactions."
+#~ msgstr ""
+
diff --git a/locale/en/LC_MESSAGES/messages.po b/locale/en/LC_MESSAGES/messages.po
index 23a86dd6..75a6f282 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -3,15 +3,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-13 13:23+0100\n"
+"POT-Creation-Date: 2017-02-14 21:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
+"Generated-By: Babel 2.3.4\n"
#: about.html.j2:2 citizens.html.j2:2 developers.html.j2:2
#: governments.html.j2:2 investors.html.j2:2 merchants.html.j2:2
@@ -20,8 +21,8 @@ msgid "en"
msgstr ""
#: about.html.j2:5 citizens.html.j2:5 developers.html.j2:5
-#: governments.html.j2:5 index.html.j2:5 investors.html.j2:5
-#: merchants.html.j2:5 wallet.html.j2:5
+#: governments.html.j2:5 investors.html.j2:5 merchants.html.j2:5
+#: wallet.html.j2:5
msgid "GNU Taler"
msgstr ""
@@ -603,7 +604,7 @@ msgstr ""
#: governments.html.j2:93
msgid ""
"Taler has an efficient design. Unlike\n"
-" timeline-based payment systems, such as BitCoin,\n"
+" timeline-based payment systems, such as Bitcoin,\n"
" Taler will not threaten the availability of\n"
" national electric grids or (significantly)\n"
" contribute to environmental pollution."
@@ -669,105 +670,6 @@ msgid ""
" that Taler collects."
msgstr ""
-#: index.html.j2:6
-msgid "Taxable Anonymous Libre Electronic Reserves"
-msgstr ""
-
-#: index.html.j2:17
-msgid "Independent One-Click Payments!"
-msgstr ""
-
-#: index.html.j2:19
-msgid ""
-"Taler is an electronic payment system under\n"
-"\t development\n"
-"\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
-"\t community Web site provides extensive documentation\n"
-"\t about the system, which we expect to make\n"
-"\t operational in 2017."
-msgstr ""
-
-#: index.html.j2:29
-msgid "<b>T</b>axable"
-msgstr ""
-
-#: index.html.j2:31
-msgid ""
-"Unlike BitCoin or cash payments, Taler ensures that\n"
-"\t governments can learn their citizen's total income\n"
-"\t and thus collect sales, value-added or income\n"
-"\t taxes. Taler is a currency for the mainstream\n"
-"\t economy, and not the black market."
-msgstr ""
-
-#: index.html.j2:39
-msgid "<b>A</b>nonymous"
-msgstr ""
-
-#: index.html.j2:41
-msgid ""
-"When you pay with Taler, your identity does not\n"
-"\t have to be revealed to the merchant. Just like\n"
-"\t payments in cash, nobody else can track how you\n"
-"\t spent your electronic money. However, you obtain a\n"
-"\t legally valid proof of payment."
-msgstr ""
-
-#: index.html.j2:49
-msgid "<b>L</b>ibre"
-msgstr ""
-
-#: index.html.j2:51
-msgid ""
-"Taler is free software\n"
-"\t from <a href=\"http://www.gnu.org/\">the GNU\n"
-"\t project</a> implementing an open protocol. Anybody\n"
-"\t is welcome to inspect our code and integrate our\n"
-"\t reference implementation into their applications."
-msgstr ""
-
-#: index.html.j2:62
-msgid "<b>E</b>lectronic"
-msgstr ""
-
-#: index.html.j2:64
-msgid ""
-"Taler is easy to integrate with existing Web\n"
-"\t applications. Payments are cryptographically\n"
-"\t secured and are confirmed within milliseconds with\n"
-"\t extremely low transaction costs."
-msgstr ""
-
-#: index.html.j2:71
-msgid "<b>R</b>eserves"
-msgstr ""
-
-#: index.html.j2:73
-msgid ""
-"Taler does not introduce a new currency with\n"
-"\t fluctuation risks, and instead uses a digital\n"
-"\t wallet holding coins in reserve. Taler's\n"
-"\t cryptographic coins correspond to existing\n"
-"\t currencies, such as US Dollars, Euros or even\n"
-"\t BitCoins."
-msgstr ""
-
-#: index.html.j2:82
-msgid "Latest Videos"
-msgstr ""
-
-#: index.html.j2:83
-msgid "Florian Dold talks about Taler at 50p!"
-msgstr ""
-
-#: index.html.j2:93
-msgid "Taler News"
-msgstr ""
-
-#: index.html.j2:97
-msgid "Financial News"
-msgstr ""
-
#: investors.html.j2:5
msgid "Investors"
msgstr ""
@@ -779,7 +681,7 @@ msgstr ""
#: investors.html.j2:16
msgid ""
"We have created a company, Taler Systems SA in \n"
-" Luxemburgh.<br>\n"
+" Luxemburg.<br>\n"
" Please contact <tt>invest@taler.net</tt>\n"
" if you want to invest in Taler."
msgstr ""
@@ -832,7 +734,7 @@ msgid ""
" of the payment service provider, which converts money "
"from\n"
" traditional payment systems (Mastercard, SEPA,\n"
-" Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+" Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous\n"
" electronic coins in the same currency. The customer\n"
" can then redeem the electronic coins at a merchant,\n"
" who can exchange them for money represented using\n"
@@ -971,7 +873,7 @@ msgstr ""
#: merchants.html.j2:83
msgid ""
"Taler can be used for different currencies (such as\n"
-"\t Euros, US Dollars or BitCoins) and different\n"
+"\t Euros, US Dollars or Bitcoins) and different\n"
"\t payment models limited only by what the payment\n"
"\t service provider supports in its interactions."
msgstr ""
@@ -1133,3 +1035,123 @@ msgstr ""
#~ msgid "Taler as seen by the exchange operator"
#~ msgstr ""
+#~ msgid ""
+#~ "Taler has an efficient design. Unlike\n"
+#~ " timeline-based payment systems, such as BitCoin,\n"
+#~ " Taler will not threaten the availability of\n"
+#~ " national electric grids or (significantly)\n"
+#~ " contribute to environmental pollution."
+#~ msgstr ""
+
+#~ msgid "Taxable Anonymous Libre Electronic Reserves"
+#~ msgstr ""
+
+#~ msgid "Independent One-Click Payments!"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is an electronic payment system under\n"
+#~ "\t development\n"
+#~ "\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
+#~ "\t community Web site provides extensive documentation\n"
+#~ "\t about the system, which we expect to make\n"
+#~ "\t operational in 2017."
+#~ msgstr ""
+
+#~ msgid "<b>T</b>axable"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Unlike BitCoin or cash payments, Taler ensures that\n"
+#~ "\t governments can learn their citizen's total income\n"
+#~ "\t and thus collect sales, value-added or income\n"
+#~ "\t taxes. Taler is a currency for the mainstream\n"
+#~ "\t economy, and not the black market."
+#~ msgstr ""
+
+#~ msgid "<b>A</b>nonymous"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When you pay with Taler, your identity does not\n"
+#~ "\t have to be revealed to the merchant. Just like\n"
+#~ "\t payments in cash, nobody else can track how you\n"
+#~ "\t spent your electronic money. However, you obtain a\n"
+#~ "\t legally valid proof of payment."
+#~ msgstr ""
+
+#~ msgid "<b>L</b>ibre"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is free software\n"
+#~ "\t from <a href=\"http://www.gnu.org/\">the GNU\n"
+#~ "\t project</a> implementing an open protocol. Anybody\n"
+#~ "\t is welcome to inspect our code and integrate our\n"
+#~ "\t reference implementation into their applications."
+#~ msgstr ""
+
+#~ msgid "<b>E</b>lectronic"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is easy to integrate with existing Web\n"
+#~ "\t applications. Payments are cryptographically\n"
+#~ "\t secured and are confirmed within milliseconds with\n"
+#~ "\t extremely low transaction costs."
+#~ msgstr ""
+
+#~ msgid "<b>R</b>eserves"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler does not introduce a new currency with\n"
+#~ "\t fluctuation risks, and instead uses a digital\n"
+#~ "\t wallet holding coins in reserve. Taler's\n"
+#~ "\t cryptographic coins correspond to existing\n"
+#~ "\t currencies, such as US Dollars, Euros or even\n"
+#~ "\t BitCoins."
+#~ msgstr ""
+
+#~ msgid "Latest Videos"
+#~ msgstr ""
+
+#~ msgid "Florian Dold talks about Taler at 50p!"
+#~ msgstr ""
+
+#~ msgid "Taler News"
+#~ msgstr ""
+
+#~ msgid "Financial News"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "We have created a company, Taler Systems SA in \n"
+#~ " Luxemburgh.<br>\n"
+#~ " Please contact <tt>invest@taler.net</tt>\n"
+#~ " if you want to invest in Taler."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The scalable business model for Taler is the operation\n"
+#~ " of the payment service "
+#~ "provider, which converts money from\n"
+#~ " traditional payment systems (Mastercard, SEPA,\n"
+#~ " Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+#~ " electronic coins in the "
+#~ "same currency. The customer\n"
+#~ " can then redeem the "
+#~ "electronic coins at a merchant,\n"
+#~ " who can exchange them for money represented using\n"
+#~ " traditional payment systems at the exchange. The\n"
+#~ " exchange charges fees (to the customer,\n"
+#~ " merchant or both) to facilitate the transactions."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler can be used for different currencies (such as\n"
+#~ "\t Euros, US Dollars or BitCoins) and different\n"
+#~ "\t payment models limited only by what the payment\n"
+#~ "\t service provider supports in its interactions."
+#~ msgstr ""
+
diff --git a/locale/es/LC_MESSAGES/messages.po b/locale/es/LC_MESSAGES/messages.po
index 415adf50..ac3c604a 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -3,15 +3,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-13 13:23+0100\n"
+"POT-Creation-Date: 2017-02-14 21:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: es\n"
"Language-Team: es <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
+"Generated-By: Babel 2.3.4\n"
#: about.html.j2:2 citizens.html.j2:2 developers.html.j2:2
#: governments.html.j2:2 investors.html.j2:2 merchants.html.j2:2
@@ -20,8 +21,8 @@ msgid "en"
msgstr "es"
#: about.html.j2:5 citizens.html.j2:5 developers.html.j2:5
-#: governments.html.j2:5 index.html.j2:5 investors.html.j2:5
-#: merchants.html.j2:5 wallet.html.j2:5
+#: governments.html.j2:5 investors.html.j2:5 merchants.html.j2:5
+#: wallet.html.j2:5
msgid "GNU Taler"
msgstr ""
@@ -622,7 +623,7 @@ msgstr "Eficiente"
#: governments.html.j2:93
msgid ""
"Taler has an efficient design. Unlike\n"
-" timeline-based payment systems, such as BitCoin,\n"
+" timeline-based payment systems, such as Bitcoin,\n"
" Taler will not threaten the availability of\n"
" national electric grids or (significantly)\n"
" contribute to environmental pollution."
@@ -688,105 +689,6 @@ msgid ""
" that Taler collects."
msgstr ""
-#: index.html.j2:6
-msgid "Taxable Anonymous Libre Electronic Reserves"
-msgstr ""
-
-#: index.html.j2:17
-msgid "Independent One-Click Payments!"
-msgstr ""
-
-#: index.html.j2:19
-msgid ""
-"Taler is an electronic payment system under\n"
-"\t development\n"
-"\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
-"\t community Web site provides extensive documentation\n"
-"\t about the system, which we expect to make\n"
-"\t operational in 2017."
-msgstr ""
-
-#: index.html.j2:29
-msgid "<b>T</b>axable"
-msgstr ""
-
-#: index.html.j2:31
-msgid ""
-"Unlike BitCoin or cash payments, Taler ensures that\n"
-"\t governments can learn their citizen's total income\n"
-"\t and thus collect sales, value-added or income\n"
-"\t taxes. Taler is a currency for the mainstream\n"
-"\t economy, and not the black market."
-msgstr ""
-
-#: index.html.j2:39
-msgid "<b>A</b>nonymous"
-msgstr ""
-
-#: index.html.j2:41
-msgid ""
-"When you pay with Taler, your identity does not\n"
-"\t have to be revealed to the merchant. Just like\n"
-"\t payments in cash, nobody else can track how you\n"
-"\t spent your electronic money. However, you obtain a\n"
-"\t legally valid proof of payment."
-msgstr ""
-
-#: index.html.j2:49
-msgid "<b>L</b>ibre"
-msgstr ""
-
-#: index.html.j2:51
-msgid ""
-"Taler is free software\n"
-"\t from <a href=\"http://www.gnu.org/\">the GNU\n"
-"\t project</a> implementing an open protocol. Anybody\n"
-"\t is welcome to inspect our code and integrate our\n"
-"\t reference implementation into their applications."
-msgstr ""
-
-#: index.html.j2:62
-msgid "<b>E</b>lectronic"
-msgstr ""
-
-#: index.html.j2:64
-msgid ""
-"Taler is easy to integrate with existing Web\n"
-"\t applications. Payments are cryptographically\n"
-"\t secured and are confirmed within milliseconds with\n"
-"\t extremely low transaction costs."
-msgstr ""
-
-#: index.html.j2:71
-msgid "<b>R</b>eserves"
-msgstr ""
-
-#: index.html.j2:73
-msgid ""
-"Taler does not introduce a new currency with\n"
-"\t fluctuation risks, and instead uses a digital\n"
-"\t wallet holding coins in reserve. Taler's\n"
-"\t cryptographic coins correspond to existing\n"
-"\t currencies, such as US Dollars, Euros or even\n"
-"\t BitCoins."
-msgstr ""
-
-#: index.html.j2:82
-msgid "Latest Videos"
-msgstr ""
-
-#: index.html.j2:83
-msgid "Florian Dold talks about Taler at 50p!"
-msgstr ""
-
-#: index.html.j2:93
-msgid "Taler News"
-msgstr ""
-
-#: index.html.j2:97
-msgid "Financial News"
-msgstr ""
-
#: investors.html.j2:5
msgid "Investors"
msgstr ""
@@ -798,7 +700,7 @@ msgstr ""
#: investors.html.j2:16
msgid ""
"We have created a company, Taler Systems SA in \n"
-" Luxemburgh.<br>\n"
+" Luxemburg.<br>\n"
" Please contact <tt>invest@taler.net</tt>\n"
" if you want to invest in Taler."
msgstr ""
@@ -851,7 +753,7 @@ msgid ""
" of the payment service provider, which converts money "
"from\n"
" traditional payment systems (Mastercard, SEPA,\n"
-" Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+" Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous\n"
" electronic coins in the same currency. The customer\n"
" can then redeem the electronic coins at a merchant,\n"
" who can exchange them for money represented using\n"
@@ -990,7 +892,7 @@ msgstr "Flexible"
#: merchants.html.j2:83
msgid ""
"Taler can be used for different currencies (such as\n"
-"\t Euros, US Dollars or BitCoins) and different\n"
+"\t Euros, US Dollars or Bitcoins) and different\n"
"\t payment models limited only by what the payment\n"
"\t service provider supports in its interactions."
msgstr ""
@@ -1153,3 +1055,123 @@ msgstr ""
#~ msgid "Taler as seen by the exchange operator"
#~ msgstr "Taler desde el punto de vista del operador de casa de cambio"
+#~ msgid ""
+#~ "Taler has an efficient design. Unlike\n"
+#~ " timeline-based payment systems, such as BitCoin,\n"
+#~ " Taler will not threaten the availability of\n"
+#~ " national electric grids or (significantly)\n"
+#~ " contribute to environmental pollution."
+#~ msgstr ""
+
+#~ msgid "Taxable Anonymous Libre Electronic Reserves"
+#~ msgstr ""
+
+#~ msgid "Independent One-Click Payments!"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is an electronic payment system under\n"
+#~ "\t development\n"
+#~ "\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
+#~ "\t community Web site provides extensive documentation\n"
+#~ "\t about the system, which we expect to make\n"
+#~ "\t operational in 2017."
+#~ msgstr ""
+
+#~ msgid "<b>T</b>axable"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Unlike BitCoin or cash payments, Taler ensures that\n"
+#~ "\t governments can learn their citizen's total income\n"
+#~ "\t and thus collect sales, value-added or income\n"
+#~ "\t taxes. Taler is a currency for the mainstream\n"
+#~ "\t economy, and not the black market."
+#~ msgstr ""
+
+#~ msgid "<b>A</b>nonymous"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When you pay with Taler, your identity does not\n"
+#~ "\t have to be revealed to the merchant. Just like\n"
+#~ "\t payments in cash, nobody else can track how you\n"
+#~ "\t spent your electronic money. However, you obtain a\n"
+#~ "\t legally valid proof of payment."
+#~ msgstr ""
+
+#~ msgid "<b>L</b>ibre"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is free software\n"
+#~ "\t from <a href=\"http://www.gnu.org/\">the GNU\n"
+#~ "\t project</a> implementing an open protocol. Anybody\n"
+#~ "\t is welcome to inspect our code and integrate our\n"
+#~ "\t reference implementation into their applications."
+#~ msgstr ""
+
+#~ msgid "<b>E</b>lectronic"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is easy to integrate with existing Web\n"
+#~ "\t applications. Payments are cryptographically\n"
+#~ "\t secured and are confirmed within milliseconds with\n"
+#~ "\t extremely low transaction costs."
+#~ msgstr ""
+
+#~ msgid "<b>R</b>eserves"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler does not introduce a new currency with\n"
+#~ "\t fluctuation risks, and instead uses a digital\n"
+#~ "\t wallet holding coins in reserve. Taler's\n"
+#~ "\t cryptographic coins correspond to existing\n"
+#~ "\t currencies, such as US Dollars, Euros or even\n"
+#~ "\t BitCoins."
+#~ msgstr ""
+
+#~ msgid "Latest Videos"
+#~ msgstr ""
+
+#~ msgid "Florian Dold talks about Taler at 50p!"
+#~ msgstr ""
+
+#~ msgid "Taler News"
+#~ msgstr ""
+
+#~ msgid "Financial News"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "We have created a company, Taler Systems SA in \n"
+#~ " Luxemburgh.<br>\n"
+#~ " Please contact <tt>invest@taler.net</tt>\n"
+#~ " if you want to invest in Taler."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The scalable business model for Taler is the operation\n"
+#~ " of the payment service "
+#~ "provider, which converts money from\n"
+#~ " traditional payment systems (Mastercard, SEPA,\n"
+#~ " Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+#~ " electronic coins in the "
+#~ "same currency. The customer\n"
+#~ " can then redeem the "
+#~ "electronic coins at a merchant,\n"
+#~ " who can exchange them for money represented using\n"
+#~ " traditional payment systems at the exchange. The\n"
+#~ " exchange charges fees (to the customer,\n"
+#~ " merchant or both) to facilitate the transactions."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler can be used for different currencies (such as\n"
+#~ "\t Euros, US Dollars or BitCoins) and different\n"
+#~ "\t payment models limited only by what the payment\n"
+#~ "\t service provider supports in its interactions."
+#~ msgstr ""
+
diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po
index 94a8bfd3..5bf92d41 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -3,15 +3,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-13 13:23+0100\n"
+"POT-Creation-Date: 2017-02-14 21:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: fr\n"
"Language-Team: fr <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
+"Generated-By: Babel 2.3.4\n"
#: about.html.j2:2 citizens.html.j2:2 developers.html.j2:2
#: governments.html.j2:2 investors.html.j2:2 merchants.html.j2:2
@@ -20,8 +21,8 @@ msgid "en"
msgstr "fr"
#: about.html.j2:5 citizens.html.j2:5 developers.html.j2:5
-#: governments.html.j2:5 index.html.j2:5 investors.html.j2:5
-#: merchants.html.j2:5 wallet.html.j2:5
+#: governments.html.j2:5 investors.html.j2:5 merchants.html.j2:5
+#: wallet.html.j2:5
msgid "GNU Taler"
msgstr ""
@@ -620,7 +621,7 @@ msgstr "Efficace"
#: governments.html.j2:93
msgid ""
"Taler has an efficient design. Unlike\n"
-" timeline-based payment systems, such as BitCoin,\n"
+" timeline-based payment systems, such as Bitcoin,\n"
" Taler will not threaten the availability of\n"
" national electric grids or (significantly)\n"
" contribute to environmental pollution."
@@ -686,105 +687,6 @@ msgid ""
" that Taler collects."
msgstr ""
-#: index.html.j2:6
-msgid "Taxable Anonymous Libre Electronic Reserves"
-msgstr ""
-
-#: index.html.j2:17
-msgid "Independent One-Click Payments!"
-msgstr ""
-
-#: index.html.j2:19
-msgid ""
-"Taler is an electronic payment system under\n"
-"\t development\n"
-"\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
-"\t community Web site provides extensive documentation\n"
-"\t about the system, which we expect to make\n"
-"\t operational in 2017."
-msgstr ""
-
-#: index.html.j2:29
-msgid "<b>T</b>axable"
-msgstr ""
-
-#: index.html.j2:31
-msgid ""
-"Unlike BitCoin or cash payments, Taler ensures that\n"
-"\t governments can learn their citizen's total income\n"
-"\t and thus collect sales, value-added or income\n"
-"\t taxes. Taler is a currency for the mainstream\n"
-"\t economy, and not the black market."
-msgstr ""
-
-#: index.html.j2:39
-msgid "<b>A</b>nonymous"
-msgstr ""
-
-#: index.html.j2:41
-msgid ""
-"When you pay with Taler, your identity does not\n"
-"\t have to be revealed to the merchant. Just like\n"
-"\t payments in cash, nobody else can track how you\n"
-"\t spent your electronic money. However, you obtain a\n"
-"\t legally valid proof of payment."
-msgstr ""
-
-#: index.html.j2:49
-msgid "<b>L</b>ibre"
-msgstr ""
-
-#: index.html.j2:51
-msgid ""
-"Taler is free software\n"
-"\t from <a href=\"http://www.gnu.org/\">the GNU\n"
-"\t project</a> implementing an open protocol. Anybody\n"
-"\t is welcome to inspect our code and integrate our\n"
-"\t reference implementation into their applications."
-msgstr ""
-
-#: index.html.j2:62
-msgid "<b>E</b>lectronic"
-msgstr ""
-
-#: index.html.j2:64
-msgid ""
-"Taler is easy to integrate with existing Web\n"
-"\t applications. Payments are cryptographically\n"
-"\t secured and are confirmed within milliseconds with\n"
-"\t extremely low transaction costs."
-msgstr ""
-
-#: index.html.j2:71
-msgid "<b>R</b>eserves"
-msgstr ""
-
-#: index.html.j2:73
-msgid ""
-"Taler does not introduce a new currency with\n"
-"\t fluctuation risks, and instead uses a digital\n"
-"\t wallet holding coins in reserve. Taler's\n"
-"\t cryptographic coins correspond to existing\n"
-"\t currencies, such as US Dollars, Euros or even\n"
-"\t BitCoins."
-msgstr ""
-
-#: index.html.j2:82
-msgid "Latest Videos"
-msgstr ""
-
-#: index.html.j2:83
-msgid "Florian Dold talks about Taler at 50p!"
-msgstr ""
-
-#: index.html.j2:93
-msgid "Taler News"
-msgstr ""
-
-#: index.html.j2:97
-msgid "Financial News"
-msgstr ""
-
#: investors.html.j2:5
msgid "Investors"
msgstr ""
@@ -796,7 +698,7 @@ msgstr ""
#: investors.html.j2:16
msgid ""
"We have created a company, Taler Systems SA in \n"
-" Luxemburgh.<br>\n"
+" Luxemburg.<br>\n"
" Please contact <tt>invest@taler.net</tt>\n"
" if you want to invest in Taler."
msgstr ""
@@ -849,7 +751,7 @@ msgid ""
" of the payment service provider, which converts money "
"from\n"
" traditional payment systems (Mastercard, SEPA,\n"
-" Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+" Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous\n"
" electronic coins in the same currency. The customer\n"
" can then redeem the electronic coins at a merchant,\n"
" who can exchange them for money represented using\n"
@@ -988,7 +890,7 @@ msgstr "Flexible"
#: merchants.html.j2:83
msgid ""
"Taler can be used for different currencies (such as\n"
-"\t Euros, US Dollars or BitCoins) and different\n"
+"\t Euros, US Dollars or Bitcoins) and different\n"
"\t payment models limited only by what the payment\n"
"\t service provider supports in its interactions."
msgstr ""
@@ -1151,3 +1053,123 @@ msgstr ""
#~ msgid "Taler as seen by the exchange operator"
#~ msgstr "Taler du point de vu de l'exploitant"
+#~ msgid ""
+#~ "Taler has an efficient design. Unlike\n"
+#~ " timeline-based payment systems, such as BitCoin,\n"
+#~ " Taler will not threaten the availability of\n"
+#~ " national electric grids or (significantly)\n"
+#~ " contribute to environmental pollution."
+#~ msgstr ""
+
+#~ msgid "Taxable Anonymous Libre Electronic Reserves"
+#~ msgstr ""
+
+#~ msgid "Independent One-Click Payments!"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is an electronic payment system under\n"
+#~ "\t development\n"
+#~ "\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
+#~ "\t community Web site provides extensive documentation\n"
+#~ "\t about the system, which we expect to make\n"
+#~ "\t operational in 2017."
+#~ msgstr ""
+
+#~ msgid "<b>T</b>axable"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Unlike BitCoin or cash payments, Taler ensures that\n"
+#~ "\t governments can learn their citizen's total income\n"
+#~ "\t and thus collect sales, value-added or income\n"
+#~ "\t taxes. Taler is a currency for the mainstream\n"
+#~ "\t economy, and not the black market."
+#~ msgstr ""
+
+#~ msgid "<b>A</b>nonymous"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When you pay with Taler, your identity does not\n"
+#~ "\t have to be revealed to the merchant. Just like\n"
+#~ "\t payments in cash, nobody else can track how you\n"
+#~ "\t spent your electronic money. However, you obtain a\n"
+#~ "\t legally valid proof of payment."
+#~ msgstr ""
+
+#~ msgid "<b>L</b>ibre"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is free software\n"
+#~ "\t from <a href=\"http://www.gnu.org/\">the GNU\n"
+#~ "\t project</a> implementing an open protocol. Anybody\n"
+#~ "\t is welcome to inspect our code and integrate our\n"
+#~ "\t reference implementation into their applications."
+#~ msgstr ""
+
+#~ msgid "<b>E</b>lectronic"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is easy to integrate with existing Web\n"
+#~ "\t applications. Payments are cryptographically\n"
+#~ "\t secured and are confirmed within milliseconds with\n"
+#~ "\t extremely low transaction costs."
+#~ msgstr ""
+
+#~ msgid "<b>R</b>eserves"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler does not introduce a new currency with\n"
+#~ "\t fluctuation risks, and instead uses a digital\n"
+#~ "\t wallet holding coins in reserve. Taler's\n"
+#~ "\t cryptographic coins correspond to existing\n"
+#~ "\t currencies, such as US Dollars, Euros or even\n"
+#~ "\t BitCoins."
+#~ msgstr ""
+
+#~ msgid "Latest Videos"
+#~ msgstr ""
+
+#~ msgid "Florian Dold talks about Taler at 50p!"
+#~ msgstr ""
+
+#~ msgid "Taler News"
+#~ msgstr ""
+
+#~ msgid "Financial News"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "We have created a company, Taler Systems SA in \n"
+#~ " Luxemburgh.<br>\n"
+#~ " Please contact <tt>invest@taler.net</tt>\n"
+#~ " if you want to invest in Taler."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The scalable business model for Taler is the operation\n"
+#~ " of the payment service "
+#~ "provider, which converts money from\n"
+#~ " traditional payment systems (Mastercard, SEPA,\n"
+#~ " Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+#~ " electronic coins in the "
+#~ "same currency. The customer\n"
+#~ " can then redeem the "
+#~ "electronic coins at a merchant,\n"
+#~ " who can exchange them for money represented using\n"
+#~ " traditional payment systems at the exchange. The\n"
+#~ " exchange charges fees (to the customer,\n"
+#~ " merchant or both) to facilitate the transactions."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler can be used for different currencies (such as\n"
+#~ "\t Euros, US Dollars or BitCoins) and different\n"
+#~ "\t payment models limited only by what the payment\n"
+#~ "\t service provider supports in its interactions."
+#~ msgstr ""
+
diff --git a/locale/it/LC_MESSAGES/messages.po b/locale/it/LC_MESSAGES/messages.po
index e313e130..4df40fde 100644
--- a/locale/it/LC_MESSAGES/messages.po
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -3,15 +3,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-02-13 13:23+0100\n"
+"POT-Creation-Date: 2017-02-14 21:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: it\n"
"Language-Team: it <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
+"Generated-By: Babel 2.3.4\n"
#: about.html.j2:2 citizens.html.j2:2 developers.html.j2:2
#: governments.html.j2:2 investors.html.j2:2 merchants.html.j2:2
@@ -20,8 +21,8 @@ msgid "en"
msgstr "it"
#: about.html.j2:5 citizens.html.j2:5 developers.html.j2:5
-#: governments.html.j2:5 index.html.j2:5 investors.html.j2:5
-#: merchants.html.j2:5 wallet.html.j2:5
+#: governments.html.j2:5 investors.html.j2:5 merchants.html.j2:5
+#: wallet.html.j2:5
msgid "GNU Taler"
msgstr ""
@@ -622,7 +623,7 @@ msgstr "Efficiente"
#: governments.html.j2:93
msgid ""
"Taler has an efficient design. Unlike\n"
-" timeline-based payment systems, such as BitCoin,\n"
+" timeline-based payment systems, such as Bitcoin,\n"
" Taler will not threaten the availability of\n"
" national electric grids or (significantly)\n"
" contribute to environmental pollution."
@@ -688,105 +689,6 @@ msgid ""
" that Taler collects."
msgstr ""
-#: index.html.j2:6
-msgid "Taxable Anonymous Libre Electronic Reserves"
-msgstr ""
-
-#: index.html.j2:17
-msgid "Independent One-Click Payments!"
-msgstr ""
-
-#: index.html.j2:19
-msgid ""
-"Taler is an electronic payment system under\n"
-"\t development\n"
-"\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
-"\t community Web site provides extensive documentation\n"
-"\t about the system, which we expect to make\n"
-"\t operational in 2017."
-msgstr ""
-
-#: index.html.j2:29
-msgid "<b>T</b>axable"
-msgstr ""
-
-#: index.html.j2:31
-msgid ""
-"Unlike BitCoin or cash payments, Taler ensures that\n"
-"\t governments can learn their citizen's total income\n"
-"\t and thus collect sales, value-added or income\n"
-"\t taxes. Taler is a currency for the mainstream\n"
-"\t economy, and not the black market."
-msgstr ""
-
-#: index.html.j2:39
-msgid "<b>A</b>nonymous"
-msgstr ""
-
-#: index.html.j2:41
-msgid ""
-"When you pay with Taler, your identity does not\n"
-"\t have to be revealed to the merchant. Just like\n"
-"\t payments in cash, nobody else can track how you\n"
-"\t spent your electronic money. However, you obtain a\n"
-"\t legally valid proof of payment."
-msgstr ""
-
-#: index.html.j2:49
-msgid "<b>L</b>ibre"
-msgstr ""
-
-#: index.html.j2:51
-msgid ""
-"Taler is free software\n"
-"\t from <a href=\"http://www.gnu.org/\">the GNU\n"
-"\t project</a> implementing an open protocol. Anybody\n"
-"\t is welcome to inspect our code and integrate our\n"
-"\t reference implementation into their applications."
-msgstr ""
-
-#: index.html.j2:62
-msgid "<b>E</b>lectronic"
-msgstr ""
-
-#: index.html.j2:64
-msgid ""
-"Taler is easy to integrate with existing Web\n"
-"\t applications. Payments are cryptographically\n"
-"\t secured and are confirmed within milliseconds with\n"
-"\t extremely low transaction costs."
-msgstr ""
-
-#: index.html.j2:71
-msgid "<b>R</b>eserves"
-msgstr ""
-
-#: index.html.j2:73
-msgid ""
-"Taler does not introduce a new currency with\n"
-"\t fluctuation risks, and instead uses a digital\n"
-"\t wallet holding coins in reserve. Taler's\n"
-"\t cryptographic coins correspond to existing\n"
-"\t currencies, such as US Dollars, Euros or even\n"
-"\t BitCoins."
-msgstr ""
-
-#: index.html.j2:82
-msgid "Latest Videos"
-msgstr ""
-
-#: index.html.j2:83
-msgid "Florian Dold talks about Taler at 50p!"
-msgstr ""
-
-#: index.html.j2:93
-msgid "Taler News"
-msgstr ""
-
-#: index.html.j2:97
-msgid "Financial News"
-msgstr ""
-
#: investors.html.j2:5
msgid "Investors"
msgstr ""
@@ -798,7 +700,7 @@ msgstr ""
#: investors.html.j2:16
msgid ""
"We have created a company, Taler Systems SA in \n"
-" Luxemburgh.<br>\n"
+" Luxemburg.<br>\n"
" Please contact <tt>invest@taler.net</tt>\n"
" if you want to invest in Taler."
msgstr ""
@@ -851,7 +753,7 @@ msgid ""
" of the payment service provider, which converts money "
"from\n"
" traditional payment systems (Mastercard, SEPA,\n"
-" Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+" Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous\n"
" electronic coins in the same currency. The customer\n"
" can then redeem the electronic coins at a merchant,\n"
" who can exchange them for money represented using\n"
@@ -992,7 +894,7 @@ msgstr "Flessibile"
#: merchants.html.j2:83
msgid ""
"Taler can be used for different currencies (such as\n"
-"\t Euros, US Dollars or BitCoins) and different\n"
+"\t Euros, US Dollars or Bitcoins) and different\n"
"\t payment models limited only by what the payment\n"
"\t service provider supports in its interactions."
msgstr ""
@@ -1155,3 +1057,123 @@ msgstr ""
#~ msgid "Taler as seen by the exchange operator"
#~ msgstr "Come opera la ufficio cambi di Taler"
+#~ msgid ""
+#~ "Taler has an efficient design. Unlike\n"
+#~ " timeline-based payment systems, such as BitCoin,\n"
+#~ " Taler will not threaten the availability of\n"
+#~ " national electric grids or (significantly)\n"
+#~ " contribute to environmental pollution."
+#~ msgstr ""
+
+#~ msgid "Taxable Anonymous Libre Electronic Reserves"
+#~ msgstr ""
+
+#~ msgid "Independent One-Click Payments!"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is an electronic payment system under\n"
+#~ "\t development\n"
+#~ "\t at <a href=\"http://www.inria.fr/\">Inria</a>. This\n"
+#~ "\t community Web site provides extensive documentation\n"
+#~ "\t about the system, which we expect to make\n"
+#~ "\t operational in 2017."
+#~ msgstr ""
+
+#~ msgid "<b>T</b>axable"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Unlike BitCoin or cash payments, Taler ensures that\n"
+#~ "\t governments can learn their citizen's total income\n"
+#~ "\t and thus collect sales, value-added or income\n"
+#~ "\t taxes. Taler is a currency for the mainstream\n"
+#~ "\t economy, and not the black market."
+#~ msgstr ""
+
+#~ msgid "<b>A</b>nonymous"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When you pay with Taler, your identity does not\n"
+#~ "\t have to be revealed to the merchant. Just like\n"
+#~ "\t payments in cash, nobody else can track how you\n"
+#~ "\t spent your electronic money. However, you obtain a\n"
+#~ "\t legally valid proof of payment."
+#~ msgstr ""
+
+#~ msgid "<b>L</b>ibre"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is free software\n"
+#~ "\t from <a href=\"http://www.gnu.org/\">the GNU\n"
+#~ "\t project</a> implementing an open protocol. Anybody\n"
+#~ "\t is welcome to inspect our code and integrate our\n"
+#~ "\t reference implementation into their applications."
+#~ msgstr ""
+
+#~ msgid "<b>E</b>lectronic"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler is easy to integrate with existing Web\n"
+#~ "\t applications. Payments are cryptographically\n"
+#~ "\t secured and are confirmed within milliseconds with\n"
+#~ "\t extremely low transaction costs."
+#~ msgstr ""
+
+#~ msgid "<b>R</b>eserves"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler does not introduce a new currency with\n"
+#~ "\t fluctuation risks, and instead uses a digital\n"
+#~ "\t wallet holding coins in reserve. Taler's\n"
+#~ "\t cryptographic coins correspond to existing\n"
+#~ "\t currencies, such as US Dollars, Euros or even\n"
+#~ "\t BitCoins."
+#~ msgstr ""
+
+#~ msgid "Latest Videos"
+#~ msgstr ""
+
+#~ msgid "Florian Dold talks about Taler at 50p!"
+#~ msgstr ""
+
+#~ msgid "Taler News"
+#~ msgstr ""
+
+#~ msgid "Financial News"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "We have created a company, Taler Systems SA in \n"
+#~ " Luxemburgh.<br>\n"
+#~ " Please contact <tt>invest@taler.net</tt>\n"
+#~ " if you want to invest in Taler."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The scalable business model for Taler is the operation\n"
+#~ " of the payment service "
+#~ "provider, which converts money from\n"
+#~ " traditional payment systems (Mastercard, SEPA,\n"
+#~ " Visa, BitCoin, ACH, SWIFT, etc.) to anonymous\n"
+#~ " electronic coins in the "
+#~ "same currency. The customer\n"
+#~ " can then redeem the "
+#~ "electronic coins at a merchant,\n"
+#~ " who can exchange them for money represented using\n"
+#~ " traditional payment systems at the exchange. The\n"
+#~ " exchange charges fees (to the customer,\n"
+#~ " merchant or both) to facilitate the transactions."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Taler can be used for different currencies (such as\n"
+#~ "\t Euros, US Dollars or BitCoins) and different\n"
+#~ "\t payment models limited only by what the payment\n"
+#~ "\t service provider supports in its interactions."
+#~ msgstr ""
+
diff --git a/merchants.html.j2 b/merchants.html.j2
index a63cd604..be6d40bd 100644
--- a/merchants.html.j2
+++ b/merchants.html.j2
@@ -81,7 +81,7 @@
<h2>{{ _("Flexible") }}</h2>
<p>{{ _("Taler can be used for different currencies (such as
- Euros, US Dollars or BitCoins) and different
+ Euros, US Dollars or Bitcoins) and different
payment models limited only by what the payment
service provider supports in its interactions.")
}}</p>
diff --git a/taler-small.svg b/taler-small.svg
new file mode 100644
index 00000000..093bf749
--- /dev/null
+++ b/taler-small.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-50 -50 100 100">
+ <circle cx="0" cy="0" r="40" stroke="black" stroke-width="7" fill="none" />
+ <text x="0" y="10" text-anchor="middle" alignment-baseline="middle" font-family="sans-serif" font-size="72">T</text>
+</svg>
diff --git a/template.py b/template.py
index f872ad3e..179e32a7 100755
--- a/template.py
+++ b/template.py
@@ -8,45 +8,48 @@
# Note that the gettext files need to be prepared first. This script
# is thus to be invoked via the Makefile.
import os
+import os.path
import sys
import re
import gettext
import jinja2
+import glob
+import codecs
-if len(sys.argv) < 3:
- sys.exit("Usage: " + __file__ + " <template-file> <locale> <output-file>")
+env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
+ extensions=["jinja2.ext.i18n"],
+ autoescape=False)
-in_file = sys.argv[1]
-locale = sys.argv[2]
-name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups()
+for in_file in glob.glob("*.j2"):
+ name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups()
+ tmpl = env.get_template(in_file)
-tr = gettext.translation("messages",
- localedir="locale",
- languages=[locale])
+ def self_localized(other_locale):
+ """
+ Return URL for the current page in another locale.
+ """
+ return "../" + other_locale + "/" + in_file.rstrip(".j2")
-env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
- extensions=["jinja2.ext.i18n"],
- autoescape=False)
-env.install_gettext_translations(tr, newstyle=True)
+ def url_localized(filename):
+ return "../" + locale + "/" + filename
-tmpl = env.get_template(in_file)
+ def url(x):
+ # TODO: look at the app root environment variable
+ # TODO: check if file exists
+ return "../" + x
-def self_localized(other_locale):
- """
- Return URL for the current page in another locale.
- """
- return "../" + other_locale + "/" + in_file.rstrip(".j2")
+ for l in glob.glob("locale/*/"):
+ locale = os.path.basename(l[:-1])
-def url_localized(filename):
- return "../" + locale + "/" + filename
+ tr = gettext.translation("messages",
+ localedir="locale",
+ languages=[locale])
-def url(x):
- # TODO: look at the app root environment variable
- # TODO: check if file exists
- return "../" + x
+ env.install_gettext_translations(tr, newstyle=True)
-import codecs
-f = codecs.open("./" + locale + "/" + in_file.rstrip(".j2"), "w", "utf-8")
-f.write(tmpl.render(lang=locale, url=url, self_localized=self_localized, url_localized=url_localized))
-f.close()
+
+ content = tmpl.render(lang=locale, url=url, self_localized=self_localized, url_localized=url_localized)
+ out_name = "./" + locale + "/" + in_file.rstrip(".j2")
+ with codecs.open(out_name, "w", "utf-8") as f:
+ f.write(content)
diff --git a/template.sh b/template.sh
deleted file mode 100755
index 040f3a00..00000000
--- a/template.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# This file is in the public domain.
-#
-# Wrapper around 'template.py', running it on all
-# of our jinja2 input files for all languages for which
-# we have translations.
-#
-# Note that the gettext files need to be prepared first. This script
-# is thus to be invoked via the Makefile.
-for f in $(git ls-files *.j2); do
- for ld in locale/*/; do
- l=$(basename $ld)
- mkdir -p $(basename $l)
- echo "$f: $l"
- python template.py $f $l
- done
-done