summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore12
-rw-r--r--GNUmakefile66
-rw-r--r--__init__.py2
m---------build-system/taler-build-scripts0
-rw-r--r--common/footer.j2.inc12
-rw-r--r--common/header.j2.inc10
-rw-r--r--common/navigation.j2.inc13
m---------inc0
-rw-r--r--locale/de/LC_MESSAGES/messages.po102
-rw-r--r--locale/en/LC_MESSAGES/messages.po50
-rw-r--r--locale/es/LC_MESSAGES/messages.po107
-rw-r--r--locale/fr/LC_MESSAGES/messages.po86
-rw-r--r--locale/it/LC_MESSAGES/messages.po109
-rw-r--r--locale/pt/LC_MESSAGES/messages.po109
-rw-r--r--locale/ru/LC_MESSAGES/messages.po90
-rwxr-xr-xmake_site.py108
-rw-r--r--static/favicon.ico (renamed from favicon.ico)bin588 -> 588 bytes
-rw-r--r--static/robots.txt (renamed from robots.txt)0
-rw-r--r--static/styles.css (renamed from styles.css)0
-rw-r--r--template/bibliography.html.j292
-rw-r--r--template/docs.html.j232
-rw-r--r--template/features.html.j214
-rw-r--r--template/index.html.j220
-rw-r--r--template/news.html.j220
-rw-r--r--template/old-news.html.j244
-rw-r--r--template/principles.html.j218
-rw-r--r--www.yml180
27 files changed, 706 insertions, 590 deletions
diff --git a/.gitignore b/.gitignore
index e9eb5cf..03b500b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,8 +17,18 @@ es/
ru/
pt/
-config.mk
__pycache__
*.pyc
+sitemap.html
+sitemap.xml
+
+*~
+\#*\#
+
+config.mk
+
*.core
+
+.style.yapf
+configure
diff --git a/GNUmakefile b/GNUmakefile
index c460217..6fae6c8 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,27 +1,37 @@
# This file is in the public domain.
-# Hardly anyone seems to read README files anymore, so keep this note here:
-# Don't remove the variables for python etc. They exist
-# because one system sticks with PEPs, and others opt
-# for installing every version side-by-side,
-# Same goes for babel.
-
include config.mk
# All: build HTML pages in all languages and compile the
# TypeScript logic in web-common.
.PHONY: all
all: locale template
- cd web-common && $(tsc)
- $(sh) make_sitemap.sh
- for x in en de fr it es ru pt ; do $(cp) robots.txt rendered/$$x ; done
- for x in en de fr it es ru pt ; do $(cp) favicon.ico rendered/$$x ; done
- for x in en de fr it es ru pt ; do $(cp) rendered/sitemap.xml rendered/$$x ; done
- $(cp) styles.css rendered/
- $(cp) -R images rendered/
- for x in en de fr it es ru pt ; do $(cp) -R images rendered/$$x ; done
- for x in en de fr it es ru pt ; do $(cp) -R web-common rendered/$$x ; done
- for d in dist icons papers pdf presentations ; do $(cp) -R $$d rendered/ ; done
+ (cd web-common && $(tsc))
+ ($(cp) rendered/static/robots.txt rendered/robots.txt)
+ ($(cp) rendered/static/robots.txt rendered/dist/robots.txt)
+ (for lang in en de fr it es ru pt ; do \
+ $(cp) rendered/static/robots.txt rendered/$$lang/robots.txt; \
+ done)
+ ($(python) inc/make_sitemap.py -i rendered)
+ ($(cp) sitemap.xml rendered/sitemap.xml)
+ ($(cp) sitemap.xml rendered/en/sitemap.xml)
+ (for x in en de fr it es ru pt ; do \
+ $(cp) rendered/sitemap.xml rendered/$$x ; \
+ done)
+ ($(cp) -R images rendered/static/)
+ (for lang in en de fr it es ru pt ; \
+ do $(cp) -R images rendered/$$lang ; \
+ done)
+ (for lang in en de fr it es ru pt ; do \
+ $(cp) -R web-common rendered/$$lang ; \
+ done)
+ (cd rendered; \
+ for lang in en de fr it es ru pt; do \
+ $(cp) $$lang/rss.xml $$lang/news/rss.xml; \
+ done)
+ (for d in dist icons papers pdf presentations ; do \
+ $(cp) -R $$d rendered/ ; \
+ done)
# Extract translateable strings from jinja2 templates.
locale/messages.pot: template/*.j2 common/*.j2 common/*.j2.inc
@@ -30,26 +40,18 @@ locale/messages.pot: template/*.j2 common/*.j2 common/*.j2.inc
# Update translation (.po) files with new strings.
.PHONY: locale-update
locale-update: locale/messages.pot
- $(msgmerge) -U -m --previous locale/en/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/de/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/fr/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/es/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/it/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/ru/LC_MESSAGES/messages.po locale/messages.pot
- $(msgmerge) -U -m --previous locale/pt/LC_MESSAGES/messages.po locale/messages.pot
+ (for lang in de fr es it ru pt; do \
+ $(msgmerge) -q -U -m --previous locale/$$lang/LC_MESSAGES/messages.po locale/messages.pot ; \
+ done)
if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then $(echo) -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi
# Compile translation files for use.
.PHONY: locale-compile
locale-compile:
- $(pybabel) compile -d locale -l en --use-fuzzy
- $(pybabel) compile -d locale -l de --use-fuzzy
- $(pybabel) compile -d locale -l fr --use-fuzzy
- $(pybabel) compile -d locale -l it --use-fuzzy
- $(pybabel) compile -d locale -l es --use-fuzzy
- $(pybabel) compile -d locale -l ru --use-fuzzy
- $(pybabel) compile -d locale -l pt --use-fuzzy
+ (for lang in de fr it es ru pt; do \
+ $(pybabel) -q compile -d locale -l $$lang --use-fuzzy ; \
+ done)
# Process everything related to gettext translations.
.PHONY: locale
@@ -58,11 +60,11 @@ locale: locale-update locale-compile
# Run the jinja2 templating engine to expand templates to HTML
# incorporating translations.
template: locale-compile
- $(python) ./template.py
+ $(python) ./make_site.py
.PHONY: run
run: all
- $(browser) http://0.0.0.0:8000 &
+ $(browser) http://0.0.0.0:8000/rendered/en &
$(python) -m http.server
.PHONY: install
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..0895f23
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,2 @@
+import os, sys
+sys.path.append(os.path.dirname(os.path.realpath(__file__)))
diff --git a/build-system/taler-build-scripts b/build-system/taler-build-scripts
-Subproject 2536801927781ea38fefc3de924934e1c6a74d8
+Subproject 1915a74bbb4cd2ae9bc541a382dfebc37064a2f
diff --git a/common/footer.j2.inc b/common/footer.j2.inc
index bce2b9a..0d5be46 100644
--- a/common/footer.j2.inc
+++ b/common/footer.j2.inc
@@ -8,27 +8,29 @@
<div class="row">
<div class="col-12 col-sm-4">
<ul class="footer-list">
- <li><p><a href="contact.html">{{ _("Contact") }}</a></p></li>
+ <li><a href="{{ url_localized('contact.html') }}">{{ _("Contact") }}</a></li>
</ul>
</div>
<div class="col-12 col-sm-4">
<ul class="footer-list">
- <li><p><a href="faq.html">{{ _("FAQ") }}</a></p></li>
+ <li><a href="{{ url_localized('faq.html') }}">{{ _("FAQ") }}</a></li>
</ul>
</div>
<div class="col-12 col-sm-4">
<ul class="footer-list">
- <li><p><a href="bibliography.html">{{ _("Bibliography") }}</a></p></li>
+ <li><a href="{{ url_localized('bibliography.html') }}">{{ _("Bibliography") }}</a></li>
</ul>
</div>
</div>
</div>
<div class="text-center mt-5">
- <p>&copy; <a href="https://gnunet.org/en/ev.html">GNUnet e.V.</a> {{_("and") }}
+ <p>
+ &copy; <a href="https://gnunet.org/en/ev.html">GNUnet e.V.</a> {{_("and") }}
Taler Systems SA 2015-2019
<br>
{{ _("We are grateful for support and free hosting of this site by <a href='http://www.bfh.ch/'>BFH</a>") }}.
<br>
- {{ _("This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.") }}</p>
+ {{ _("This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.") }}
+ </p>
</div>
</footer>
diff --git a/common/header.j2.inc b/common/header.j2.inc
index e75a943..53320ce 100644
--- a/common/header.j2.inc
+++ b/common/header.j2.inc
@@ -37,15 +37,17 @@
<!-- <link rel="icon" href="../../favicon.ico"> -->
<!-- Bootstrap core CSS -->
- <link href="{{ url('dist/css/bootstrap.min.css') }}" rel="stylesheet">
+ <link href="{{ url_dist('css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Custom styles for this template -->
- <link href="{{ url('styles.css') }}" rel="stylesheet">
+ <link href="{{ url_static('styles.css') }}" rel="stylesheet">
- <script src="{{ url('dist/js/jquery-1.11.1.min.js') }}"></script>
- <script src="{{ url('dist/js/bootstrap.min.js') }}"></script>
+ <script src="{{ url_dist('js/jquery-1.11.1.min.js') }}"></script>
+ <script src="{{ url_dist('js/bootstrap.min.js') }}"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
+
+ <link rel="alternate" type="application/rss+xml" title="Taler.net rss" href="{{ url_localized('news/rss.xml') }}" />
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index c8a645b..3e35373 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -1,12 +1,12 @@
{% macro navlink(site, text) -%}
- <a class="nav-link {{ 'active' if filename == site else '' }}"
- href="/{{ lang }}/{{ site }}">
- {{ text }}
- </a>
+ <a class="nav-link {{ 'active' if filename == site else '' }}"
+ href="{{ url_localized(site) }}">
+ {{ text }}
+ </a>
{%- endmacro %}
<nav class="navbar navbar-expand-lg navbar-light">
- <a class="navbar-brand taler_home" href="/{{ lang }}/index.html">Taler</a>
+ <a class="navbar-brand taler_home" href="{{ url_localized('index.html') }}">Taler</a>
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
@@ -21,6 +21,7 @@
{{ navlink('features.html', _('Features')) }}
{{ navlink('principles.html', _('Principles')) }}
{{ navlink('docs.html', _('Docs')) }}
+ {{ navlink('news/index.html', _('News')) }}
</div>
<div class="nav-item dropdown">
@@ -30,7 +31,7 @@
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="true">
- <img src="{{ url('images/languageicon.svg') }}"
+ <img src="{{ url_static('images/languageicon.svg') }}"
height="35"
alt="[{{lang}}]" />
{{ lang_full }} [{{ lang }}]
diff --git a/inc b/inc
-Subproject 46295bc38988c16a9a6c8c0cf8930abd20193a0
+Subproject 8ba672a9a16cbf11aac394b183668cb916d601f
diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po
index 54506c2..bca5809 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: 2017-06-02 09:46+0100\n"
"Last-Translator: Stefan Kügel <skuegel@web.de>\n"
"Language-Team: de <LL@li.org, de@taler.net>\n"
-"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"Generated-By: Babel 2.4.0\n"
@@ -17,7 +17,7 @@ msgstr ""
msgid "GNU Taler"
msgstr "Das Taler-Bezahlsystem"
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr "Taxierbare Anonyme Liberale Elektronische Reserven"
@@ -35,19 +35,18 @@ msgstr ""
msgid "Bibliography"
msgstr "Bibliografie von GNU Taler"
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr "und"
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -65,24 +64,30 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr "Systemarchitektur von Taler"
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr "Bibliografie von GNU Taler"
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr "von"
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "erhältlich auf Anfrage"
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr "Kontakt"
@@ -245,9 +250,9 @@ msgstr ""
"Taler ist freie Software mit einem offenen Protokoll. Alle Programmierer "
"sind dazu eingeladen, unseren Referenzcode in ihre Anwendungen aufzunehmen. "
"Verschiedene Taler-Komponenten sind unter verschiedenen Lizenzformen "
-"verfügbar. Für die Taler-Wechselstube (den \"Exchange\") dient Affero "
-"GPLv3+, LGPLv3+ für den Referenzcode der Integration in Handelsplattformen, "
-"GPLv3+-Lizenzen gelten für Geldbörsen (\"Wallets\") und Kundeninteraktions-"
+"verfügbar. Für die Taler-Wechselstube (den \"Exchange\") dient Affero GPLv3"
+"+, LGPLv3+ für den Referenzcode der Integration in Handelsplattformen, GPLv3"
+"+-Lizenzen gelten für Geldbörsen (\"Wallets\") und Kundeninteraktions-"
"Software. Wir heißen alle konstruktiven Vorschläge willkommen, die Taler-"
"Komponenten in eigene Anwendungen zu integrieren."
@@ -721,7 +726,7 @@ msgid "Exchange"
msgstr ""
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -1137,7 +1142,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -1163,8 +1168,8 @@ msgstr "Bezahlen mit Taler"
#| "of phishing or identity theft.</p>\n"
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
"Um mit dem Taler-Bezahlsystem einkaufen zu können, muss man eine "
"elektronische Geldbörse auf einem Endgerät installieren. Vor der ersten "
@@ -1219,8 +1224,9 @@ msgstr "Verkaufen mit Taler"
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
"Um Zahlungen erhalten zu können, brauchen Verkäufer ein Girokonto in der "
"gewünschten Währung bei einer Geschäftsbank. Das Taler-Bezahlsystem "
@@ -1274,7 +1280,7 @@ msgstr "Stabil"
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
"Als Bezahlsystem stellt Taler noch keine neue Währung dar. Taler verbindet "
@@ -1316,7 +1322,7 @@ msgstr "Besteuerbar"
#| "Taler helps prevent black markets. Taler is not suitable for\n"
#| "illegal activities.\n"
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -2232,37 +2238,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -2713,24 +2719,6 @@ msgstr ""
msgid "customer perspective"
msgstr ""
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-#, fuzzy
-#| msgid "Taler News"
-msgid "Older News"
-msgstr "Taler-News"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr "Taler in den Medien"
@@ -3011,6 +2999,14 @@ msgstr ""
msgid "Wallets for other browsers will be provided in the near future."
msgstr ""
+#~ msgid "available upon request"
+#~ msgstr "erhältlich auf Anfrage"
+
+#, fuzzy
+#~| msgid "Taler News"
+#~ msgid "Older News"
+#~ msgstr "Taler-News"
+
#, fuzzy
#~| msgid "The Team"
#~ msgid "Team"
diff --git a/locale/en/LC_MESSAGES/messages.po b/locale/en/LC_MESSAGES/messages.po
index d1f1086..7635599 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-09 20:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: en <LL@li.org>\n"
-"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"Generated-By: Babel 2.3.4\n"
@@ -17,7 +17,7 @@ msgstr ""
msgid "GNU Taler"
msgstr ""
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr ""
@@ -63,6 +63,18 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr ""
@@ -1561,37 +1573,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -1836,22 +1848,6 @@ msgstr ""
msgid "customer perspective"
msgstr ""
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr ""
diff --git a/locale/es/LC_MESSAGES/messages.po b/locale/es/LC_MESSAGES/messages.po
index e20c1fe..0e6b067 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: 2017-08-10 06:24+0200\n"
"Last-Translator: \n"
"Language-Team: es <LL@li.org>\n"
-"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"Generated-By: Babel 2.3.4\n"
"X-Generator: Poedit 2.0.2\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "GNU Taler"
msgstr "GNU Taler"
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr "Reservas Electrónicas Gravales, Anónimas y Libres"
@@ -34,19 +34,18 @@ msgstr "Preguntas frecuentes"
msgid "Bibliography"
msgstr "Bibliografía"
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr "y"
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -66,24 +65,30 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr "Arquitectura del Sistema Taler"
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr "Bibliografía de GNU Taler"
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr "por"
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponible bajo petición"
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr "Contacto"
@@ -619,7 +624,7 @@ msgid "Exchange"
msgstr "Plataforma de intercambio"
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -1027,7 +1032,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -1053,8 +1058,8 @@ msgstr "Pagando con Taler"
#| "or identity theft.</p>"
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
"<p>Para pagar con Taler, los clientes instalan una billetera electrónica en "
"su dispositivo. Antes del primer pago, el saldo de la billetera debe ser "
@@ -1103,8 +1108,9 @@ msgstr "Recibiendo pagos con Taler"
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
"<p>Para recibir pagos con Taler, un comerciante necesita una cuenta bancaria "
"en la moneda deseada. Nosotros proporcionamos el software de apoyo en varios "
@@ -1142,10 +1148,16 @@ msgid "Stable"
msgstr "Estable"
#: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
"Taler no introduce una nueva moneda. Taler utiliza una billetera electrónica "
@@ -1175,8 +1187,13 @@ msgid "Taxable"
msgstr "Imponible"
#: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -2040,37 +2057,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -2413,24 +2430,6 @@ msgstr ""
msgid "customer perspective"
msgstr "Perspectiva del consumidor"
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-#, fuzzy
-#| msgid "Taler News"
-msgid "Older News"
-msgstr "Noticias de Taler"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr "GNU Taler en la Prensa"
@@ -2713,6 +2712,14 @@ msgstr ""
msgid "Wallets for other browsers will be provided in the near future."
msgstr ""
+#~ msgid "available upon request"
+#~ msgstr "disponible bajo petición"
+
+#, fuzzy
+#~| msgid "Taler News"
+#~ msgid "Older News"
+#~ msgstr "Noticias de Taler"
+
#, fuzzy
#~| msgid "The Team"
#~ msgid "Team"
diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po
index 4746f68..4b3bab3 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: fr <LL@li.org>\n"
-"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"Generated-By: Babel 2.3.4\n"
@@ -17,7 +17,7 @@ msgstr ""
msgid "GNU Taler"
msgstr ""
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr ""
@@ -33,19 +33,18 @@ msgstr ""
msgid "Bibliography"
msgstr ""
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr ""
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -63,26 +62,32 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
#, fuzzy
#| msgid "Taler system overview"
msgid "Taler System Architecture"
msgstr "Vue d'ensemble de Taler"
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr ""
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr ""
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr ""
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr ""
@@ -441,7 +446,7 @@ msgid "Exchange"
msgstr ""
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -758,7 +763,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -776,8 +781,8 @@ msgstr ""
#: template/features.html.j2:71
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
#: template/features.html.j2:79
@@ -799,8 +804,9 @@ msgstr ""
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
#: template/features.html.j2:105
@@ -836,7 +842,7 @@ msgstr "Taxable"
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
@@ -858,7 +864,7 @@ msgstr "Taxable"
#: template/features.html.j2:172
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -1577,37 +1583,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -1854,22 +1860,6 @@ msgstr ""
msgid "customer perspective"
msgstr ""
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr ""
diff --git a/locale/it/LC_MESSAGES/messages.po b/locale/it/LC_MESSAGES/messages.po
index a4d1774..181be43 100644
--- a/locale/it/LC_MESSAGES/messages.po
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: it <LL@li.org>\n"
-"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n!=1)\n"
"Generated-By: Babel 2.3.4\n"
@@ -17,7 +17,7 @@ msgstr ""
msgid "GNU Taler"
msgstr "GNU Taler"
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr "Tassabili Anonime Libere Elettroniche Riserve"
@@ -35,19 +35,18 @@ msgstr "FAQ"
msgid "Bibliography"
msgstr "Bibliografia"
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr "e"
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -67,24 +66,30 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr "Architettura Taler"
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr "Bibliografia GNU Taler"
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr "di"
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponibile su richiesta"
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr "Contatti"
@@ -614,7 +619,7 @@ msgid "Exchange"
msgstr "cambio"
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -1021,7 +1026,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -1047,8 +1052,8 @@ msgstr "Pagare con Taler"
#| "or identity theft.</p>"
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
"<p>Per pagare con Taler, i clienti installano un portafoglio elettronico sul "
"proprio dispositivo. Prima del primo pagamento, il saldo del portafoglio "
@@ -1099,8 +1104,9 @@ msgstr "Ricevere pagamenti con Taler"
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
"<p>Per ricevere i pagamenti di Taler, un commerciante ha bisogno di un conto "
"bancario nella valuta desiderata. Forniamo software di supporto in vari "
@@ -1137,10 +1143,16 @@ msgid "Stable"
msgstr "Stabile"
#: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
"Taler non introduce una nuova valuta. Taler utilizza un portafoglio digitale "
@@ -1170,8 +1182,13 @@ msgid "Taxable"
msgstr "Tassabile"
#: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -2038,37 +2055,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -2412,22 +2429,6 @@ msgstr ""
msgid "customer perspective"
msgstr ""
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr "Altre notizie"
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr "Notizie precedenti"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr "Questa pagina documenta la storia di GNU Taler. "
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr "GNU Taler nella Stampa"
@@ -2710,6 +2711,18 @@ msgstr ""
msgid "Wallets for other browsers will be provided in the near future."
msgstr ""
+#~ msgid "available upon request"
+#~ msgstr "disponibile su richiesta"
+
+#~ msgid "More news"
+#~ msgstr "Altre notizie"
+
+#~ msgid "Older News"
+#~ msgstr "Notizie precedenti"
+
+#~ msgid "This page documents the GNU Taler history."
+#~ msgstr "Questa pagina documenta la storia di GNU Taler. "
+
#, fuzzy
#~| msgid "The Team"
#~ msgid "Team"
diff --git a/locale/pt/LC_MESSAGES/messages.po b/locale/pt/LC_MESSAGES/messages.po
index eebdf7a..9ba988f 100644
--- a/locale/pt/LC_MESSAGES/messages.po
+++ b/locale/pt/LC_MESSAGES/messages.po
@@ -6,14 +6,14 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU taler master\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: 2018-01-28 15:27-0200\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese\n"
-"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 1.0.0-beta1\n"
"Generated-By: Babel 2.5.3\n"
@@ -22,7 +22,7 @@ msgstr ""
msgid "GNU Taler"
msgstr "GNU Taler"
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr "Reservas eletrônicas livres, anônimas, tributáveis"
@@ -38,19 +38,18 @@ msgstr "FAQ"
msgid "Bibliography"
msgstr "Bibliografia"
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr "e"
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -70,24 +69,30 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr "Arquitetura do sistema Taler"
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr "Bibliografia do GNU Taler"
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr "por"
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponível mediante solicitação"
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr "Informações de contato"
@@ -609,7 +614,7 @@ msgid "Exchange"
msgstr "câmbio <i>(exchange)</i>"
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -1014,7 +1019,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -1040,8 +1045,8 @@ msgstr "Pagando com o Taler"
#| "or identity theft.</p>"
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
"<p>Para pagar com o Taler, os clientes instalam uma carteira eletrônica em "
"seu dispositivo. Antes do primeiro pagamento, a moeda desejada deve ser "
@@ -1090,8 +1095,9 @@ msgstr "Recebendo pagamentos com o Taler"
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
"<p>Para receber pagamentos do Taler, um comerciante precisa de uma conta "
"bancária na moeda desejada. Nós fornecemos software de suporte em várias "
@@ -1128,10 +1134,16 @@ msgid "Stable"
msgstr "Estável"
#: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
"O Taler não introduz uma nova moeda. A Taler usa uma carteira digital que "
@@ -1161,8 +1173,13 @@ msgid "Taxable"
msgstr "Tributável"
#: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -2018,37 +2035,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -2379,22 +2396,6 @@ msgstr ""
msgid "customer perspective"
msgstr "perspectiva do cliente"
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr "Mais notícias"
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr "Notícias mais antigas"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr "Essa página documenta o histórico do GNU Taler."
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr "GNU Taler na imprensa"
@@ -2677,6 +2678,18 @@ msgstr ""
msgid "Wallets for other browsers will be provided in the near future."
msgstr ""
+#~ msgid "available upon request"
+#~ msgstr "disponível mediante solicitação"
+
+#~ msgid "More news"
+#~ msgstr "Mais notícias"
+
+#~ msgid "Older News"
+#~ msgstr "Notícias mais antigas"
+
+#~ msgid "This page documents the GNU Taler history."
+#~ msgstr "Essa página documenta o histórico do GNU Taler."
+
#, fuzzy
#~| msgid "The Team"
#~ msgid "Team"
diff --git a/locale/ru/LC_MESSAGES/messages.po b/locale/ru/LC_MESSAGES/messages.po
index 236a331..d7331c2 100644
--- a/locale/ru/LC_MESSAGES/messages.po
+++ b/locale/ru/LC_MESSAGES/messages.po
@@ -7,23 +7,23 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
"PO-Revision-Date: 2017-12-29 11:14+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: ru <LL@li.org>\n"
-"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"Generated-By: Babel 2.5.1\n"
#: common/base.j2:5
msgid "GNU Taler"
msgstr ""
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
msgid "Taxable Anonymous Libre Electronic Reserves"
msgstr ""
@@ -39,19 +39,18 @@ msgstr ""
msgid "Bibliography"
msgstr ""
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
msgid "and"
msgstr ""
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
msgid ""
"We are grateful for support and free hosting of this site by <a href='http://"
"www.bfh.ch/'>BFH</a>"
msgstr ""
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
msgid ""
"This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
"only."
@@ -69,24 +68,30 @@ msgstr ""
msgid "Docs"
msgstr ""
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
#: template/architecture.html.j2:6
msgid "Taler System Architecture"
msgstr ""
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
msgid "GNU Taler Bibliography"
msgstr ""
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
msgid "by"
msgstr ""
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr ""
-
#: template/contact.html.j2:6
msgid "Contact information"
msgstr ""
@@ -441,7 +446,7 @@ msgid "Exchange"
msgstr ""
#: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
msgstr ""
#: template/docs.html.j2:74
@@ -758,7 +763,7 @@ msgstr ""
msgid ""
"When making a payment, customers only need a charged wallet. A merchant can "
"accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
msgstr ""
#: template/features.html.j2:50
@@ -776,8 +781,8 @@ msgstr ""
#: template/features.html.j2:71
msgid ""
"To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
msgstr ""
#: template/features.html.j2:79
@@ -799,8 +804,9 @@ msgstr ""
msgid ""
"To receive Taler payments, a merchant needs a bank account in the desired "
"currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
msgstr ""
#: template/features.html.j2:105
@@ -832,7 +838,7 @@ msgstr ""
msgid ""
"Taler does not introduce a new currency. Taler uses a digital wallet storing "
"coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
"currencies, such as US Dollars, Euros or even Bitcoins."
msgstr ""
@@ -854,7 +860,7 @@ msgstr ""
#: template/features.html.j2:172
msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
"authorities. Unlike cash and most digital currencies, Taler helps prevent "
"black markets. Taler is not suitable for illegal activities."
msgstr ""
@@ -1567,37 +1573,37 @@ msgstr ""
msgid "Shipment Tracking"
msgstr ""
-#: template/index.html.j2:23
+#: template/index.html.j2:25
msgid ""
"We provide a payment system that makes <span class='tlr'>privacy-friendly</"
"span> online transactions <span class='tlr'>fast and easy</span>."
msgstr ""
-#: template/index.html.j2:27
+#: template/index.html.j2:29
msgid "Payments without registration"
msgstr ""
-#: template/index.html.j2:31
+#: template/index.html.j2:33
msgid "Data protection by default"
msgstr ""
-#: template/index.html.j2:35
+#: template/index.html.j2:37
msgid "Fraud eliminated by design"
msgstr ""
-#: template/index.html.j2:39
+#: template/index.html.j2:41
msgid "Not a new currency!"
msgstr ""
-#: template/index.html.j2:43
+#: template/index.html.j2:45
msgid "Empowers communities to run their own payment infrastructure"
msgstr ""
-#: template/index.html.j2:46
+#: template/index.html.j2:48
msgid "Try Demo!"
msgstr ""
-#: template/index.html.j2:47
+#: template/index.html.j2:49
msgid "Read Docs"
msgstr ""
@@ -1842,22 +1848,6 @@ msgstr ""
msgid "customer perspective"
msgstr ""
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
#: template/press.html.j2:4
msgid "GNU Taler in the Press"
msgstr ""
diff --git a/make_site.py b/make_site.py
index d7be569..4c2605a 100755
--- a/make_site.py
+++ b/make_site.py
@@ -9,79 +9,51 @@
#
# Note that the gettext files need to be prepared first. This script
# is thus to be invoked via the Makefile.
-import os
-import os.path
-import sys
-import re
-import gettext
import jinja2
-import glob
-import codecs
-import os
-sys.path.append(os.getcwd())
-import i18nfix
+import sys
+from pathlib import Path, PurePath
+from inc.site import gen_site
+from inc.fileproc import copy_files
-env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
+env = jinja2.Environment(loader=jinja2.FileSystemLoader(str(PurePath(__file__).parent)),
extensions=["jinja2.ext.i18n"],
lstrip_blocks=True,
trim_blocks=True,
undefined=jinja2.StrictUndefined,
autoescape=False)
-langs_full = {"en": "English",
- "fr": "Français",
- "it": "Italiano",
- "es": "Español",
- "de": "Deutsch",
- "ru": "Ру́сский язы́к",
- "pt": "Português"}
-
-for in_file in glob.glob("template/*.j2"):
- name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups()
- tmpl = env.get_template(in_file)
-
- def self_localized(other_locale):
- """
- Return URL for the current page in another locale.
- """
- return "../" + other_locale + "/" + in_file.replace('template/', '').rstrip(".j2")
-
- def url_localized(filename):
- return "../" + locale + "/" + filename
-
- def svg_localized(filename):
- lf = filename + "." + locale + ".svg"
- if "en" == locale or not os.path.isfile (lf):
- return "../" + filename + ".svg"
- else:
- return "../" + lf
-
- def url(x):
- # TODO: look at the app root environment variable
- # TODO: check if file exists
- return "../" + x
-
- for l in glob.glob("locale/*/"):
- locale = os.path.basename(l[:-1])
-
- tr = gettext.translation("messages",
- localedir="locale",
- languages=[locale])
-
- tr.gettext = i18nfix.wrap_gettext(tr.gettext)
-
- env.install_gettext_translations(tr, newstyle=True)
-
- content = tmpl.render(
- docshost="docs.taler.net",
- lang=locale,
- lang_full=langs_full[locale],
- url=url,
- self_localized=self_localized,
- url_localized=url_localized,
- svg_localized=svg_localized,
- filename=name + "." + ext)
- out_name = "./rendered/" + locale + "/" + in_file.replace('template/', '').rstrip(".j2")
- os.makedirs("./rendered/" + locale, exist_ok=True)
- with codecs.open(out_name, "w", encoding='utf-8') as f:
- f.write(content)
+if len(sys.argv) >= 2 and sys.argv[1] == "-vv":
+ DEBUG=1
+elif len(sys.argv) >= 2 and sys.argv[1] == "-vvv":
+ DEBUG=2
+elif len(sys.argv) >= 2 and sys.argv[1] == "-vvvv":
+ DEBUG=3
+else:
+ DEBUG=0
+
+def main():
+ x = gen_site(DEBUG)
+ conf = x.load_config("www.yml")
+ x.gen_abstract(conf, "newsposts", "abstract", "page", 1000)
+ x.gen_newspost_content(conf, "newsposts", "content", "page", "en")
+ x.gen_rss("inc", conf, env)
+ if DEBUG:
+ print("generating html from jinja2 templates...")
+ x.run("template", conf, env)
+ if DEBUG >= 2:
+ print(Path.cwd())
+ _ = Path("rendered")
+ for child in _.iterdir():
+ print(child)
+ if DEBUG >= 2:
+ print(Path.cwd())
+ if DEBUG:
+ print("generating html from jinja2 news templates...")
+ x.run("news", conf, env)
+ if DEBUG:
+ print("copying directories...")
+ x.copy_trees("static")
+ x.copy_trees("dist")
+
+if __name__ == "__main__":
+ main()
diff --git a/favicon.ico b/static/favicon.ico
index 6702382..6702382 100644
--- a/favicon.ico
+++ b/static/favicon.ico
Binary files differ
diff --git a/robots.txt b/static/robots.txt
index 0a63991..0a63991 100644
--- a/robots.txt
+++ b/static/robots.txt
diff --git a/styles.css b/static/styles.css
index 2307a5f..2307a5f 100644
--- a/styles.css
+++ b/static/styles.css
diff --git a/template/bibliography.html.j2 b/template/bibliography.html.j2
index af91b8d..1065483 100644
--- a/template/bibliography.html.j2
+++ b/template/bibliography.html.j2
@@ -1,48 +1,50 @@
{% extends "common/base.j2" %}
{% block body_content %}
-<div class="container">
-<h1>{{ _("GNU Taler Bibliography")}}</h1>
-
-<h2>The GNU Taler System: Practical and Provably Secure Electronic Payments</h2>
-<p>
-<a href="{{ url('papers/thesis-dold-phd-2019.pdf') }}"><img border=0 align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} Florian Dold<br>
-PhD Thesis, 2019<br>
-</p>
-
-<h2>Blind Signatures for Untraceable Payments</h2>
-<p>
-<a href="{{ url('papers/chaum-blind-signatures.pdf') }}"><img border=0 align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} David Chaum<br>
-CRYPTO '82<br>
-</p>
-
-<h2>The One-More-RSA-Inversion Problems and the Security of Chaum's Blind Signature Scheme</h2>
-<p>
-<a href="{{ url('papers/bellare_blindsigs_proof.pdf') }}"><img border=0 align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} M. Bellare, C. Namprempre, D. Pointcheval {{ _("and") }} M. Semanko<br>
-Financial Cryptography '01<br>
-</p>
-
-<h2>Enabling Secure Web Payments with GNU Taler</h2>
-<p>
-<a href="{{ url('papers/taler2016space.pdf') }}"><img border=0 align=right width=32 height=32 alt="PDF" src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} Jeff Burdges, Florian Dold, Christian Grothoff {{ _("and") }} Marcello Stanisci<br>
-SPACE 2016<br>
-</p>
-
-<h2>Digital cash and privacy: What are the alternatives to Libra?</h2>
-<p>
-<a href="https://www.media.mit.edu/posts/digital-cash-and-privacy-what-are-the-alternatives-to-libra/"><img border=0 align=right alt="HTML" width=32 height=32 src="{{ url('images/html.svg') }}"></a>
-{{_("by")}} Christian Grothoff {{ _("and") }} Alex Pentland<br>
-MIT Media Lab, 2019<br>
-</p>
-
-<h2>Refreshing Coins for Giving Change and Refunds in Chaum-style Anonymous Payment Systems</h2>
-<p>
-{{_("by")}} Florian Dold, Sree Harsha Totakura, Benedikt M&uuml;ller, Jeff Burdges {{ _("and") }} Christian Grothoff<br>
-<em>{{_("available upon request")}}</em><br>
-</p>
-
-</div>
+ <article class="container">
+ <header>
+ <h1>{{ _("GNU Taler Bibliography")}}</h1>
+ </header>
+ <div class="row">
+ <div class="col-lg-12">
+ {% for item in conf["paperslist"] %}
+ <section>
+ <header>
+ <h2>{{ item['name']|e }}</h2>
+ </header>
+ <div class="row container">
+ <div class="col">
+ <p>
+ {% if item['url_pdf'] %}
+ <a href="{{ url(item['url_pdf']) }}">
+ <img border=0 align=right alt="PDF" width=32 height=32 src="{{ url_static('images/pdf.svg') }}">
+ </a>
+ {% endif %}
+ {% if item['url_html'] %}
+ <a href="{{ item['url_html'] }}">
+ <img border=0 align=right alt="HTML" width=32 height=32 src="{{ url_static('images/html.svg') }}">
+ </a>
+ {% endif %}
+ {{_("by")}}
+ {% if item['authors'] %}
+ {% for name in item['authors'] %}
+ {{ name|e }}
+ {% if not loop.last %}
+ ,
+ {% elif loop.revindex0 == 1 %}
+ {{ _("and") }}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ <br>
+ {% if item['kind'] %} {{ item['kind']|e }} {% endif %}
+ {% if item['year'] %} ({{ item['year'] }}) {% endif %}
+ {% if item['comment'] %}<br>{{ item['comment'] }} {% endif %}
+ </p>
+ </div>
+ </div>
+ </section>
+ {% endfor %}
+ </div>
+ </div>
+ </article>
{% endblock body_content %}
diff --git a/template/docs.html.j2 b/template/docs.html.j2
index 83fa2e5..2b9c1b0 100644
--- a/template/docs.html.j2
+++ b/template/docs.html.j2
@@ -1,6 +1,6 @@
{% extends "common/base.j2" %}
{% block body_content %}
-
+{% for siteconfitem in siteconf %}
<div class="container">
<div class="row">
<div class="col">
@@ -33,7 +33,7 @@
<div class="row">
<div class="col-3">
- <a href="https://{{ docshost }}/taler-merchant-manual.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/taler-merchant-manual.html">
<img src="../icons/icon-backend.svg" height=60>
<h3>{{ _("Merchant Backend Administration")}}</h3>
</a>
@@ -41,11 +41,11 @@
Tutorial and manual for operating a merchant.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/taler-merchant-manual.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/taler-merchant-manual.pdf">PDF</a>.
</div>
<div class="col-3">
- <a href="https://{{ docshost }}/taler-merchant-api-tutorial.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/taler-merchant-api-tutorial.html">
<img src="../icons/icon-market.svg" height=60>
<h3>{{ _("Merchant API Tutorial") }}</h3>
</a>
@@ -53,23 +53,23 @@
Tutorial for processing Taler payments using the merchant backend API.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/taler-merchant-api-tutorial.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/taler-merchant-api-tutorial.pdf">PDF</a>.
</div>
<div class="col-3">
- <a href="https://{{ docshost }}/taler-exchange-manual.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/taler-exchange-manual.html">
<img src="../icons/icon-exchange.svg" height=60>
<h3>{{ _("Exchange")}}</h3>
</a>
{% trans %}
- Operator's manual for the GNU Taler exchange.
+ Operator&#39;s manual for the GNU Taler exchange.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/taler-exchange-manual.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/taler-exchange-manual.pdf">PDF</a>.
</div>
<div class="col-3">
- <a href="https://{{ docshost }}/taler-bank-manual.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/taler-bank-manual.html">
<img src="../icons/icon-bank.svg" height=60>
<h3>{{ _("Bank Integration") }}</h3>
</a>
@@ -77,7 +77,7 @@
Manual for tightly integrating Taler with banking applications.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/taler-bank-manual.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/taler-bank-manual.pdf">PDF</a>.
</div>
</div>
@@ -87,7 +87,7 @@
<div class="row">
<div class="col-3">
- <a href="https://{{ docshost }}/taler-backoffice-manual.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/taler-backoffice-manual.html">
<img src="../icons/icon-backoffice.svg" height=60>
<h3>{{ _("Back office") }}</h3>
</a>
@@ -95,7 +95,7 @@
Manual to run the back-office Web application.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/taler-backoffice-manual.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/taler-backoffice-manual.pdf">PDF</a>.
</div>
</div>
@@ -113,7 +113,7 @@
<div class="row">
<div class="col-3">
- <a href="https://{{ docshost }}/core/index.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/core/index.html">
<img src="../icons/icon-api.svg" height=60>
<h3>{{ _("HTTP API")}}</h3>
</a>
@@ -123,7 +123,7 @@
</div>
<div class="col-3">
- <a href="https://{{ docshost }}/onboarding.html">
+ <a href="https://{{ siteconfitem["docshost"] }}/onboarding.html">
<img src="../icons/icon-developers.svg" height=60>
<h3>{{ _("Onboarding")}}</h3>
</a>
@@ -131,7 +131,7 @@
Description of our taler.net setup and how to contribute.
Also available as
{% endtrans %}
- <a href="https://{{ docshost }}/pdf/onboarding.pdf">PDF</a>.
+ <a href="https://{{ siteconfitem["docshost"] }}/pdf/onboarding.pdf">PDF</a>.
</div>
</div>
@@ -199,5 +199,5 @@
</div>
</div>
-
+{% endfor %}
{% endblock body_content %}
diff --git a/template/features.html.j2 b/template/features.html.j2
index e4c4448..c97517e 100644
--- a/template/features.html.j2
+++ b/template/features.html.j2
@@ -42,7 +42,7 @@
When making a payment, customers only need a charged wallet.
A merchant can accept payments
<span class="tlr">without making their customers register</span>
- on the merchant's Website.
+ on the merchant&#39;s Website.
{% endtrans %}
</p>
@@ -57,7 +57,7 @@
</p>
</div>
<div class="col">
- <img class="img-fluid" src="../images/diagram-simple.png">
+ <img class="img-fluid" src="{{ url_static('images/diagram-simple.png') }}">
</div>
</div>
</div>
@@ -71,7 +71,7 @@
{% trans %}
To pay with Taler, customers install an electronic wallet
on their device. Before the first payment, the desired currency
- must be added to the wallet's balance
+ must be added to the wallet&#39;s balance
by some other means of payment.
{% endtrans %}
</p>
@@ -97,8 +97,8 @@
To receive Taler payments, a merchant needs a bank account
in the desired currency. We provide supporting software
in various programming languages to make the integration painless.
- The merchant's backend for Taler transaction processing can run
- on the merchant's premises or be hosted by a third party.
+ The merchant&#39;s backend for Taler transaction processing can run
+ on the merchant&#39;s premises or be hosted by a third party.
{% endtrans %}
</p>
<p>
@@ -144,7 +144,7 @@
Taler does not introduce a new currency. Taler
uses a digital wallet storing coins and payment service
providers with escrow accounts in existing currencies.
- Thus, Taler's cryptographic coins correspond to existing
+ Thus, Taler&#39;s cryptographic coins correspond to existing
currencies, such as US Dollars, Euros or even Bitcoins.
{% endtrans %}
</p>
@@ -170,7 +170,7 @@
<p>
{% trans %}
- When using Taler, merchant's revenue is transparent for tax
+ When using Taler, merchant&#39;s revenue is transparent for tax
collection authorities. Unlike cash and most digital currencies,
Taler helps prevent black markets. Taler is not suitable for
illegal activities.
diff --git a/template/index.html.j2 b/template/index.html.j2
index 59937c6..e74f82c 100644
--- a/template/index.html.j2
+++ b/template/index.html.j2
@@ -1,17 +1,19 @@
{% extends "common/base.j2" %}
{% block body_content %}
-
+ {% import 'inc/news.macro.j2' as news %}
<div class="container">
<div class="row justify-content-center">
<div class="col-8">
- <img src="../images/logo-2018-dold.svg">
+ <img src="{{ url_static('images/logo-2018-dold.svg') }}">
</div>
</div>
<div class="row justify-content-center text-center">
<div class="col-8">
- <a href="news.html">2018-04: GNU Taler v0.5.0 released</a>
+ {% for item in newsdata[:1] %}
+ {{ news.tinylinkpreview(item, prefix="news/") }}
+ {% endfor %}
</div>
</div>
@@ -23,23 +25,23 @@
<h2>{{ _("We provide a payment system that makes <span class='tlr'>privacy-friendly</span> online transactions <span class='tlr'>fast and easy</span>.")}}</h2>
<ul class="checklist">
<li>
- <img class="checkmark" src="../images/checkmark.png">
+ <img class="checkmark" src="{{ url_static('images/checkmark.png') }}">
{{ _("Payments without registration")}}
</li>
<li>
- <img class="checkmark" src="../images/checkmark.png">
+ <img class="checkmark" src="{{ url_static('images/checkmark.png') }}">
{{ _("Data protection by default")}}
</li>
<li>
- <img class="checkmark" src="../images/checkmark.png">
+ <img class="checkmark" src="{{ url_static('images/checkmark.png') }}">
{{ _("Fraud eliminated by design")}}
</li>
<li>
- <img class="checkmark" src="../images/checkmark.png">
+ <img class="checkmark" src="{{ url_static('images/checkmark.png') }}">
{{ _("Not a new currency!")}}
</li>
<li>
- <img class="checkmark" src="../images/checkmark.png">
+ <img class="checkmark" src="{{ url_static('images/checkmark.png') }}">
{{ _("Empowers communities to run their own payment infrastructure")}}
</li>
</ul>
@@ -47,7 +49,7 @@
<form action="https://docs.taler.net/" style="display:inline;"><button type="submit" class="btn btn-secondary">{{ _("Read Docs")}}</button></form>
</div>
<div class="col align-self-center">
- <img class="img-fluid" src="../images/stock1s.jpg" style="border-radius: 1cm;" />
+ <img class="img-fluid" src="{{ url_static('images/stock1s.jpg') }}" style="border-radius: 1cm;" />
</div>
</div>
</div>
diff --git a/template/news.html.j2 b/template/news.html.j2
deleted file mode 100644
index 311f4c1..0000000
--- a/template/news.html.j2
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends "common/base.j2" %}
-{% block body_content %}
-
- <div class="container">
- <div class="col">
- <h1>{{ _("News")}}</h1>
-
- {% include "news/2018-04.inc" %}
- {% include "news/2017-10.inc" %}
- {# include "news/2017-08.inc" #}
- {# include "news/2017-04.inc" #}
- {# include "news/2017-03.inc" #}
- {# include "news/2017-02.inc" #}
- {% include "news/2017-01.inc" %}
-
- <a href="old-news.html"><h3>{{ _("More news")}}</h3></a>
- </div>
- </div>
-
-{% endblock body_content %}
diff --git a/template/old-news.html.j2 b/template/old-news.html.j2
deleted file mode 100644
index 611b4ae..0000000
--- a/template/old-news.html.j2
+++ /dev/null
@@ -1,44 +0,0 @@
-{% extends "common/base.j2" %}
-{% block body_content %}
-
- <div class="jumbotron">
- <div class="container text-center">
- <h1>{{ _("Older News") }}</h1>
- <div class="col-lg-12">
- <p>
- {% trans %}
- This page documents the GNU Taler history.
- {% endtrans %}
- </p>
- </div>
- </div>
- </div>
-
- <div class="container">
- <div class="row">
- <div class="col-lg-12">
-
- {#
- {% include "news/2016-12.inc" %}
- #}
- {% include "news/2016-10.inc" %}
- {% include "news/2016-09.inc" %}
- {% include "news/2016-08.inc" %}
- {% include "news/2016-06.inc" %}
- {% include "news/2015-12.inc" %}
-
- {#
- {% include "news/2015-11.inc" %}
- #}
-
- {% include "news/2015-02.inc" %}
- {#
- {% include "news/2014-12.inc" %}
- #}
- {% include "news/2014-11.inc" %}
-
- </div>
- </div>
- </div> <!-- /container -->
-
-{% endblock body_content %}
diff --git a/template/principles.html.j2 b/template/principles.html.j2
index f81c01b..d16a8fb 100644
--- a/template/principles.html.j2
+++ b/template/principles.html.j2
@@ -30,7 +30,7 @@
<div class="col-lg-12">
<h2>{{ _("1. Free Software implementation") }}</h2>
<a href="https://www.gnu.org/graphics/freedom.html">
- <img style="width:20vw;float:right" src="../images/stallman.medium.png" alt="{{ _("... in the area of computing, freedom means not using proprietary software") }}">
+ <img style="width:20vw;float:right" src="{{ url_static('images/stallman.medium.png') }}" alt="{{ _("... in the area of computing, freedom means not using proprietary software") }}">
</a>
<p>
{% trans %}
@@ -55,7 +55,7 @@
<div class="col-lg-12">
<h2>{{ _("2. Protect the privacy of buyers") }}</h2>
<!-- From https://www.pixabay.com/ -->
- <img style="width:20vw;float:left;padding:15px" src="../images/anonymous.jpg" alt="{{_("You deserve some privacy")}}">
+ <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/anonymous.jpg') }}" alt="{{_("You deserve some privacy")}}">
<p>
{% trans %}
Privacy should be guaranteed via technical measures, as opposed to mere
@@ -80,7 +80,7 @@
<div class="col-lg-12">
<h2>{{ _("3. Enable the state to tax income and crack down on illegal business activities") }}</h2>
<!-- From https://www.pxhere.com/ -->
- <img style="width:20vw;float:right;padding:15px" src="../images/money-laundering.medium.jpg" alt="{{_("Money laundering")}}">
+ <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/money-laundering.medium.jpg') }}" alt="{{_("Money laundering")}}">
<p>
{% trans %}
As a payment system must still be legal to operate and use, it must comply
@@ -94,7 +94,7 @@
<div class="col-lg-12">
<h2>{{ _("4. Prevent payment fraud") }}</h2>
<!-- From https://www.maxpixel.net/ -->
- <img style="width:20vw;float:left;padding:15px" src="../images/fraud.medium.jpg" alt="{{_("Phishing attack")}}">
+ <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/fraud.medium.jpg') }}" alt="{{_("Phishing attack")}}">
<p>
{% trans %}
This imposes requirements on the security of the system, as well as on the
@@ -107,7 +107,7 @@
<div class="row">
<div class="col-lg-12">
<h2>{{ _("5. Only disclose the minimal amount of information necessary") }}</h2>
- <img style="width:20vw;float:right;padding:15px" src="../images/gdpr.medium.jpg" alt="{{_("Privacy by design, privacy by default, General Data Protection Regulation (GDPR) compliant")}}">
+ <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/gdpr.medium.jpg') }}" alt="{{_("Privacy by design, privacy by default, General Data Protection Regulation (GDPR) compliant")}}">
<p>
{% trans %}
The reason behind this goal is similar to (2). The privacy of buyers is given
@@ -120,7 +120,7 @@
<div class="row">
<div class="col-lg-12">
<h2>{{ _("6. Be usable") }}</h2>
- <img style="width:20vw;float:left;padding:15px" src="../images/buy.medium.jpg" alt="{{_("Buy with one click")}}">
+ <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/buy.medium.jpg') }}" alt="{{_("Buy with one click")}}">
<p>
{% trans %}
Specifically it must be usable for non-expert customers. Usability also
@@ -134,7 +134,7 @@
<div class="row">
<div class="col-lg-12">
<h2>{{ _("7. Be efficient")}}</h2>
- <img style="width:20vw;float:right;padding:15px" src="../images/efficient.png" alt="{{_("Energy efficiency")}}">
+ <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/efficient.png') }}" alt="{{_("Energy efficiency")}}">
<p>
{% trans %}
Approaches such as proof-of-work are ruled out by this
@@ -147,7 +147,7 @@
<div class="row">
<div class="col-lg-12">
<h2>{{ _("8. Fault-tolerant design")}}</h2>
- <img style="width:20vw;float:left;padding:15px" src="../images/life-safer.medium.jpg" alt="{{_("Life Safers")}}">
+ <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/life-safer.medium.jpg') }}" alt="{{_("Life Safers")}}">
<p>
{% trans %}
Taler should tolerate failure of individual components and systems,
@@ -161,7 +161,7 @@
<div class="row">
<div class="col-lg-12">
<h2>{{ _("9. Foster competition")}}</h2>
- <img style="width:20vw;float:right;padding:15px" src="../images/market.medium.jpg" alt="{{_("A competitive market")}}">
+ <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/market.medium.jpg') }}" alt="{{_("A competitive market")}}">
<p>
{% trans %}
It must be relatively easy for competitors to join the systems. While the
diff --git a/www.yml b/www.yml
new file mode 100644
index 0000000..ff589c5
--- /dev/null
+++ b/www.yml
@@ -0,0 +1,180 @@
+siteconf:
+ - baseurl: taler.net
+ newsloc: /news/
+ newsdir: news
+ rsstitle: Taler.net
+ rssdescr: "News posts published by Taler about changes related to Taler, releases and events"
+ rssloc:
+ rsslink:
+ rsslang:
+ docshost: docs.taler.net
+langs_full: &langs
+ en: English
+ fr: Français
+ it: Italiano
+ es: Español
+ de: Deutsch
+ ru: Ру́сский язы́к
+ pt: Português
+symlinks:
+staticfiles:
+ - file: favicon.ico
+ targets:
+ - favicon.ico
+ - file: robots.txt
+ targets:
+ - robots.txt
+meetingnotes:
+newsposts:
+ - page: 2018-04.html
+ date: 2018-04-01
+ title: GNU Taler v0.5.0 released
+ abstract:
+ content:
+ - page: 2017-10.html
+ date: 2017-10-01
+ title: GNU Taler v0.4.0 released
+ abstract:
+ content:
+ - page: 2017-08.html
+ date: 2017-08-01
+ title: We explain GNU Taler at SHA 2017
+ abstract:
+ content:
+ - page: 2017-04.html
+ date: 2017-04-01
+ title: "Sva explains GNU Taler at EasterHegg and Torsten demonstrates it is child's play"
+ abstract:
+ content:
+ - page: 2017-03.html
+ date: 2017-03-01
+ title: Sva explains GNU Taler at FOSSASIA in Singapore
+ abstract:
+ content:
+ - page: 2017-02.html
+ date: 2017-02-01
+ title: Florian Dold explains Taler at 50p in Bangalore
+ abstract:
+ content:
+ - page: 2017-01.html
+ date: 2017-01-01
+ title: Taler Documentation pages updated
+ abstract:
+ content:
+ - page: 2016-12.html
+ date: 2016-12-01
+ title: Christian Grothoff explains Taler at hasgeek in Bangalore
+ abstract:
+ content:
+ - page: 2016-10.html
+ date: 2016-10-01
+ title: Taler Wallet for Firefox online
+ abstract:
+ content:
+ - page: 2016-09.html
+ date: 2016-09-01
+ title: Taler Web Payments paper published
+ abstract:
+ content:
+ - page: 2016-08.html
+ date: 2016-08-01
+ title: Taler Systems S.A. created
+ abstract:
+ content:
+ - page: 2016-06.html
+ date: 2016-06-01
+ title: GNU Taler 0.0.0 released
+ abstract:
+ content:
+ - page: 2015-12.html
+ date: 2015-12-01
+ title: "Taler Demo for Chrome/Chromium online"
+ abstract:
+ content:
+ - page: 2015-11.html
+ date: 2015-11-01
+ title: "Christian Grothoff explains the goals behind Taler"
+ abstract:
+ content:
+ - page: 2015-02.html
+ date: 2015-02-01
+ title: Taler becomes an official GNU package
+ abstract:
+ content:
+ - page: 2014-12.html
+ date: 2014-12-01
+ title: "Watch Christian Grothoff's FOSSA talk on Taler"
+ abstract:
+ content:
+ - page: 2014-11.html
+ date: 2014-11-01
+ title: Launching taler.net
+ abstract:
+ content:
+videoslist:
+paperslist:
+ - year: 2019
+ authors:
+ - Florian Dold
+ name: "The GNU Taler System: Practical and Provably Secure Electronic Payments"
+ kind: PhD Thesis
+ url:
+ url_html:
+ url_pdf: "papers/thesis-dold-phd-2019.pdf"
+ comment:
+ - year: 1982
+ authors:
+ - David Chaum
+ name: "Blind Signatures for Untraceable Payments"
+ kind: "CRYPTO '82"
+ url:
+ url_html:
+ url_pdf: "papers/chaum-blind-signatures.pdf"
+ comment:
+ - year:
+ authors:
+ - M. Bellare
+ - C. Namprempre
+ - D. Pointcheval
+ - M. Semanko
+ name: "The One-More-RSA-Inversion Problems and the Security of Chaum's Blind Signature Scheme"
+ kind: Financial Cryptography
+ url:
+ url_html:
+ url_pdf: "papers/bellare_blindsigs_proof.pdf"
+ comment:
+ - year: 2016
+ authors:
+ - Jeff Burdges
+ - Florian Dold
+ - Christian Grothoff
+ - Marcello Stanisci
+ name: "Enabling Secure Web Payments with GNU Taler"
+ kind: SPACE 2016
+ url:
+ url_html:
+ url_pdf: "papers/taler2016space.pdf"
+ comment:
+ - year: 2019
+ authors:
+ - Christian Grothoff
+ - Alex Pentland
+ name: "Digital cash and privacy: What are the alternatives to Libra?"
+ kind: MIT Media Lab
+ url:
+ url_html: https://www.media.mit.edu/posts/digital-cash-and-privacy-what-are-the-alternatives-to-libra/
+ url_pdf:
+ comment:
+ - year:
+ authors:
+ - Florian Dold
+ - Sree Harsha Totakura
+ - Benedikt Müller
+ - Jeff Burdges
+ - Christian Grothoff
+ name: "Refreshing Coins for Giving Change and Refunds in Chaum-style Anonymous Payment Systems"
+ kind:
+ url:
+ url_pdf:
+ url_html:
+ comment: "<em>available upon request</em>"