diff options
-rw-r--r-- | about.html.j2 | 216 | ||||
-rw-r--r-- | common/base.j2 | 2 | ||||
-rw-r--r-- | common/footer.j2.inc | 11 | ||||
-rw-r--r-- | common/header.j2.inc | 1 | ||||
-rw-r--r-- | common/navigation.j2.inc | 107 | ||||
-rw-r--r-- | developers.html.j2 | 455 | ||||
-rw-r--r-- | governments.html.j2 | 299 | ||||
-rw-r--r-- | index.html.j2 | 52 | ||||
-rw-r--r-- | investors.html.j2 | 183 | ||||
-rw-r--r-- | justified-nav.css | 80 | ||||
-rw-r--r-- | merchants.html.j2 | 326 | ||||
-rw-r--r-- | styles.css | 10 | ||||
-rwxr-xr-x | template.py | 7 |
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 & 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 & 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 & 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 & 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>© <a href="https://gnunet.org/ev">GNUnet e.V.</a> and Inria 2015, 2016, 2017</p> | 2 | <p>© <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 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 "serial |
143 | 143 | numbers" 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 "serial | 150 | |
151 | numbers" 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 @@ | |||
1 | 3<!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 @@ | |||
1 | body { | ||
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 "verified |
25 | </div> | 25 | by" 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 "verified | 34 | |
35 | by" 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> | ||
@@ -1,3 +1,8 @@ | |||
1 | body .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: |