aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about.html.j2216
-rw-r--r--common/base.j22
-rw-r--r--common/footer.j2.inc11
-rw-r--r--common/header.j2.inc1
-rw-r--r--common/navigation.j2.inc107
-rw-r--r--developers.html.j2455
-rw-r--r--governments.html.j2299
-rw-r--r--index.html.j252
-rw-r--r--investors.html.j2183
-rw-r--r--justified-nav.css80
-rw-r--r--merchants.html.j2326
-rw-r--r--styles.css10
-rwxr-xr-xtemplate.py7
13 files changed, 807 insertions, 942 deletions
diff --git a/about.html.j2 b/about.html.j2
index 3af6dd1b..1b596b1f 100644
--- a/about.html.j2
+++ b/about.html.j2
@@ -1,116 +1,100 @@
1<!DOCTYPE html> 1{% extends "common/base.j2" %}
2<html lang="{{ _('en') }}"> 2{% block body_content %}
3 <head> 3<div class="container">
4 <meta charset="UTF-8"/> 4<div class="row">
5 <title>{{ _("GNU Taler") }} - {{ _("About us") }}</title> 5 <div class="col-lg-4">
6 <meta name="description" content=""/> 6 <h2><a href="http://grothoff.org/christian/">Dr. Christian Grothoff</a></h2>
7 {% include "common/header.j2.inc" %} 7 <img src="{{ url('team-images/christian-grothoff.jpg') }}" height="240" alt="Christian Grothoff" align="middle">
8 </head> 8 <p>{{ _("GNU maintainer. Network security &amp; privacy researcher. Software architect.") }}</p>
9 <body> 9 </div>
10 <div class="container"> 10 <div class="col-lg-4">
11 {% include "common/navigation.j2.inc" %} 11 <h2><a href="http://www.digitalekho.com/about-us/index.html">Leon Schumacher</a></h2>
12 <!-- Jumbotron --> 12 <img src="{{ url('team-images/leon-schumacher.jpg') }}" height="240" alt="Leon Schumacher" align="middle">
13 <div class="jumbotron"> 13 <p>{{ _("Entrepreneur, Investor, Fortune 100 CIO, IT company director in different industries, ….") }}</p>
14 <h1>{{ _("About us") }}</h1> 14 </div>
15 </div> 15</div>
16 16<div class="row">
17 <!-- Example row of columns --> 17 <div class="col-lg-4">
18 <div class="row"> 18 <h2>Dr. Jeffrey Burdges</h2>
19 <div class="col-lg-4"> 19 <img src="{{ url('team-images/jeff-burdges.jpg') }}" height="240" alt="Jeffrey Burdges" align="middle">
20 <h2><a href="http://grothoff.org/christian/">Dr. Christian Grothoff</a></h2> 20 <p>{{ _("Applied cryptography. Contact to W3c &amp; Tor.") }}</p>
21 <img src="{{ url('team-images/christian-grothoff.jpg') }}" height="240" alt="Christian Grothoff" align="middle"> 21 </div>
22 <p>{{ _("GNU maintainer. Network security &amp; privacy researcher. Software architect.") }}</p> 22 <div class="col-lg-4">
23 </div> 23 <h2><a href="http://www.onete.net/">Dr. Cristina Onete</a></h2>
24 <div class="col-lg-4"> 24 <img src="{{ url('team-images/cristina-onete.jpg') }}" height="240" alt="Cristina Onete" align="middle">
25 <h2><a href="http://www.digitalekho.com/about-us/index.html">Leon Schumacher</a></h2> 25 <p>{{ _("Theoretical foundations.") }}</p>
26 <img src="{{ url('team-images/leon-schumacher.jpg') }}" height="240" alt="Leon Schumacher" align="middle"> 26 </div>
27 <p>{{ _("Entrepreneur, Investor, Fortune 100 CIO, IT company director in different industries, ….") }}</p> 27 <div class="col-lg-4">
28 </div> 28 <h2><a href="https://www.stallman.org/">Dr. Richard M. Stallman</a></h2>
29 </div> 29 <img src="{{ url('team-images/richard-stallman.jpg') }}" height="240" alt="Richard Stallman" align="middle">
30 <div class="row"> 30 <p>{{ _("Founder of the GNU project. Ethical guidance and licensing.") }}</p>
31 <div class="col-lg-4"> 31 </div>
32 <h2>Dr. Jeffrey Burdges</h2> 32</div>
33 <img src="{{ url('team-images/jeff-burdges.jpg') }}" height="240" alt="Jeffrey Burdges" align="middle"> 33<div class="row">
34 <p>{{ _("Applied cryptography. Contact to W3c &amp; Tor.") }}</p> 34 <div class="col-lg-4">
35 </div> 35 <h2><a href="http://sreeharsha.totakura.in/">Sree Harsha Totakura</a></h2>
36 <div class="col-lg-4"> 36 <img src="{{ url('team-images/sree-harsha-totakura.jpg') }}" height="240" alt="Sree Harsha Totakura" align="middle">
37 <h2><a href="http://www.onete.net/">Dr. Cristina Onete</a></h2> 37 <p>{{ _("PhD Student, TU Munich. Currently teaching.") }}</p>
38 <img src="{{ url('team-images/cristina-onete.jpg') }}" height="240" alt="Cristina Onete" align="middle"> 38 </div>
39 <p>{{ _("Theoretical foundations.") }}</p> 39 <div class="col-lg-4">
40 </div> 40 <h2><a href="https://fdold.eu">Florian Dold</a></h2>
41 <div class="col-lg-4"> 41 <img src="{{ url('team-images/florian-dold.jpg') }}" height="240" alt="Florian Dold" align="middle">
42 <h2><a href="https://www.stallman.org/">Dr. Richard M. Stallman</a></h2> 42 <p>{{ _("PhD Student, Inria..") }}</p>
43 <img src="{{ url('team-images/richard-stallman.jpg') }}" height="240" alt="Richard Stallman" align="middle"> 43 </div>
44 <p>{{ _("Founder of the GNU project. Ethical guidance and licensing.") }}</p> 44 <div class="col-lg-4">
45 </div> 45 <h2>Marcello Stanisci</h2>
46 </div> 46 <img src="{{ url('team-images/marcello-stanisci.jpg') }}" height="240" alt="Marcello Stanisci" align="middle">
47 <div class="row"> 47 <p>{{ _("Software engineer.") }}</p>
48 <div class="col-lg-4"> 48 </div>
49 <h2><a href="http://sreeharsha.totakura.in/">Sree Harsha Totakura</a></h2> 49</div>
50 <img src="{{ url('team-images/sree-harsha-totakura.jpg') }}" height="240" alt="Sree Harsha Totakura" align="middle"> 50<div class="row">
51 <p>{{ _("PhD Student, TU Munich. Currently teaching.") }}</p> 51 <div class="col-lg-4">
52 </div> 52 <h2>Dr. Nana Karlstetter</h2>
53 <div class="col-lg-4"> 53 <img src="{{ url('team-images/nana-karlstetter.jpg') }}" height="240" alt="Nana Karlstetter" align="middle">
54 <h2><a href="https://fdold.eu">Florian Dold</a></h2> 54 <p>{{ _("Sustainable business development.") }}</p>
55 <img src="{{ url('team-images/florian-dold.jpg') }}" height="240" alt="Florian Dold" align="middle"> 55 </div>
56 <p>{{ _("PhD Student, Inria..") }}</p> 56 <div class="col-lg-4">
57 </div> 57 <h2>Benedikt Müller</h2>
58 <div class="col-lg-4"> 58 <p>{{ _("Software engineer. Works on libebics.") }}</p>
59 <h2>Marcello Stanisci</h2> 59 </div>
60 <img src="{{ url('team-images/marcello-stanisci.jpg') }}" height="240" alt="Marcello Stanisci" align="middle"> 60 <div class="col-lg-4">
61 <p>{{ _("Software engineer.") }}</p> 61 <h2>Gabor Toth</h2>
62 </div> 62 <p>{{ _("Software engineer.") }}</p>
63 </div> 63 </div>
64 <div class="row"> 64</div>
65 <div class="col-lg-4"> 65<div class="row">
66 <h2>Dr. Nana Karlstetter</h2> 66 <div class="col-lg-4">
67 <img src="{{ url('team-images/nana-karlstetter.jpg') }}" height="240" alt="Nana Karlstetter" align="middle"> 67 <h2><a href="https://ar.linkedin.com/in/martinolivera">Martín Olivera</a></h2>
68 <p>{{ _("Sustainable business development.") }}</p> 68 <p>{{ _("Translator (Spanish)") }}</p>
69 </div> 69 </div>
70 <div class="col-lg-4"> 70 <div class="col-lg-4">
71 <h2>Benedikt Müller</h2> 71 <h2>Greta Breveglieri</h2>
72 <p>{{ _("Software engineer. Works on libebics.") }}</p> 72 <p>{{ _("Translator (Italian)") }}</p>
73 </div> 73 </div>
74 <div class="col-lg-4"> 74 <div class="col-lg-4">
75 <h2>Gabor Toth</h2> 75 <h2>Ylenia Baldanza</h2>
76 <p>{{ _("Software engineer.") }}</p> 76 <p>{{ _("Translator (Italian)") }}</p>
77 </div> 77 </div>
78 </div> 78</div>
79 <div class="row"> 79<div class="row">
80 <div class="col-lg-4"> 80 <div class="col-lg-4">
81 <h2><a href="https://ar.linkedin.com/in/martinolivera">Martín Olivera</a></h2> 81 <h2><a href="https://www.nitrokey.com/">Jan Suhr</a></h2>
82 <p>{{ _("Translator (Spanish)") }}</p> 82 <p>{{ _("Hardware security module") }}</p>
83 </div> 83 </div>
84 <div class="col-lg-4"> 84 <div class="col-lg-4">
85 <h2>Greta Breveglieri</h2> 85 <h2><a href="http://www.goebel-consult.de/">Hartmut Goebel</a></h2>
86 <p>{{ _("Translator (Italian)") }}</p> 86 <p>{{ _("Risk management") }}</p>
87 </div> 87 </div>
88 <div class="col-lg-4"> 88 <div class="col-lg-4">
89 <h2>Ylenia Baldanza</h2> 89 <h2><a href="https://www.sec.in.tum.de/julian-kirsch/">Julian Kirsch</a></h2>
90 <p>{{ _("Translator (Italian)") }}</p> 90 <p>{{ _("PhD student, TU Munich. Currently teaching.") }}</p>
91 </div> 91 </div>
92 </div> 92</div>
93 <div class="row"> 93<div class="row">
94 <div class="col-lg-4"> 94 <div class="col-lg-4">
95 <h2><a href="https://www.nitrokey.com/">Jan Suhr</a></h2> 95 <h2>Oliver Broome</h2>
96 <p>{{ _("Hardware security module") }}</p> 96 <p>{{ _("Software engineer. Works on Android wallet.") }}</p>
97 </div> 97 </div>
98 <div class="col-lg-4"> 98</div>
99 <h2><a href="http://www.goebel-consult.de/">Hartmut Goebel</a></h2> 99</div>
100 <p>{{ _("Risk management") }}</p> 100{% endblock body_content %}
101 </div>
102 <div class="col-lg-4">
103 <h2><a href="https://www.sec.in.tum.de/julian-kirsch/">Julian Kirsch</a></h2>
104 <p>{{ _("PhD student, TU Munich. Currently teaching.") }}</p>
105 </div>
106 </div>
107 <div class="row">
108 <div class="col-lg-4">
109 <h2>Oliver Broome</h2>
110 <p>{{ _("Software engineer. Works on Android wallet.") }}</p>
111 </div>
112 </div>
113 {% include "common/footer.j2.inc" %}
114 </div> <!-- /container -->
115 </body>
116</html>
diff --git a/common/base.j2 b/common/base.j2
index 58114b5d..d515ea1d 100644
--- a/common/base.j2
+++ b/common/base.j2
@@ -6,7 +6,7 @@
6 <meta name="description" content="{{ _('Taxable Anonymous Libre Electronic Reserves') }}" /> 6 <meta name="description" content="{{ _('Taxable Anonymous Libre Electronic Reserves') }}" />
7 {% include "common/header.j2.inc" %} 7 {% include "common/header.j2.inc" %}
8 </head> 8 </head>
9 <body> 9 <body id="mybody">
10 {% include "common/navigation.j2.inc" %} 10 {% include "common/navigation.j2.inc" %}
11 {% block body_content %}{% endblock %} 11 {% block body_content %}{% endblock %}
12 <div class="container-fluid"> 12 <div class="container-fluid">
diff --git a/common/footer.j2.inc b/common/footer.j2.inc
index cc96baad..f5395b34 100644
--- a/common/footer.j2.inc
+++ b/common/footer.j2.inc
@@ -1,7 +1,4 @@
1 <div class="footer"> 1<div class="footer">
2 <p>&copy; <a href="https://gnunet.org/ev">GNUnet e.V.</a> and Inria 2015, 2016, 2017</p> 2 <p>&copy; <a href="https://gnunet.org/ev">GNUnet e.V.</a> and Inria 2015, 2016, 2017</p>
3 <p>{{ _("This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.") }}</p> 3 <p>{{ _("This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.") }}</p>
4 </div> 4</div>
5 <script type="text/javascript">//<![CDATA[
6 activate_menu();
7 //]]></script>
diff --git a/common/header.j2.inc b/common/header.j2.inc
index 3087d23e..ab0f6ba4 100644
--- a/common/header.j2.inc
+++ b/common/header.j2.inc
@@ -32,7 +32,6 @@
32 <!-- Bootstrap core CSS --> 32 <!-- Bootstrap core CSS -->
33 <link href="{{ url('dist/css/bootstrap.min.css') }}" rel="stylesheet"> 33 <link href="{{ url('dist/css/bootstrap.min.css') }}" rel="stylesheet">
34 <!-- Custom styles for this template --> 34 <!-- Custom styles for this template -->
35 <link href="{{ url('justified-nav.css') }}" rel="stylesheet">
36 <link href="{{ url('styles.css') }}" rel="stylesheet"> 35 <link href="{{ url('styles.css') }}" rel="stylesheet">
37 36
38 <script src="{{ url('menu.js') }}"></script> 37 <script src="{{ url('menu.js') }}"></script>
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index d4c63c8f..ee2d74e4 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -1,63 +1,44 @@
1 <div class="navbar navbar-fixed-top navbar-taler" role="navigation"> 1<nav class="navbar navbar-default">
2 <div class="navbar-header"> 2 <div class="container-fluid">
3 <button class="navbar-toggle btn btn-default dropdown-toggle mobile-lang" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 3 <ul class="nav navbar-nav">
4 <img src="{{ url('images/'+lang+'.png') }}"/></img> 4 <li class="{{ 'active' if filename == 'index.html' else '' }}"><a href="index.html">Home</a></li>
5 <span class="caret"></span> 5 <li class="{{ 'active' if filename == 'investors.html' else '' }}"><a href="investors.html">Investors</a></li>
6 </button> 6 <li class="dropdown">
7 <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> 7 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Resources <span class="caret"></span></a>
8 <li> 8 <ul class="dropdown-menu">
9 <a href="{{ self_localized('en') }}"><img src="{{ url('images/gb.png') }}" height="15" width="23" alt="English">English</a> 9 <li><a href="architecture.html">System Architecture</a></li>
10 </li> 10 <li><a href="faq.html">FAQ</a></li>
11 <li> 11 <li><a href="governments.html">Taler for Governments</a></li>
12 <a href="{{ self_localized('de') }}"><img src="{{ url('images/de.png') }}" height="15" width="25" alt="Deutsch">Deutsch</a> 12 <li><a href="developers.html">Taler for Developers</a></li>
13 </li> 13 <li><a href="merchants.html">Taler for Merchants</a></li>
14 <li> 14 </ul>
15 <a href="{{ self_localized('fr') }}"><img src="{{ url('images/fr.png') }}" height="15" width="22" alt="Français">Français</a> 15 </li>
16 </li> 16 <li class="{{ 'active' if filename == 'about.html' else '' }}"><a href="about.html">Team</a></li>
17 <li> 17 </ul>
18 <a href="{{ self_localized('it') }}"><img src="{{ url('images/it.png') }}" height="15" width="22" alt="Italiano">Italiano</a> 18 <ul class="nav navbar-right navbar-form">
19 </li> 19 <li>
20 <li> 20 <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
21 <a href="{{ self_localized('es') }}"><img src="{{ url('images/es.png') }}" height="15" width="23" alt="Español">Español</a> 21 <img src="{{ url('images/'+lang+'.png') }}"/></img>
22 </li> 22 <span class="caret"></span>
23 </ul> 23 </button>
24 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar"> 24 <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
25 <span class="sr-only">Toggle navigation</span> 25 <li>
26 <span class="icon-bar"></span> 26 <a href="{{ self_localized('en') }}"><img src="{{ url('images/gb.png') }}" height="15" width="23" alt="English">English</a>
27 <span class="icon-bar"></span> 27 </li>
28 <span class="icon-bar"></span> 28 <li>
29 </button> 29 <a href="{{ self_localized('de') }}"><img src="{{ url('images/de.png') }}" height="15" width="25" alt="Deutsch">Deutsch</a>
30 </div> 30 </li>
31 <div class="collapse navbar-collapse" id="main-navbar"> 31 <li>
32 <ul class="nav nav-justified"> 32 <a href="{{ self_localized('fr') }}"><img src="{{ url('images/fr.png') }}" height="15" width="22" alt="Français">Français</a>
33 <li class="m_index"><a href="{{ url_localized('index.html') }}">{{ _("Home") }}</a></li> 33 </li>
34 <li class="m_investors"><a href="{{ url_localized('investors.html') }}">{{ _("Investors") }}</a></li> 34 <li>
35 <li class="m_about"><a href="{{ url_localized('about.html') }}">{{ _("About&nbsp;us") }}</a></li> 35 <a href="{{ self_localized('it') }}"><img src="{{ url('images/it.png') }}" height="15" width="22" alt="Italiano">Italiano</a>
36 <li> 36 </li>
37 <div class="dropdown nav-lang"> 37 <li>
38 <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 38 <a href="{{ self_localized('es') }}"><img src="{{ url('images/es.png') }}" height="15" width="23" alt="Español">Español</a>
39 <img src="{{ url('images/'+lang+'.png') }}"/></img> 39 </li>
40 <span class="caret"></span> 40 </ul>
41 </button> 41 </li>
42 <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> 42 </ul>
43 <li> 43 </div>
44 <a href="{{ self_localized('en') }}"><img src="{{ url('images/gb.png') }}" height="15" width="23" alt="English">English</a> 44</nav>
45 </li>
46 <li>
47 <a href="{{ self_localized('de') }}"><img src="{{ url('images/de.png') }}" height="15" width="25" alt="Deutsch">Deutsch</a>
48 </li>
49 <li>
50 <a href="{{ self_localized('fr') }}"><img src="{{ url('images/fr.png') }}" height="15" width="22" alt="Français">Français</a>
51 </li>
52 <li>
53 <a href="{{ self_localized('it') }}"><img src="{{ url('images/it.png') }}" height="15" width="22" alt="Italiano">Italiano</a>
54 </li>
55 <li>
56 <a href="{{ self_localized('es') }}"><img src="{{ url('images/es.png') }}" height="15" width="23" alt="Español">Español</a>
57 </li>
58 </ul>
59 </div>
60 </li>
61 </ul>
62 </div>
63 </div>
diff --git a/developers.html.j2 b/developers.html.j2
index f6023274..3cad801c 100644
--- a/developers.html.j2
+++ b/developers.html.j2
@@ -1,232 +1,223 @@
1<!DOCTYPE html> 1{% extends "common/base.j2" %}
2<html lang="{{ _('en') }}"> 2{% block body_content %}
3 <head> 3<div class="jumbotron">
4 <meta charset="UTF-8"/> 4 <div class="text-center">
5 <title>{{ _("GNU Taler") }} - {{ _("Developers") }}</title> 5 <h1>{{ _("Taler for developers") }}</h1>
6 <meta name="description" content=""/> 6 </div>
7 {% include "common/header.j2.inc" %} 7</div>
8 </head> 8
9 <body> 9<div class="container">
10 <div class="container"> 10 <div class="row">
11 {% include "common/navigation.j2.inc" %} 11 <div class="col-lg-6">
12 <!-- Jumbotron --> 12 <h2>{{ _("Free") }}</h2>
13 <div class="jumbotron"> 13
14 <h1>{{ _("Taler for developers") }}</h1> 14 <p>{{ _("Taler is free software implementing an open
15 </div> 15 protocol. Anybody is welcome to inspect our code
16 16 and integrate our reference implementation into
17 <!-- Example row of columns --> 17 their applications. Different components of Taler
18 <div class="row"> 18 are being made available under different
19 <div class="col-lg-6"> 19 licenses. The Affero GPLv3+ is used for the
20 <h2>{{ _("Free") }}</h2> 20 exchange, the LGPLv3+ is used for reference code
21 21 demonstrating integration with merchant platforms,
22 <p>{{ _("Taler is free software implementing an open 22 and licenses like Apache/Mozilla/GPLv3+ are used
23 protocol. Anybody is welcome to inspect our code 23 for wallets and related customer-facing software.
24 and integrate our reference implementation into 24 We are open for constructive suggestions for
25 their applications. Different components of Taler 25 maximizing the adoption of this libre payment
26 are being made available under different 26 platform. ") }}</p>
27 licenses. The Affero GPLv3+ is used for the 27
28 exchange, the LGPLv3+ is used for reference code 28 </div>
29 demonstrating integration with merchant platforms, 29 <div class="col-lg-6">
30 and licenses like Apache/Mozilla/GPLv3+ are used 30 <h2>{{ _("RESTful") }}</h2>
31 for wallets and related customer-facing software. 31
32 We are open for constructive suggestions for 32 <p>{{ _("Taler is designed to work on the Internet. To
33 maximizing the adoption of this libre payment 33 ensure that Taler payments can work with
34 platform. ") }}</p> 34 restrictive network setups, Taler uses a RESTful
35 35 protocol over HTTP or HTTPS. Taler's security does
36 </div> 36 not depend upon the use of HTTPS, but obviously
37 <div class="col-lg-6"> 37 merchants may choose to offer HTTPS for consistency
38 <h2>{{ _("RESTful") }}</h2> 38 and because it generally is better for privacy
39 39 compared to HTTP. Taler uses JSON to encode
40 <p>{{ _("Taler is designed to work on the Internet. To 40 structure data, making it easy to integrate Taler
41 ensure that Taler payments can work with 41 with existing Web applications. Taler's protocol
42 restrictive network setups, Taler uses a RESTful 42 is documented in
43 protocol over HTTP or HTTPS. Taler's security does 43 detail <a href='https://api.taler.net/'>here</a>.
44 not depend upon the use of HTTPS, but obviously 44 ") }}</p>
45 merchants may choose to offer HTTPS for consistency 45
46 and because it generally is better for privacy 46 </div>
47 compared to HTTP. Taler uses JSON to encode 47 </div>
48 structure data, making it easy to integrate Taler 48 <div class="row">
49 with existing Web applications. Taler's protocol 49 <div class="col-lg-4">
50 is documented in 50 <h2>{{ _("Code") }}</h2>
51 detail <a href='https://api.taler.net/'>here</a>. 51
52 ") }}</p> 52 <p>{{ _("Taler is currently primarily developed by a
53 53 research team at Inria and GNUnet e.V. However,
54 </div> 54 contributions from anyone are welcome. Our Git
55 </div> 55 repositories can be cloned using the Git and HTTP
56 <div class="row"> 56 access methods against <tt>git.taler.net</tt> with
57 <div class="col-lg-4"> 57 the name of the respective repository. A list of
58 <h2>{{ _("Code") }}</h2> 58 public repositories can be found in
59 59 our <a href='https://git.taler.net/'>GitWeb</a>.
60 <p>{{ _("Taler is currently primarily developed by a 60 ") }}</p>
61 research team at Inria and GNUnet e.V. However, 61
62 contributions from anyone are welcome. Our Git 62 </div>
63 repositories can be cloned using the Git and HTTP 63 <div class="col-lg-4">
64 access methods against <tt>git.taler.net</tt> with 64 <h2>{{ _("Documentation") }}</h2>
65 the name of the respective repository. A list of 65
66 public repositories can be found in 66 <p>{{ _("In addition to this website,
67 our <a href='https://git.taler.net/'>GitWeb</a>. 67 the <a href='https://git.taler.net/'>documented
68 ") }}</p> 68 code</a> and
69 69 the <a href='https://api.taler.net/'>API
70 </div> 70 documentation</a>, we are in the process of
71 <div class="col-lg-4"> 71 preparing a comprehensive design document which
72 <h2>{{ _("Documentation") }}</h2> 72 will be published here soon. ") }}</p>
73 73 </div>
74 <p>{{ _("In addition to this website, 74 <div class="col-lg-4">
75 the <a href='https://git.taler.net/'>documented 75 <h2>{{ _("Discussion") }}</h2>
76 code</a> and 76
77 the <a href='https://api.taler.net/'>API 77 <p>{{ _("We have a mailinglist for developer discussions.
78 documentation</a>, we are in the process of 78 You can subscribe to it or read the list archive at
79 preparing a comprehensive design document which 79 <a href='http://lists.gnu.org/mailman/listinfo/taler'>http://lists.gnu.org/mailman/listinfo/taler</a>.") }}</p>
80 will be published here soon. ") }}</p> 80 </div>
81 </div> 81 </div>
82 <div class="col-lg-4"> 82
83 <h2>{{ _("Discussion") }}</h2> 83 <div class="row">
84 84 <div class="col-lg-4">
85 <p>{{ _("We have a mailinglist for developer discussions. 85 <h2>{{ _("Regression Testing") }}</h2>
86 You can subscribe to it or read the list archive at 86
87 <a href='http://lists.gnu.org/mailman/listinfo/taler'>http://lists.gnu.org/mailman/listinfo/taler</a>.") }}</p> 87 <p>{{ _("We have
88 </div> 88 <a href='https://buildbot.net/'>Buildbot</a>
89 </div> 89 automation tests to detect regressions and check
90 90 for portability at
91 <div class="row"> 91 <a href='https://buildbot.taler.net/'>buildbot.taler.net</a>.
92 <div class="col-lg-4"> 92 ") }}</p>
93 <h2>{{ _("Regression Testing") }}</h2> 93 </div>
94 94 <div class="col-lg-4" note="not yet operational">
95 <p>{{ _("We have 95 <h2>{{ _("Code Coverage Analysis") }}</h2>
96 <a href='https://buildbot.net/'>Buildbot</a> 96
97 automation tests to detect regressions and check 97 <p>{{ _("We use
98 for portability at 98 <a href='http://ltp.sourceforge.net/coverage/lcov.php'>LCOV</a>
99 <a href='https://buildbot.taler.net/'>buildbot.taler.net</a>. 99 to analyze the code coverage of our tests, the
100 ") }}</p> 100 results are available
101 </div> 101 at <a href='https://lcov.taler.net/'>lcov.taler.net</a>.
102 <div class="col-lg-4" note="not yet operational"> 102 ") }}</p>
103 <h2>{{ _("Code Coverage Analysis") }}</h2> 103 </div>
104 104 <div class="col-lg-4">
105 <p>{{ _("We use 105 <h2>{{ _("Performance Analysis") }}</h2>
106 <a href='http://ltp.sourceforge.net/coverage/lcov.php'>LCOV</a> 106
107 to analyze the code coverage of our tests, the 107 <p>{{ _("We
108 results are available 108 use <a href='https://gnunet.org/gauger'>Gauger</a>
109 at <a href='https://lcov.taler.net/'>lcov.taler.net</a>. 109 for performance regression analysis of the exchange
110 ") }}</p> 110 backend
111 </div> 111 at <a href='https://gauger.taler.net/'>gauger.taler.net</a>.
112 <div class="col-lg-4"> 112 ") }}</p>
113 <h2>{{ _("Performance Analysis") }}</h2> 113 </div>
114 114 </div>
115 <p>{{ _("We 115
116 use <a href='https://gnunet.org/gauger'>Gauger</a> 116 <div class="col-lg-12">
117 for performance regression analysis of the exchange 117 <h2 id="overview">{{ _("Taler system overview") }}</h2>
118 backend 118
119 at <a href='https://gauger.taler.net/'>gauger.taler.net</a>. 119 <p>{{ _("The Taler system consists of protocols executed among
120 ") }}</p> 120 a number of actors with the help
121 </div> 121 of <a href='https://www.fsf.org/'>Free Software</a>
122 </div> 122 as illustrated in the illustration on the right.
123 123 Typical transactions involve the following steps: ")
124 <div class="col-lg-12"> 124 }}</p>
125 <h2 id="overview">{{ _("Taler system overview") }}</h2> 125
126 126 <img src="{{ url('images/system.svg') }}" alt="system overview" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
127 <p>{{ _("The Taler system consists of protocols executed among 127 <ol>
128 a number of actors with the help 128 <li>{{ _("A customer instructs his <b>bank</b> to
129 of <a href='https://www.fsf.org/'>Free Software</a> 129 transfer funds from his account to the Taler
130 as illustrated in the illustration on the right. 130 exchange (top left). In the subject of the
131 Typical transactions involve the following steps: ") 131 transaction, he includes an authentication
132 }}</p> 132 token from his electronic <b>wallet</b>. In
133 133 Taler terminology, the customer creates a
134 <img src="{{ url('images/system.svg') }}" alt="system overview" style="float: right; margin: 50px 5px 5px 5px;" width="50%"> 134 reserve at the exchange. ") }}</li>
135 <ol> 135
136 <li>{{ _("A customer instructs his <b>bank</b> to 136 <li>{{ _("Once the exchange has received the wire
137 transfer funds from his account to the Taler 137 transfer, it allows the customer's electronic
138 exchange (top left). In the subject of the 138 wallet to <b>withdraw</b> electronic coins.
139 transaction, he includes an authentication 139 The electronic coins are digital
140 token from his electronic <b>wallet</b>. In 140 representations of the original currency from
141 Taler terminology, the customer creates a 141 the transfer. It is important to note that the
142 reserve at the exchange. ") }}</li> 142 exchange does not learn the &quot;serial
143 143 numbers&quot; of the coins created in this
144 <li>{{ _("Once the exchange has received the wire 144 process, so it cannot tell later which customer
145 transfer, it allows the customer's electronic 145 purchased what at which merchant. The use of
146 wallet to <b>withdraw</b> electronic coins. 146 Taler does not change the currency or the total
147 The electronic coins are digital 147 value of the funds (except for fees which the
148 representations of the original currency from 148 exchange may charge for the service). ")
149 the transfer. It is important to note that the 149 }}</li>
150 exchange does not learn the &quot;serial 150
151 numbers&quot; of the coins created in this 151 <li>{{ _("Once the customer has the digital coins in his
152 process, so it cannot tell later which customer 152 wallet, the wallet can be used to <b>spend</b>
153 purchased what at which merchant. The use of 153 the coins with merchant portals that support
154 Taler does not change the currency or the total 154 the Taler payment system and accept the
155 value of the funds (except for fees which the 155 respective exchange as a business partner
156 exchange may charge for the service). ") 156 (bottom arrow). This creates a digital contract
157 }}</li> 157 signed by the customer's coins and the
158 158 merchant. If necessary, the customer can later
159 <li>{{ _("Once the customer has the digital coins in his 159 use this digitally signed contract in a court
160 wallet, the wallet can be used to <b>spend</b> 160 of law to prove the exact terms of the contract
161 the coins with merchant portals that support 161 and that he paid the respective amount. The
162 the Taler payment system and accept the 162 customer does not learn the banking details of
163 respective exchange as a business partner 163 the merchant, and Taler does not require the
164 (bottom arrow). This creates a digital contract 164 merchant to learn the identity of the
165 signed by the customer's coins and the 165 customer. Naturally, the customer can spend any
166 merchant. If necessary, the customer can later 166 fraction of his digital coins (the system takes
167 use this digitally signed contract in a court 167 care of customers getting change). ") }}</li>
168 of law to prove the exact terms of the contract 168
169 and that he paid the respective amount. The 169 <li>{{ _("Merchants receiving digital
170 customer does not learn the banking details of 170 coins <b>deposit</b> the respective receipts
171 the merchant, and Taler does not require the 171 that resulted from the contract signing with
172 merchant to learn the identity of the 172 the customer at the exchange to redeem the
173 customer. Naturally, the customer can spend any 173 coins. The deposit step does not reveal the
174 fraction of his digital coins (the system takes 174 details of the contract between the customer
175 care of customers getting change). ") }}</li> 175 and the merchant or the identity of the
176 176 customer to the exchange in any way. However,
177 <li>{{ _("Merchants receiving digital 177 the exchange does learn the identity of the
178 coins <b>deposit</b> the respective receipts 178 merchant via the provided bank routing
179 that resulted from the contract signing with 179 information. The merchant can, for example
180 the customer at the exchange to redeem the 180 when compelled by the state for taxation,
181 coins. The deposit step does not reveal the 181 provide information linking the individual
182 details of the contract between the customer 182 deposit to the respective contract signed by
183 and the merchant or the identity of the 183 the customer. Thus, the exchange's database
184 customer to the exchange in any way. However, 184 allows the state to enforce that merchants pay
185 the exchange does learn the identity of the 185 applicable taxes (and do not engage in illegal
186 merchant via the provided bank routing 186 contracts). ") }}</li>
187 information. The merchant can, for example 187
188 when compelled by the state for taxation, 188 <li>{{ _("Finally, the exchange transfers funds
189 provide information linking the individual 189 corresponding to the digital coins redeemed by
190 deposit to the respective contract signed by 190 the merchants to the merchant's <b>bank</b>
191 the customer. Thus, the exchange's database 191 account. The exchange may combine multiple
192 allows the state to enforce that merchants pay 192 small transactions into one larger bank
193 applicable taxes (and do not engage in illegal 193 transfer. The merchant can query the exchange
194 contracts). ") }}</li> 194 about the relationship between the bank
195 195 transfers and the individual claims that were
196 <li>{{ _("Finally, the exchange transfers funds 196 deposited. ") }}</li>
197 corresponding to the digital coins redeemed by 197
198 the merchants to the merchant's <b>bank</b> 198 <li>{{ _("Most importantly, the exchange keeps
199 account. The exchange may combine multiple 199 cryptographic proofs that allow it to
200 small transactions into one larger bank 200 demonstrate that it is operating correctly to
201 transfer. The merchant can query the exchange 201 third parties. The system requires an
202 about the relationship between the bank 202 external <b>auditor</b>, such as a
203 transfers and the individual claims that were 203 government-appointed financial regulatory body,
204 deposited. ") }}</li> 204 to frequently verify the exchange's databases
205 205 and check that its bank balance matches the
206 <li>{{ _("Most importantly, the exchange keeps 206 total value of the remaining coins in
207 cryptographic proofs that allow it to 207 circulation. ") }}</li>
208 demonstrate that it is operating correctly to 208
209 third parties. The system requires an 209 <li>{{ _("Without the auditor, the exchange operators
210 external <b>auditor</b>, such as a 210 could embezzle funds they are holding in
211 government-appointed financial regulatory body, 211 reserve. Customers and merchants cannot cheat
212 to frequently verify the exchange's databases 212 each other or the exchange. If any party's
213 and check that its bank balance matches the 213 computers are compromised, the financial damage
214 total value of the remaining coins in 214 is limited to the respective party and
215 circulation. ") }}</li> 215 proportional to the funds they have in
216 216 circulation during the period of the
217 <li>{{ _("Without the auditor, the exchange operators 217 compromise. ") }}</li>
218 could embezzle funds they are holding in 218 </ol>
219 reserve. Customers and merchants cannot cheat 219 <p></p>
220 each other or the exchange. If any party's 220 </div>
221 computers are compromised, the financial damage 221 {% include "common/footer.j2.inc" %}:w
222 is limited to the respective party and 222</div> <!-- /container -->
223 proportional to the funds they have in 223{% endblock body_content %}
224 circulation during the period of the
225 compromise. ") }}</li>
226 </ol>
227 <p></p>
228 </div>
229 {% include "common/footer.j2.inc" %}:w
230 </div> <!-- /container -->
231 </body>
232</html>
diff --git a/governments.html.j2 b/governments.html.j2
index 2512bb22..23494400 100644
--- a/governments.html.j2
+++ b/governments.html.j2
@@ -1,155 +1,144 @@
13<!DOCTYPE html> 1{% extends "common/base.j2" %}
2<html lang="{{ _('en') }}"> 2{% block body_content %}
3 <head> 3
4 <meta charset="UTF-8"/> 4<div class="jumbotron">
5 <title>{{ _("GNU Taler") }} - {{ _("Governments") }}</title> 5 <div class="container text-center">
6 <meta name="description" content=""/> 6 <h1>{{ _("Advantages for Governments") }}</h1>
7 {% include "common/header.j2.inc" %} 7 <p>{{ _("Taler provides accountability to ensure business
8 </head> 8 accepting payments operate legally, while also
9 <body> 9 respecting civil liberties of citizens spending
10 <div class="container"> 10 digital cash. Taler is a commons, a payment system
11 {% include "common/navigation.j2.inc" %} 11 based on open standards and free software. Taler
12 <!-- Jumbotron --> 12 needs governments to set a financial framework and
13 <div class="jumbotron"> 13 to act as trusted regulators. Taler contributes to
14 <h1>{{ _("Advantages for Governments") }}</h1> 14 digital sovereignty in the critial financial
15 <!-- p><a class="btn btn-lg btn-success" href="#" role="button">Get started today</a></p --> 15 infrastructure.") }}</p>
16 <div class="col-lg-12"> 16 </div>
17 17</div>
18 <p>{{ _("Taler provides accountability to ensure business 18
19 accepting payments operate legally, while also 19<div class="container">
20 respecting civil liberties of citizens spending 20
21 digital cash. Taler is a commons, a payment system 21<!-- Example row of columns -->
22 based on open standards and free software. Taler 22<div class="row">
23 needs governments to set a financial framework and 23 <div class="col-lg-6">
24 to act as trusted regulators. Taler contributes to 24 <h2>{{ _("Taxable") }}</h2>
25 digital sovereignty in the critial financial 25
26 infrastructure.") }}</p> 26 <p>{{ _("Taler was
27 27 built with the goal of fighting corruption and supporting taxation.
28 </div> 28 With Taler, the receiver of any form of payment is
29 </div> 29 easily identified by the government, and the merchant
30 30 can be compelled to provide the contract that was accepted
31 <!-- Example row of columns --> 31 by the customer. Governments can use this data to
32 <div class="row"> 32 tax businesses and individuals based on their
33 <div class="col-lg-6"> 33 income, making tax evasion and black markets less
34 <h2>{{ _("Taxable") }}</h2> 34 viable.") }}</p>
35 35
36 <p>{{ _("Taler was 36 <p>{{ _("Thus, despite offering anonymity for citizens
37 built with the goal of fighting corruption and supporting taxation. 37 spending digital cash to buy goods and services,
38 With Taler, the receiver of any form of payment is 38 Taler also ensures that the state can observe
39 easily identified by the government, and the merchant 39 incoming funds. This can be used to ensure
40 can be compelled to provide the contract that was accepted 40 businesses engage only in legal activities, and do
41 by the customer. Governments can use this data to 41 not evade income tax, sales tax or value-added tax.
42 tax businesses and individuals based on their 42 However, this observational capability does not
43 income, making tax evasion and black markets less 43 extend to the immediate personal domain. In
44 viable.") }}</p> 44 particular, sharing access to funds within a family
45 45 or synchronizing wallets across multiple devices is not
46 <p>{{ _("Thus, despite offering anonymity for citizens 46 subject to monitoring.") }}</p> </div>
47 spending digital cash to buy goods and services, 47
48 Taler also ensures that the state can observe 48 <div class="col-lg-6">
49 incoming funds. This can be used to ensure 49 <h2>{{ _("Secure") }}</h2>
50 businesses engage only in legal activities, and do 50
51 not evade income tax, sales tax or value-added tax. 51 <p>{{ _("Taler's payments are cryptographically
52 However, this observational capability does not 52 secured. Thus, customers, merchants and the
53 extend to the immediate personal domain. In 53 exchange can mathematically demonstrate their
54 particular, sharing access to funds within a family 54 lawful behavior in court in case of
55 or synchronizing wallets across multiple devices is not 55 disputes. Financial damages are strictly limited,
56 subject to monitoring.") }}</p> </div> 56 improving economic security for individuals,
57 57 merchants, the exchange and the state.") }}
58 <div class="col-lg-6"> 58
59 <h2>{{ _("Secure") }}</h2> 59 <p>{{ _("By design, the Taler payment service provider is
60 60 subject to financial regulation. Financial
61 <p>{{ _("Taler's payments are cryptographically 61 regulation and regular audits are critical to
62 secured. Thus, customers, merchants and the 62 establish trust. In particular, the Taler design
63 exchange can mathematically demonstrate their 63 mandates the existence of an independent auditor
64 lawful behavior in court in case of 64 who checks cryptographic proofs that accumulate at
65 disputes. Financial damages are strictly limited, 65 the payment service provider to ensure that the
66 improving economic security for individuals, 66 escrow account is managed honestly. This ensures
67 merchants, the exchange and the state.") }} 67 that the payment service provider does not threaten
68 68 the economy due to fraud.") }}</p> </div> </div>
69 <p>{{ _("By design, the Taler payment service provider is 69 <div class="row"> <div class="col-lg-6"> <h2>{{
70 subject to financial regulation. Financial 70 _("Libre") }}</h2>
71 regulation and regular audits are critical to 71
72 establish trust. In particular, the Taler design 72 <p>{{ _("Taler is free software implementing an open
73 mandates the existence of an independent auditor 73 protocol standard. Thus, Taler will enable
74 who checks cryptographic proofs that accumulate at 74 competition and avoid the monopolization of payment
75 the payment service provider to ensure that the 75 systems that threatens global political and
76 escrow account is managed honestly. This ensures 76 financial stability today.") }}</p>
77 that the payment service provider does not threaten 77
78 the economy due to fraud.") }}</p> </div> </div> 78
79 <div class="row"> <div class="col-lg-6"> <h2>{{ 79 </div>
80 _("Libre") }}</h2> 80 <div class="col-lg-6">
81 81 <h2>{{ _("Efficient") }}</h2>
82 <p>{{ _("Taler is free software implementing an open 82
83 protocol standard. Thus, Taler will enable 83 <p>{{ _("Taler has an efficient design. Unlike
84 competition and avoid the monopolization of payment 84 timeline-based payment systems, such as Bitcoin,
85 systems that threatens global political and 85 Taler will not threaten the availability of
86 financial stability today.") }}</p> 86 national electric grids or (significantly)
87 87 contribute to environmental pollution.") }}</p>
88 88
89 </div> 89 </div>
90 <div class="col-lg-6"> 90</div>
91 <h2>{{ _("Efficient") }}</h2> 91<div class="col-lg-12">
92 92 <h2 id="overview">{{ _("Taler as seen by governments") }}</h2>
93 <p>{{ _("Taler has an efficient design. Unlike 93
94 timeline-based payment systems, such as Bitcoin, 94 <p>{{ _("Governments can observe traditional wire transfers
95 Taler will not threaten the availability of 95 entering and leaving the Taler system, and require
96 national electric grids or (significantly) 96 merchants and exchange operators to provide certain
97 contribute to environmental pollution.") }}</p> 97 information during financial audits. Exchange
98 98 operators are expected to be permanently checked by
99 </div> 99 auditors, while merchants may be required to reveal
100 </div> 100 information during regular tax audits. Information
101 <div class="col-lg-12"> 101 available to the government includes: ") }}</p>
102 <h2 id="overview">{{ _("Taler as seen by governments") }}</h2> 102
103 103 <p>
104 <p>{{ _("Governments can observe traditional wire transfers 104 <img src="{{ url('images/government.svg') }}" alt="government perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
105 entering and leaving the Taler system, and require 105 </p><ul>
106 merchants and exchange operators to provide certain 106
107 information during financial audits. Exchange 107 <li>{{ _("From the banking system: The total amount of
108 operators are expected to be permanently checked by 108 digital currency obtained by a customer. The
109 auditors, while merchants may be required to reveal 109 government could impose limits on how many
110 information during regular tax audits. Information 110 digital coins a customer may withdraw within a
111 available to the government includes: ") }}</p> 111 given timeframe.") }}</li>
112 112
113 <p> 113 <li>{{ _("From the banking system: The total amount of
114 <img src="{{ url('images/government.svg') }}" alt="government perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%"> 114 income received by any merchant via the Taler
115 </p><ul> 115 system.") }}</li>
116 116
117 <li>{{ _("From the banking system: The total amount of 117 <li>{{ _("From auditing the exchange: The amounts of
118 digital currency obtained by a customer. The 118 digital coins legitimately withdrawn by
119 government could impose limits on how many 119 customers from the exchange, the value of
120 digital coins a customer may withdraw within a 120 non-redeemed digital coins in customer's
121 given timeframe.") }}</li> 121 wallets, the value and corresponding wire
122 122 details of deposit operations performed by
123 <li>{{ _("From the banking system: The total amount of 123 merchants with the exchange, and the income of
124 income received by any merchant via the Taler 124 the exchange from transaction fees.") }}</li>
125 system.") }}</li> 125
126 126 <li>{{ _("From auditing merchants: For each deposit
127 <li>{{ _("From auditing the exchange: The amounts of 127 operation, the exact details of the underlying
128 digital coins legitimately withdrawn by 128 contract that was signed between customer and
129 customers from the exchange, the value of 129 merchant. However, this information would
130 non-redeemed digital coins in customer's 130 typically not include the identity of the
131 wallets, the value and corresponding wire 131 customer. Note that while the customer can
132 details of deposit operations performed by 132 decide to prove that it was his transaction
133 merchants with the exchange, and the income of 133 (i.e. in court when suing the merchant if the
134 the exchange from transaction fees.") }}</li> 134 merchant failed to deliver on the contract),
135 135 merchant, exchange and government cannot find
136 <li>{{ _("From auditing merchants: For each deposit 136 out the customer's identity from the information
137 operation, the exact details of the underlying 137 that Taler collects.") }}</li>
138 contract that was signed between customer and 138
139 merchant. However, this information would 139 </ul>
140 typically not include the identity of the 140 <p></p>
141 customer. Note that while the customer can 141</div>
142 decide to prove that it was his transaction 142</div>
143 (i.e. in court when suing the merchant if the 143
144 merchant failed to deliver on the contract), 144{% endblock body_content %}
145 merchant, exchange and government cannot find
146 out the customer's identity from the information
147 that Taler collects.") }}</li>
148
149 </ul>
150 <p></p>
151 </div>
152 {% include "common/footer.j2.inc" %}
153 </div> <!-- /container -->
154 </body>
155</html>
diff --git a/index.html.j2 b/index.html.j2
index 3d7445a1..362eedad 100644
--- a/index.html.j2
+++ b/index.html.j2
@@ -1,34 +1,32 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<div class="container c_intro"> 3<!-- Jumbotron -->
4 <!-- Jumbotron --> 4<div class="jumbotron">
5 <div class="jumbotron"> 5 <img alt="Taler logo" width="25%" class="center-block" src="{{ url('taler-dold-2.png') }}"></img>
6 <img align="middle" alt="Taler logo" width="33%" src="{{ url('taler-big.svg') }}" style="margin: 0px 0px -120px 0px;">
7 </div>
8 <div class="jumbotron">
9 <h1>{{ _("Independent One-Click Payments!") }}</h1>
10 6
11 <p> 7 <div class="container text-center">
12 {% trans %} 8 <h1>{{ _("Independent One-Click Payments!") }}</h1>
13 Taler is an electronic payment system under 9 <p>
14 development 10 {% trans %}
15 at <a href="http://www.inria.fr/">Inria</a>. We expect to make it operational in 2017. 11 Taler is an electronic payment system under
16 Meanwhile you can learn about Taler on this website, try the <a href="https://demo.taler.net\">demo</a> 12 development
17 and look at our <a href="https://docs.taler.net\">developer</a> and <a href="https://api.taler.net">API</a> documentation. 13 at <a href="http://www.inria.fr/">Inria</a>. We expect to make it operational in 2017.
18 {% endtrans %} 14 Meanwhile you can learn about Taler on this website, try the <a href="https://demo.taler.net\">demo</a>
19 </p> 15 and look at our <a href="https://docs.taler.net\">developer</a> and <a href="https://api.taler.net">API</a> documentation.
20 16 {% endtrans %}
17 </p>
21 </div> 18 </div>
19
22</div> 20</div>
23 21
24 <div class="contianer-fluid c_acronym"> 22 <div class="contianer-fluid c_acronym">
25 <div class="container"> 23 <div class="container">
26 24
27 <h2>Advantages of Taler</h2> 25 <h2>Design goals of Taler</h2>
28 26
29 <div class="row"> 27 <div class="row">
30 <div class="col-lg-4"> 28 <div class="col-lg-4">
31 <strong>{{ _("Taxable") }}</strong> 29 <h3>{{ _("Taxable") }}</h3>
32 30
33 <p> 31 <p>
34 {% trans %} 32 {% trans %}
@@ -40,7 +38,7 @@
40 38
41 </div> 39 </div>
42 <div class="col-lg-4"> 40 <div class="col-lg-4">
43 <strong>{{ _("Privacy-friendly") }}</strong> 41 <h3>{{ _("Privacy-friendly") }}</h3>
44 <p> 42 <p>
45 {% trans %} 43 {% trans %}
46 When you pay with Taler, your identity does not 44 When you pay with Taler, your identity does not
@@ -53,7 +51,7 @@
53 51
54 </div> 52 </div>
55 <div class="col-lg-4"> 53 <div class="col-lg-4">
56 <strong>{{ _("Libre") }}</strong> 54 <h3>{{ _("Libre") }}</h3>
57 55
58 <p> 56 <p>
59 {% trans %} 57 {% trans %}
@@ -69,7 +67,7 @@
69 </div> 67 </div>
70 <div class="row"> 68 <div class="row">
71 <div class="col-lg-4"> 69 <div class="col-lg-4">
72 <strong>{{ _("Practical") }}</strong> 70 <h3>{{ _("Practical") }}</h3>
73 71
74 <p> 72 <p>
75 {% trans %} 73 {% trans %}
@@ -82,7 +80,7 @@
82 80
83 </div> 81 </div>
84 <div class="col-lg-4"> 82 <div class="col-lg-4">
85 <strong>{{ _("Stable") }}</strong> 83 <h3>{{ _("Stable") }}</h3>
86 84
87 <p> 85 <p>
88 {% trans %} 86 {% trans %}
@@ -97,7 +95,7 @@
97 95
98 </div> 96 </div>
99 <div class="col-lg-4"> 97 <div class="col-lg-4">
100 <strong>{{ _("Security-focused") }}</strong> 98 <h3>{{ _("Security-focused") }}</h3>
101 99
102 <p> 100 <p>
103 {% trans %} 101 {% trans %}
@@ -112,6 +110,7 @@
112 </div> 110 </div>
113 </div> 111 </div>
114 </div> 112 </div>
113
115 <div class="container"> 114 <div class="container">
116 <div class="row"> 115 <div class="row">
117 <div class="col-lg-6"> 116 <div class="col-lg-6">
@@ -122,7 +121,10 @@
122 </div> 121 </div>
123 <div class="col-lg-6"> 122 <div class="col-lg-6">
124 <h2>Receiving payments with Taler</h2> 123 <h2>Receiving payments with Taler</h2>
125 TODO 124 To receive Taler payments, a merchant only needs a bank account (or
125 any other kind of payment address) in the desired currency. We provide an
126 SDK in various languages that makes the integration into a merchant's store
127 painless.
126 </div> 128 </div>
127 </div> 129 </div>
128 <h2>Learn more</h2> 130 <h2>Learn more</h2>
diff --git a/investors.html.j2 b/investors.html.j2
index 895682f6..9794acfd 100644
--- a/investors.html.j2
+++ b/investors.html.j2
@@ -1,102 +1,101 @@
1<!DOCTYPE html> 1{% extends "common/base.j2" %}
2<html lang="{{ _('en') }}"> 2{% block body_content %}
3 <head>
4 <meta charset="UTF-8"/>
5 <title>{{ _("GNU Taler") }} - {{ _("Investors") }}</title>
6 <meta name="description" content=""/>
7 {% include "common/header.j2.inc" %}
8 </head>
9 <body>
10 <div class="container">
11 {% include "common/navigation.j2.inc" %}
12 <!-- Jumbotron -->
13 <div class="jumbotron">
14 <h1>{{ _("Invest in Taler!") }}</h1>
15 <div class="col-lg-12">
16 <p>{{ _("We have created a company, Taler Systems SA in
17 Luxemburg.<br>
18 Please contact <tt>invest@taler.net</tt>
19 if you want to invest in Taler.") }}</p>
20 </div>
21 </div>
22 <div class="row">
23 <div class="col-lg-4">
24 <h2>{{ _("The Team") }}</h2>
25 3
26 <p>{{ _("Our team combines world-class business leaders, 4<div class="jumbotron">
27 cryptographers, software engineers, civil-rights 5 <div class="container text-center">
28 activits and academics. We are unified by a vision 6 <h1>{{ _("Invest in Taler!") }}</h1>
29 of how payments should work and the goal of 7 <div class="col-lg-12">
30 imposing this vision upon the world.") }}</p> 8 <p>
9 {% trans %}
10 We have created a company, Taler Systems SA in
11 Luxemburg.<br>
12 Please contact <tt>invest@taler.net</tt>
13 if you want to invest in Taler.
14 {% endtrans %}
15 </p>
16 </div>
17 </div>
18</div>
31 19
32 <p>{{ _("We are currently supported by Inria, the French
33 national institute for research in informatics and
34 automation, and the Renewable Freedom Foundation.") }}</p>
35 </div>
36 <div class="col-lg-4">
37 <h2>{{ _("The Technology") }}</h2>
38 20
39 <p>{{ _("All transactions in Taler are secured using modern
40 cryptography and trust in all parties is
41 minimized. Financial damage is bounded (for
42 customers, merchants and the exchange) even in the
43 case that systems are compromised and private keys
44 are stolen. Databases can be audited for
45 consistency, resulting in either the detection of
46 compromised systems or the demonstration that
47 participants were honest. Actual transaction costs
48 are fractions of a cent.") }}</p>
49 </div>
50 <div class="col-lg-4">
51 <h2>{{ _("The Business") }}</h2>
52 21
53 <p>{{ _("The scalable business model for Taler is the operation 22<div class="container">
54 of the payment service provider, which converts money from 23<div class="row">
55 traditional payment systems (Mastercard, SEPA, 24 <div class="col-lg-4">
56 Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous 25 <h2>{{ _("The Team") }}</h2>
57 electronic coins in the same currency. The customer
58 can then redeem the electronic coins at a merchant,
59 who can exchange them for money represented using
60 traditional payment systems at the exchange. The
61 exchange charges fees (to the customer,
62 merchant or both) to facilitate the transactions.")
63 }}</p>
64 </div>
65 </div>
66 <div class="col-lg-12">
67 <h2 id="overview">{{ _("Taler as seen by the payment service operator") }}</h2>
68 26
69 <p>{{ _("The payment service operator runs a <em>Taler 27 <p>{{ _("Our team combines world-class business leaders,
70 exchange</em>, which is a Web service portal that 28 cryptographers, software engineers, civil-rights
71 keeps databases with transaction details and 29 activits and academics. We are unified by a vision
72 cryptographic proofs. Its operational expenses are 30 of how payments should work and the goal of
73 thus related to its interactions with the banking 31 imposing this vision upon the world.") }}</p>
74 system and the operation of the computing
75 infrastructure, while its income is based on
76 transaction fees it may charge for the various
77 interactions. Key interactions of the exchange
78 include: ") }}</p>
79 32
80 <p> 33 <p>{{ _("We are currently supported by Inria, the French
81 <img src="{{ url('images/exchange.svg') }}" alt="operator perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%"> 34 national institute for research in informatics and
82 </p><ul> 35 automation, and the Renewable Freedom Foundation.") }}</p>
83 <li>{{ _("Create a <b>reserve</b> based on an incoming 36 </div>
84 wire transfer from a customer.") }}</li> 37 <div class="col-lg-4">
38 <h2>{{ _("The Technology") }}</h2>
85 39
86 <li>{{ _("Allow customers to withdraw (and refresh) 40 <p>{{ _("All transactions in Taler are secured using modern
87 digital coins from their reserve.") }}</li> 41 cryptography and trust in all parties is
42 minimized. Financial damage is bounded (for
43 customers, merchants and the exchange) even in the
44 case that systems are compromised and private keys
45 are stolen. Databases can be audited for
46 consistency, resulting in either the detection of
47 compromised systems or the demonstration that
48 participants were honest. Actual transaction costs
49 are fractions of a cent.") }}</p>
50 </div>
51 <div class="col-lg-4">
52 <h2>{{ _("The Business") }}</h2>
88 53
89 <li>{{ _("Accept and validate deposits from merchants.") }}</li> 54 <p>{{ _("The scalable business model for Taler is the operation
55 of the payment service provider, which converts money from
56 traditional payment systems (Mastercard, SEPA,
57 Visa, Bitcoin, ACH, SWIFT, etc.) to anonymous
58 electronic coins in the same currency. The customer
59 can then redeem the electronic coins at a merchant,
60 who can exchange them for money represented using
61 traditional payment systems at the exchange. The
62 exchange charges fees (to the customer,
63 merchant or both) to facilitate the transactions.")
64 }}</p>
65 </div>
66</div>
67<div class="col-lg-12">
68 <h2 id="overview">{{ _("Taler as seen by the payment service operator") }}</h2>
90 69
91 <li>{{ _("Execute wire transfers to merchants in 70 <p>{{ _("The payment service operator runs a <em>Taler
92 response to validated deposits.") }}</li> 71 exchange</em>, which is a Web service portal that
72 keeps databases with transaction details and
73 cryptographic proofs. Its operational expenses are
74 thus related to its interactions with the banking
75 system and the operation of the computing
76 infrastructure, while its income is based on
77 transaction fees it may charge for the various
78 interactions. Key interactions of the exchange
79 include: ") }}</p>
93 80
94 <li>{{ _("Preserve and provide cryptographic proofs of 81 <p>
95 correct operation for audits by financial regulators.") }}</li> 82 <img src="{{ url('images/exchange.svg') }}" alt="operator perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
96 </ul> 83 </p><ul>
97 <p></p> 84 <li>{{ _("Create a <b>reserve</b> based on an incoming
98 </div> 85 wire transfer from a customer.") }}</li>
99 {% include "common/footer.j2.inc" %} 86
100 </div> <!-- /container --> 87 <li>{{ _("Allow customers to withdraw (and refresh)
101 </body> 88 digital coins from their reserve.") }}</li>
102</html> 89
90 <li>{{ _("Accept and validate deposits from merchants.") }}</li>
91
92 <li>{{ _("Execute wire transfers to merchants in
93 response to validated deposits.") }}</li>
94
95 <li>{{ _("Preserve and provide cryptographic proofs of
96 correct operation for audits by financial regulators.") }}</li>
97 </ul>
98 <p></p>
99
100</div>
101{% endblock body_content %}
diff --git a/justified-nav.css b/justified-nav.css
deleted file mode 100644
index b8b8b74c..00000000
--- a/justified-nav.css
+++ /dev/null
@@ -1,80 +0,0 @@
1body {
2 padding-top: 20px;
3}
4
5.footer {
6 padding-top: 40px;
7 padding-bottom: 40px;
8 margin-top: 40px;
9}
10
11/* Main marketing message and sign up button */
12.jumbotron {
13 text-align: center;
14 background-color: transparent;
15}
16.jumbotron .btn {
17 padding: 12px 22px;
18 font-size: 19px;
19}
20
21/* Customize the nav-justified links to be fill the entire space of the .navbar */
22
23.nav-justified {
24 background: #fff;
25}
26.nav-justified > li > a {
27 border-radius: 20px;
28 padding-top: 5px;
29 padding-bottom: 5px;
30 margin-bottom: 5px;
31 margin-left: 10px;
32 margin-top: 5px;
33 font-weight: normal;
34 color: #000;
35 text-align: center;
36 font-size: large;
37}
38
39.nav-justified > .active > a,
40.nav-justified > .active > a:hover,
41.nav-justified > .active > a:focus {
42 background-color: #ddd;
43}
44
45.nav-justified > li > a:hover {
46 transition: background-color 0.3s;
47}
48
49.nav-justified > .m_demo > a {
50 font-weight: bold;
51}
52
53
54/* Responsive: Portrait tablets and up */
55@media screen and (min-width: 768px) {
56 /* Remove the padding we set earlier */
57 .masthead,
58 .marketing,
59 .footer {
60 padding-right: 0;
61 padding-left: 0;
62 }
63}
64
65.navbar-taler {
66 background-color: #fff;
67 border-bottom: 2px solid #eee;
68}
69
70.navbar-taler .navbar-toggle {
71 border-color: #ddd;
72}
73.navbar-taler .navbar-toggle:hover,
74.navbar-taler .navbar-toggle:focus {
75 background-color: #ddd;
76}
77.navbar-taler .navbar-toggle .icon-bar {
78 background-color: #888;
79}
80
diff --git a/merchants.html.j2 b/merchants.html.j2
index ce2a47f2..304a5078 100644
--- a/merchants.html.j2
+++ b/merchants.html.j2
@@ -1,169 +1,157 @@
1<!DOCTYPE html> 1{% extends "common/base.j2" %}
2<html lang="{{ _('en') }}"> 2{% block body_content %}
3 <head> 3<div class="jumbotron">
4 <meta charset="UTF-8"/> 4 <div class="container text-center">
5 <title>{{ _("GNU Taler") }} - {{ _("Merchants") }}</title> 5 <h1>{{ _("Advantages for Merchants") }}</h1>
6 <meta name="description" content=""/> 6 <p>{{ _("Taler is a cost-effective electronic payment system
7 {% include "common/header.j2.inc" %} 7 which provides you with cryptographic proof that
8 </head> 8 the payment worked correctly within milliseconds.
9 <body> 9 Your Web customers pay with previously unknown
10 <div class="container"> 10 levels of convenience without risk of fraud.")
11 {% include "common/navigation.j2.inc" %} 11 }}</p>
12 <!-- Jumbotron --> 12 </div>
13 <div class="jumbotron"> 13</div>
14 <h1>{{ _("Advantages for Merchants") }}</h1> 14
15 <div class="col-lg-12"> 15<div class="container">
16 16 <div class="row">
17 <p>{{ _("Taler is a cost-effective electronic payment system 17 <div class="col-lg-4">
18 which provides you with cryptographic proof that 18 <h2>{{ _("Fast") }}</h2>
19 the payment worked correctly within milliseconds. 19
20 Your Web customers pay with previously unknown 20 <p>{{ _("Processing transactions with Taler is fast,
21 levels of convenience without risk of fraud.") 21 allowing you to confirm the transaction with your
22 }}</p> 22 customer virtually immediately. Your customers
23 23 will appreciate that they do not have to type in
24 </div> 24 credit card information and play the &quot;verified
25 </div> 25 by&quot; game. By making payments significantly
26 <div class="row"> 26 more convenient for your customers, you may be able
27 <div class="col-lg-4"> 27 to use Taler for small transactions that would not
28 <h2>{{ _("Fast") }}</h2> 28 work with credit card payments due to the mental
29 29 overhead for customers.") }}</p>
30 <p>{{ _("Processing transactions with Taler is fast, 30
31 allowing you to confirm the transaction with your 31 </div>
32 customer virtually immediately. Your customers 32 <div class="col-lg-4">
33 will appreciate that they do not have to type in 33 <h2>{{ _("Secure") }}</h2>
34 credit card information and play the &quot;verified 34
35 by&quot; game. By making payments significantly 35 <p>{{ _("You will have cryptographic proof of payment from
36 more convenient for your customers, you may be able 36 the Taler payment service provider. Taler does not
37 to use Taler for small transactions that would not 37 require you to undergo any particular security
38 work with credit card payments due to the mental 38 audits (such as PCI DSS), processes or procedures,
39 overhead for customers.") }}</p> 39 as you never handle sensitive customer account
40 40 information. Your systems will have customer
41 </div> 41 contracts wih qualified signatures for all
42 <div class="col-lg-4"> 42 transactions which you can use in court in case of
43 <h2>{{ _("Secure") }}</h2> 43 disputes.") }}</p>
44 44
45 <p>{{ _("You will have cryptographic proof of payment from 45 </div>
46 the Taler payment service provider. Taler does not 46 <div class="col-lg-4">
47 require you to undergo any particular security 47 <h2>{{ _("Free Software") }}</h2>
48 audits (such as PCI DSS), processes or procedures, 48
49 as you never handle sensitive customer account 49 <p>{{ _("Taler is free software, and you can use the
50 information. Your systems will have customer 50 liberally-licensed reference code as a starting
51 contracts wih qualified signatures for all 51 point to integrate Taler into your services. To use
52 transactions which you can use in court in case of 52 Taler, you do not need to pay license fees, and the
53 disputes.") }}</p> 53 free software development model will ensure that
54 54 you can select from many competent integrators for
55 </div> 55 support.") }}</p>
56 <div class="col-lg-4"> 56
57 <h2>{{ _("Free Software") }}</h2> 57 </div>
58 58 </div>
59 <p>{{ _("Taler is free software, and you can use the 59 <div class="row">
60 liberally-licensed reference code as a starting 60 <div class="col-lg-4">
61 point to integrate Taler into your services. To use 61 <h2>{{ _("Low Fees") }}</h2>
62 Taler, you do not need to pay license fees, and the 62
63 free software development model will ensure that 63 <p>{{ _("Taler is designed to minimize the work the exchange
64 you can select from many competent integrators for 64 needs to perform. Combined with Taler's strong
65 support.") }}</p> 65 security which prevents fraud, payment service
66 66 providers can operate with very low overhead and
67 </div> 67 thus low transaction fees.") }}</p>
68 </div> 68
69 <div class="row"> 69 </div>
70 <div class="col-lg-4"> 70 <div class="col-lg-4">
71 <h2>{{ _("Low Fees") }}</h2> 71 <h2>{{ _("Flexible") }}</h2>
72 72
73 <p>{{ _("Taler is designed to minimize the work the exchange 73 <p>{{ _("Taler can be used for different currencies (such as
74 needs to perform. Combined with Taler's strong 74 Euros, US Dollars or Bitcoins) and different
75 security which prevents fraud, payment service 75 payment models limited only by what the payment
76 providers can operate with very low overhead and 76 service provider supports in its interactions.")
77 thus low transaction fees.") }}</p> 77 }}</p>
78 78
79 </div> 79 </div>
80 <div class="col-lg-4"> 80 <div class="col-lg-4">
81 <h2>{{ _("Flexible") }}</h2> 81 <h2>{{ _("Ethical") }}</h2>
82 82
83 <p>{{ _("Taler can be used for different currencies (such as 83 <p>{{ _("Taler prevents tax evasion and money laundering.
84 Euros, US Dollars or Bitcoins) and different 84 Taler's protocols are efficient and do not waste
85 payment models limited only by what the payment 85 energy. Taler encourages transparency by providing
86 service provider supports in its interactions.") 86 an open standard and free software reference
87 }}</p> 87 implementations.") }}</p>
88 88
89 </div> 89 </div>
90 <div class="col-lg-4"> 90 </div>
91 <h2>{{ _("Ethical") }}</h2> 91 <div class="col-lg-12">
92 92 <h2 id="overview">{{ _("Taler as seen by merchants") }}</h2>
93 <p>{{ _("Taler prevents tax evasion and money laundering. 93
94 Taler's protocols are efficient and do not waste 94 <p>{{ _("Merchants supporting the Taler system need to
95 energy. Taler encourages transparency by providing 95 integrate some relatively simple logic into their
96 an open standard and free software reference 96 transaction processing system. Typical steps
97 implementations.") }}</p> 97 performed by the merchant system are: ") }}</p>
98 98
99 </div> 99 <p>
100 </div> 100 <img src="{{ url('images/merchant.svg') }}" alt="merchant perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
101 <div class="col-lg-12"> 101 <ol>
102 <h2 id="overview">{{ _("Taler as seen by merchants") }}</h2> 102
103 103 <li>{{ _("The new logic detects when a customer's system
104 <p>{{ _("Merchants supporting the Taler system need to 104 supports Taler and then needs to send a
105 integrate some relatively simple logic into their 105 cryptographically signed version of the proposed
106 transaction processing system. Typical steps 106 contract in a simple JSON format to the
107 performed by the merchant system are: ") }}</p> 107 customer. The message also includes salted,
108 108 hashed wire details for the merchant, as well as
109 <p> 109 restrictions as to which exchange operators the
110 <img src="{{ url('images/merchant.svg') }}" alt="merchant perspective" style="float: right; margin: 50px 5px 5px 5px;" width="50%"> 110 merchant is willing to deal with.") }}</li>
111 <ol> 111
112 112 <li>{{ _("The customer sends a signed response which
113 <li>{{ _("The new logic detects when a customer's system 113 states that certain digital coins now belong to
114 supports Taler and then needs to send a 114 the merchant to both signal acceptance of the
115 cryptographically signed version of the proposed 115 deal as well as to pay the respective amount
116 contract in a simple JSON format to the 116 (bottom).") }}</li>
117 customer. The message also includes salted, 117
118 hashed wire details for the merchant, as well as 118 <li>{{ _("The merchant then forwards the signed messages
119 restrictions as to which exchange operators the 119 received from the customer to the exchange,
120 merchant is willing to deal with.") }}</li> 120 together with its wire details and the salt
121 121 (without hashing). The exchange verifies the
122 <li>{{ _("The customer sends a signed response which 122 details and sends a signed confirmation (or an
123 states that certain digital coins now belong to 123 error message) to the merchant. The merchant
124 the merchant to both signal acceptance of the 124 checks that the exchange's signature is valid,
125 deal as well as to pay the respective amount 125 sends a confirmation to the customer and
126 (bottom).") }}</li> 126 executes the contract-specific business
127 127 logic.") }}</li>
128 <li>{{ _("The merchant then forwards the signed messages 128
129 received from the customer to the exchange, 129 <li>{{ _("The exchange performs wire transfers
130 together with its wire details and the salt 130 corresponding to the claims deposited by the
131 (without hashing). The exchange verifies the 131 merchant. Note that the exchange may charge
132 details and sends a signed confirmation (or an 132 fees for the deposit operation, hence merchants
133 error message) to the merchant. The merchant 133 may impose limits restricting the set of
134 checks that the exchange's signature is valid, 134 exchange operators they are willing to deal
135 sends a confirmation to the customer and 135 with, for example by imposing a bound on
136 executes the contract-specific business 136 deposit fees.") }}</li>
137 logic.") }}</li> 137 </ol>
138 138 </p>
139 <li>{{ _("The exchange performs wire transfers 139 </div>
140 corresponding to the claims deposited by the 140 <div class="col-lg-12">
141 merchant. Note that the exchange may charge 141 <h2 id="documentation">{{ _("Manuals for merchants") }}</h2>
142 fees for the deposit operation, hence merchants 142 <p>
143 may impose limits restricting the set of 143 </p><ul>
144 exchange operators they are willing to deal 144 <li>{{ _("The GNU Taler merchant backend operator manual") }}
145 with, for example by imposing a bound on 145 (<a href="https://docs.taler.net/current/merchant-backend/manual.html">html</a>,
146 deposit fees.") }}</li> 146 <a href="https://docs.taler.net/current/merchant-backend/manual.pdf">pdf</a>)</li>
147 </ol> 147 <li>{{ _("The GNU Taler Web shop integration tutorial (PHP)") }}
148 </p> 148 (<a href="https://docs.taler.net/current/merchant-shop/php/tutorial.html">html</a>,
149 </div> 149 <a href="https://docs.taler.net/current/merchant-shop/php/tutorial.pdf">pdf</a>)</li>
150 <div class="col-lg-12"> 150 <li>{{ _("The GNU Taler Web shop integration tutorial (Python)") }}
151 <h2 id="documentation">{{ _("Manuals for merchants") }}</h2> 151 (<a href="https://docs.taler.net/current/merchant-shop/python/tutorial.html">html</a>,
152 <p> 152 <a href="https://docs.taler.net/current/merchant-shop/python/tutorial.pdf">pdf</a>)</li>
153 </p><ul> 153 </ul>
154 <li>{{ _("The GNU Taler merchant backend operator manual") }} 154 <p></p>
155 (<a href="https://docs.taler.net/current/merchant-backend/manual.html">html</a>, 155 </div>
156 <a href="https://docs.taler.net/current/merchant-backend/manual.pdf">pdf</a>)</li> 156</div> <!-- /container -->
157 <li>{{ _("The GNU Taler Web shop integration tutorial (PHP)") }} 157{% endblock body_content %}
158 (<a href="https://docs.taler.net/current/merchant-shop/php/tutorial.html">html</a>,
159 <a href="https://docs.taler.net/current/merchant-shop/php/tutorial.pdf">pdf</a>)</li>
160 <li>{{ _("The GNU Taler Web shop integration tutorial (Python)") }}
161 (<a href="https://docs.taler.net/current/merchant-shop/python/tutorial.html">html</a>,
162 <a href="https://docs.taler.net/current/merchant-shop/python/tutorial.pdf">pdf</a>)</li>
163 </ul>
164 <p></p>
165 </div>
166 {% include "common/footer.j2.inc" %}
167 </div> <!-- /container -->
168 </body>
169</html>
diff --git a/styles.css b/styles.css
index b1d6e624..c384a0e8 100644
--- a/styles.css
+++ b/styles.css
@@ -1,3 +1,8 @@
1body .jumbotron {
2 background-color: white;
3}
4
5
1.lang-slector { 6.lang-slector {
2 float: right; 7 float: right;
3 padding-top: 2mm; 8 padding-top: 2mm;
@@ -28,3 +33,8 @@ html {
28 margin-left:5px; 33 margin-left:5px;
29 margin-top: 8px; 34 margin-top: 8px;
30} 35}
36
37#mybody {
38 /* override ugly bootstrap defaults */
39 color: black;
40}
diff --git a/template.py b/template.py
index ed8f47eb..78a801ff 100755
--- a/template.py
+++ b/template.py
@@ -50,7 +50,12 @@ for in_file in glob.glob("*.j2"):
50 env.install_gettext_translations(tr, newstyle=True) 50 env.install_gettext_translations(tr, newstyle=True)
51 51
52 52
53 content = tmpl.render(lang=locale, url=url, self_localized=self_localized, url_localized=url_localized) 53 content = tmpl.render(
54 lang=locale,
55 url=url,
56 self_localized=self_localized,
57 url_localized=url_localized,
58 filename=name + "." + ext)
54 out_name = "./" + locale + "/" + in_file.rstrip(".j2") 59 out_name = "./" + locale + "/" + in_file.rstrip(".j2")
55 os.makedirs("./" + locale, exist_ok=True) 60 os.makedirs("./" + locale, exist_ok=True)
56 with codecs.open(out_name, "w", "utf-8") as f: 61 with codecs.open(out_name, "w", "utf-8") as f: