gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-merchant-demos] branch master updated (953046e -> 2b84f3b)


From: gnunet
Subject: [taler-taler-merchant-demos] branch master updated (953046e -> 2b84f3b)
Date: Wed, 21 Apr 2021 21:07:26 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a change to branch master
in repository taler-merchant-demos.

    from 953046e  css
     new 4356540  linter fix
     new 2b84f3b  common base template, new logo and lots of cleanup

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 setup.py                                           |   1 +
 talermerchantdemos/blog/blog.py                    | 190 +++++++++++++--------
 talermerchantdemos/blog/content.py                 |  36 ++--
 talermerchantdemos/blog/static                     |   1 -
 talermerchantdemos/blog/templates/base.html.j2     |  52 ------
 talermerchantdemos/blog/templates/footer.html.j2   |   1 -
 talermerchantdemos/blog/templates/javascript.html  |  31 ----
 .../blog/templates/language-switcher.html.j2       |   1 -
 talermerchantdemos/blog/templates/menu.html.j2     |   1 -
 talermerchantdemos/blog/translations               |   1 -
 talermerchantdemos/donations/donations.py          |  97 +++++------
 talermerchantdemos/donations/static                |   1 -
 .../donations/templates/base.html.j2               |  48 ------
 .../donations/templates/footer.html.j2             |   1 -
 .../donations/templates/javascript.html            |  31 ----
 .../donations/templates/language-switcher.html.j2  |   1 -
 .../donations/templates/menu.html.j2               |   1 -
 talermerchantdemos/donations/translations          |   1 -
 talermerchantdemos/httpcommon/__init__.py          |  65 +++----
 talermerchantdemos/landing/landing.py              |  16 +-
 talermerchantdemos/landing/static                  |   1 -
 .../landing/templates/footer.html.j2               |   1 -
 .../landing/templates/language-switcher.html.j2    |   1 -
 talermerchantdemos/landing/templates/menu.html.j2  |   1 -
 talermerchantdemos/landing/translations            |   1 -
 talermerchantdemos/survey/static                   |   1 -
 talermerchantdemos/survey/survey.py                |  80 ++++++---
 talermerchantdemos/survey/templates/base.html.j2   |  48 ------
 talermerchantdemos/survey/templates/footer.html.j2 |   1 -
 .../survey/templates/language-switcher.html.j2     |   1 -
 talermerchantdemos/survey/templates/menu.html.j2   |   1 -
 talermerchantdemos/survey/translations             |   1 -
 .../blog-article-frame.html.j2}                    |  11 +-
 .../blog-article-refunded.html.j2}                 |   2 +-
 talermerchantdemos/templates/blog-base.html.j2     |  13 ++
 .../blog-confirm-refund.html.j2}                   |   6 +-
 .../error.html.j2 => templates/blog-error.html.j2} |   2 +-
 .../index.html.j2 => templates/blog-index.html.j2} |   2 +-
 .../base.html.j2 => templates/common-base.html.j2} |  18 +-
 .../templates/donations-base.html.j2               |  13 ++
 .../donations-checkout.html.j2}                    |   2 +-
 .../donations-error.html.j2}                       |   2 +-
 .../donations-fulfillment.html.j2}                 |   2 +-
 .../donations-index.html.j2}                       |   2 +-
 .../donations-provider-not-supported.html.j2}      |   2 +-
 talermerchantdemos/templates/landing-base.html.j2  |  12 ++
 .../landing-error.html.j2}                         |   2 +-
 .../landing-index.html.j2}                         |   2 +-
 talermerchantdemos/templates/menu.html.j2          |   5 +-
 talermerchantdemos/templates/survey-base.html.j2   |  13 ++
 .../survey-error.html.j2}                          |   2 +-
 .../survey-index.html.j2}                          |   2 +-
 translations/ar/LC_MESSAGES/messages.po            | 143 ++++++++--------
 translations/de/LC_MESSAGES/messages.po            | 151 ++++++++--------
 translations/en/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/es/LC_MESSAGES/messages.po            | 151 ++++++++--------
 translations/fr/LC_MESSAGES/messages.po            | 151 ++++++++--------
 translations/hi/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/it/LC_MESSAGES/messages.po            | 151 ++++++++--------
 translations/ja/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/ko/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/messages.pot                          | 139 +++++++--------
 translations/pt/LC_MESSAGES/messages.po            | 151 ++++++++--------
 translations/pt_BR/LC_MESSAGES/messages.mo         | Bin 433 -> 433 bytes
 translations/pt_BR/LC_MESSAGES/messages.po         | 139 +++++++--------
 translations/ru/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/sv/LC_MESSAGES/messages.po            | 147 ++++++++--------
 translations/tr/LC_MESSAGES/messages.po            | 139 +++++++--------
 translations/zh_Hant/LC_MESSAGES/messages.mo       | Bin 6135 -> 6135 bytes
 translations/zh_Hant/LC_MESSAGES/messages.po       | 143 ++++++++--------
 70 files changed, 1455 insertions(+), 1675 deletions(-)
 delete mode 120000 talermerchantdemos/blog/static
 delete mode 100644 talermerchantdemos/blog/templates/base.html.j2
 delete mode 120000 talermerchantdemos/blog/templates/footer.html.j2
 delete mode 100644 talermerchantdemos/blog/templates/javascript.html
 delete mode 120000 talermerchantdemos/blog/templates/language-switcher.html.j2
 delete mode 120000 talermerchantdemos/blog/templates/menu.html.j2
 delete mode 120000 talermerchantdemos/blog/translations
 delete mode 120000 talermerchantdemos/donations/static
 delete mode 100644 talermerchantdemos/donations/templates/base.html.j2
 delete mode 120000 talermerchantdemos/donations/templates/footer.html.j2
 delete mode 100644 talermerchantdemos/donations/templates/javascript.html
 delete mode 120000 
talermerchantdemos/donations/templates/language-switcher.html.j2
 delete mode 120000 talermerchantdemos/donations/templates/menu.html.j2
 delete mode 120000 talermerchantdemos/donations/translations
 delete mode 120000 talermerchantdemos/landing/static
 delete mode 120000 talermerchantdemos/landing/templates/footer.html.j2
 delete mode 120000 
talermerchantdemos/landing/templates/language-switcher.html.j2
 delete mode 120000 talermerchantdemos/landing/templates/menu.html.j2
 delete mode 120000 talermerchantdemos/landing/translations
 delete mode 120000 talermerchantdemos/survey/static
 delete mode 100644 talermerchantdemos/survey/templates/base.html.j2
 delete mode 120000 talermerchantdemos/survey/templates/footer.html.j2
 delete mode 120000 
talermerchantdemos/survey/templates/language-switcher.html.j2
 delete mode 120000 talermerchantdemos/survey/templates/menu.html.j2
 delete mode 120000 talermerchantdemos/survey/translations
 rename talermerchantdemos/{blog/templates/article_frame.html.j2 => 
templates/blog-article-frame.html.j2} (63%)
 rename talermerchantdemos/{blog/templates/article_refunded.html.j2 => 
templates/blog-article-refunded.html.j2} (89%)
 create mode 100644 talermerchantdemos/templates/blog-base.html.j2
 rename talermerchantdemos/{blog/templates/confirm_refund.html.j2 => 
templates/blog-confirm-refund.html.j2} (87%)
 rename talermerchantdemos/{donations/templates/error.html.j2 => 
templates/blog-error.html.j2} (91%)
 rename talermerchantdemos/{blog/templates/index.html.j2 => 
templates/blog-index.html.j2} (97%)
 rename talermerchantdemos/{landing/templates/base.html.j2 => 
templates/common-base.html.j2} (75%)
 create mode 100644 talermerchantdemos/templates/donations-base.html.j2
 rename talermerchantdemos/{donations/templates/checkout.html.j2 => 
templates/donations-checkout.html.j2} (98%)
 rename talermerchantdemos/{blog/templates/error.html.j2 => 
templates/donations-error.html.j2} (91%)
 rename talermerchantdemos/{donations/templates/fulfillment.html.j2 => 
templates/donations-fulfillment.html.j2} (94%)
 rename talermerchantdemos/{donations/templates/index.html.j2 => 
templates/donations-index.html.j2} (98%)
 rename talermerchantdemos/{donations/templates/provider-not-supported.html.j2 
=> templates/donations-provider-not-supported.html.j2} (87%)
 create mode 100644 talermerchantdemos/templates/landing-base.html.j2
 rename talermerchantdemos/{landing/templates/error.html.j2 => 
templates/landing-error.html.j2} (84%)
 rename talermerchantdemos/{landing/templates/index.html.j2 => 
templates/landing-index.html.j2} (99%)
 create mode 100644 talermerchantdemos/templates/survey-base.html.j2
 rename talermerchantdemos/{survey/templates/error.html.j2 => 
templates/survey-error.html.j2} (91%)
 rename talermerchantdemos/{survey/templates/index.html.j2 => 
templates/survey-index.html.j2} (95%)

diff --git a/setup.py b/setup.py
index 2864b24..d2d3b16 100755
--- a/setup.py
+++ b/setup.py
@@ -19,6 +19,7 @@ setup(name='talermerchantdemos',
               # Common
               "static/*.css",
               "static/*.svg",
+              "templates/*.j2",
               # Landing files
               "landing/templates/*.j2",
               "landing/static/*.css",
diff --git a/talermerchantdemos/blog/blog.py b/talermerchantdemos/blog/blog.py
index be9b0a2..e8cce32 100644
--- a/talermerchantdemos/blog/blog.py
+++ b/talermerchantdemos/blog/blog.py
@@ -34,20 +34,38 @@ import sys
 from urllib.parse import urljoin, urlencode, urlparse
 from taler.util.talerconfig import TalerConfig, ConfigurationError
 from ..blog.content import ARTICLES, get_article_file, get_image_file
-from talermerchantdemos.httpcommon import backend_get, backend_post, 
self_localized, err_abort, Deadline
+from talermerchantdemos.httpcommon import (
+    backend_get,
+    backend_post,
+    self_localized,
+    Deadline,
+    BackendException,
+)
+
+
+def err_abort(abort_status_code, **params):
+    """
+    Return a error response to the client.
+
+    @param abort_status_code status code to return along the response.
+    @param params _kw_ arguments to passed verbatim to the templating engine.
+    """
+    t = flask.render_template("blog-error.html.j2", lang=get_locale(), 
**params)
+    flask.abort(flask.make_response(t, abort_status_code))
 
 
 def refundable(pay_status):
     refunded = pay_status.get("refunded")
     refund_deadline = pay_status.get("contract_terms", 
{}).get("refund_deadline")
-    assert(refunded != None and refund_deadline)
+    assert refunded != None and refund_deadline
     t_ms = refund_deadline.get("t_ms")
-    assert(t_ms)
+    assert t_ms
     rd = Deadline(t_ms)
     if not refunded and not rd.isExpired():
         return True
     return False
 
+
 if not sys.version_info.major == 3 and sys.version_info.minor >= 6:
     print("Python 3.6 or higher is required.")
     print(
@@ -57,10 +75,7 @@ if not sys.version_info.major == 3 and 
sys.version_info.minor >= 6:
     )
     sys.exit(1)
 
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-app = flask.Flask(
-    __name__, template_folder=BASE_DIR, static_folder=BASE_DIR + "/../static/"
-)
+app = flask.Flask(__name__, template_folder="../templates", 
static_folder="../static")
 app.debug = True
 app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8")
 
@@ -73,19 +88,24 @@ try:
 except ConfigurationError as ce:
     print(ce)
     exit(1)
+
 ARTICLE_AMOUNT = CURRENCY + ":0.5"
 BACKEND_URL = urljoin(BACKEND_BASE_URL, "instances/blog/")
 
+BABEL_TRANSLATION_DIRECTORIES = "../translations"
+
 app.config.from_object(__name__)
 babel = Babel(app)
 
-LOGGER.info("Using translations from:" + 
':'.join(list(babel.translation_directories)))
+LOGGER.info("Using translations from:" + 
":".join(list(babel.translation_directories)))
 translations = [str(translation) for translation in babel.list_translations()]
-if not 'en' in translations:
-    translations.append('en')
-LOGGER.info("Operating with the following translations available: " + ' 
'.join(translations))
+if not "en" in translations:
+    translations.append("en")
+LOGGER.info(
+    "Operating with the following translations available: " + " 
".join(translations)
+)
 
-app.jinja_env.globals.update(self_localized=self_localized)
+app.add_template_global(self_localized)
 
 
 ##
@@ -98,6 +118,7 @@ def utility_processor():
     # These helpers will be available in templates
     def env(name, default=None):
         return os.environ.get(name, default)
+
     return dict(env=env)
 
 
@@ -110,9 +131,10 @@ def utility_processor():
 @app.errorhandler(Exception)
 def internal_error(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "blog-error.html.j2",
         message=gettext("Internal error"),
-        stack=traceback.format_exc()
+        stack=traceback.format_exc(),
+        lang=get_locale(),
     )
 
 
@@ -122,27 +144,29 @@ def internal_error(e):
 # @return response object of the index page.
 @app.route("/")
 def index():
-    default = 'en'
+    default = "en"
     target = flask.request.accept_languages.best_match(translations, default)
     return flask.redirect("/" + target + "/", code=302)
 
+
 ##
 # Serve the /favicon.ico requests.
 #
 # @return the favicon.ico file.
 @app.route("/favicon.ico")
 def favicon():
-    LOGGER.info("will look into: " + os.path.join(app.root_path, 'static'))
+    LOGGER.info("will look into: " + os.path.join(app.root_path, "static"))
     return flask.send_from_directory(
-        os.path.join(app.root_path, 'static'),
+        os.path.join(app.root_path, "static"),
         "favicon.ico",
-        mimetype="image/vnd.microsoft.ico"
+        mimetype="image/vnd.microsoft.ico",
     )
 
+
 @babel.localeselector
 def get_locale():
-    parts = request.path.split('/', 2)
-    if (2 >= len(parts)):
+    parts = request.path.split("/", 2)
+    if 2 >= len(parts):
         # Totally unexpected path format, do not localize
         return "en"
     lang = parts[1]
@@ -150,6 +174,7 @@ def get_locale():
         return lang
     return "en"
 
+
 ##
 # Serve the main index page for a particular language.
 #
@@ -157,14 +182,14 @@ def get_locale():
 @app.route("/<lang>/")
 def start(lang):
     if lang in ARTICLES:
-        translated=ARTICLES[lang]
+        translated = ARTICLES[lang]
     else:
-        translated={}
+        translated = {}
     return flask.render_template(
-        "templates/index.html.j2",
+        "blog-index.html.j2",
         lang=lang,
         merchant_currency=CURRENCY,
-        articles=translated.values()
+        articles=translated.values(),
     )
 
 
@@ -172,21 +197,30 @@ def start(lang):
 def confirm_refund(lang, order_id):
     session_id = flask.session.get("session_id", "")
     pay_status = backend_get(
-        BACKEND_URL, f"private/orders/{order_id}", 
params=dict(session_id=session_id)
+        BACKEND_URL,
+        f"private/orders/{order_id}",
+        params=dict(session_id=session_id),
+        auth_token=APIKEY,
     )
     order_status = pay_status.get("order_status")
     if order_status != "paid":
         err_abort(
-            400, message=gettext("Cannot refund unpaid article"),
+            400,
+            message=gettext("Cannot refund unpaid article"),
         )
     article_name = pay_status["contract_terms"]["extra"]["article_name"]
 
     if not refundable(pay_status):
         return flask.render_template(
-            "templates/error.html.j2", message=gettext("Article is not anymore 
refundable")
+            "blog-error.html.j2",
+            message=gettext("Article is not anymore refundable"),
+            lang=get_locale(),
         )
     return flask.render_template(
-        "templates/confirm_refund.html.j2", article_name=article_name, 
order_id=order_id
+        "blog-confirm-refund.html.j2",
+        article_name=article_name,
+        order_id=order_id,
+        lang=get_locale(),
     )
 
 
@@ -207,7 +241,10 @@ def refund(order_id):
         return flask.jsonify(dict(error="Aborting refund: order unknown")), 400
     session_id = flask.session.get("session_id", "")
     pay_status = backend_get(
-        BACKEND_URL, f"private/orders/{order_id}", 
params=dict(session_id=session_id)
+        BACKEND_URL,
+        f"private/orders/{order_id}",
+        params=dict(session_id=session_id),
+        auth_token=APIKEY,
     )
     order_status = pay_status.get("order_status")
 
@@ -215,16 +252,16 @@ def refund(order_id):
         err_abort(
             402,
             message=gettext("You did not pay for this article (nice try!)"),
-            json=pay_status
+            json=pay_status,
         )
     if not refundable(pay_status):
         err_abort(
-            403,
-            message=gettext("Item not refundable (anymore)"),
-            json=pay_status
+            403, message=gettext("Item not refundable (anymore)"), 
json=pay_status
         )
     refund_spec = dict(reason="Demo reimbursement", refund=ARTICLE_AMOUNT)
-    resp = backend_post(BACKEND_URL, f"private/orders/{order_id}/refund", 
refund_spec)
+    backend_post(
+        BACKEND_URL, f"private/orders/{order_id}/refund", refund_spec, 
auth_token=APIKEY
+    )
     return flask.redirect(pay_status["order_status_url"])
 
 
@@ -245,7 +282,9 @@ def refund(order_id):
 def render_article(article_name, lang, data, order_id, refundable):
     article_info = ARTICLES[lang].get(article_name)
     if article_info is None:
-        m = gettext("Internal error: Files for article ({}) not 
found.").format(article_name)
+        m = gettext("Internal error: Files for article ({}) not 
found.").format(
+            article_name
+        )
         err_abort(500, message=m)
     if data is not None:
         if data in article_info.extra_files:
@@ -255,25 +294,27 @@ def render_article(article_name, lang, data, order_id, 
refundable):
         )
         err_abort(404, message=m)
     # the order_id is needed for refunds
+    article_contents = open(get_article_file(article_info)).read()
     return flask.render_template(
-        "templates/article_frame.html.j2",
-        article_file=get_article_file(article_info),
+        "blog-article-frame.html.j2",
+        article_contents=article_contents,
         article_name=article_name,
         order_id=order_id,
         lang=lang,
-        refundable=refundable
+        refundable=refundable,
     )
 
+
 ##
 # Setup a fresh order with the backend.
 #
 # @param article_name which article the order is for
 # @param lang which language to use
 #
-def post_order(article_name,lang):
+def post_order(article_name, lang):
     order = dict(
         amount=ARTICLE_AMOUNT,
-        extra=dict(article_name=article_name,lang=lang),
+        extra=dict(article_name=article_name, lang=lang),
         fulfillment_url=flask.request.base_url,
         summary="Essay: " + article_name.replace("_", " "),
         # FIXME: add support for i18n of summary!
@@ -283,7 +324,9 @@ def post_order(article_name,lang):
     order_resp = backend_post(
         BACKEND_URL,
         "private/orders",
-        dict(order=order, refund_delay=dict(d_ms=1000 * 120)))
+        dict(order=order, refund_delay=dict(d_ms=1000 * 120)),
+        auth_token=APIKEY,
+    )
     return order_resp
 
 
@@ -324,26 +367,28 @@ def article(article_name, lang=None, data=None):
     if not order_id:
         if not lang:
             err_abort(403, message=gettext("Direct access forbidden"))
-        order_resp = post_order(article_name,lang)
+        order_resp = post_order(article_name, lang)
         order_id = order_resp["order_id"]
 
     # Ask the backend for the status of the payment
     pay_status = backend_get(
         BACKEND_URL,
         f"private/orders/{order_id}",
-        params=dict(session_id=session_id)
+        params=dict(session_id=session_id),
+        auth_token=APIKEY,
     )
     order_status = pay_status.get("order_status")
     if order_status == "claimed":
         if not lang:
             err_abort(403, message=gettext("Direct access forbidden"))
         # Order already claimed, must setup fresh order
-        order_resp = post_order(article_name,lang)
+        order_resp = post_order(article_name, lang)
         order_id = order_resp["order_id"]
         pay_status = backend_get(
             BACKEND_URL,
             f"private/orders/{order_id}",
-            params=dict(session_id=session_id)
+            params=dict(session_id=session_id),
+            auth_token=APIKEY,
         )
         order_status = pay_status.get("order_status")
         # This really must be 'unpaid' now...
@@ -351,17 +396,14 @@ def article(article_name, lang=None, data=None):
     if order_status == "paid":
         refunded = pay_status["refunded"]
         if refunded:
-             return flask.render_template(
-                "templates/article_refunded.html.j2",
+            return flask.render_template(
+                "blog-article-refunded.html.j2",
                 article_name=article_name,
                 order_id=order_id,
+                lang=lang,
             )
         response = render_article(
-            article_name,
-            lang,
-            data,
-            order_id,
-            refundable(pay_status)
+            article_name, lang, data, order_id, refundable(pay_status)
         )
         return response
 
@@ -372,14 +414,10 @@ def article(article_name, lang=None, data=None):
     if ai is not None and au is not None:
         response = flask.redirect(au)
         response.set_cookie(
-            "order_id",
-            ai,
-            path=urllib.parse.quote(f"/essay/{article_name}")
+            "order_id", ai, path=urllib.parse.quote(f"/essay/{article_name}")
         )
         response.set_cookie(
-            "order_id",
-            ai,
-            path=urllib.parse.quote(f"/{lang}/essay/{article_name}")
+            "order_id", ai, 
path=urllib.parse.quote(f"/{lang}/essay/{article_name}")
         )
         return response
 
@@ -387,27 +425,39 @@ def article(article_name, lang=None, data=None):
     # run the payment protocol.
     response = flask.redirect(pay_status["order_status_url"])
     response.set_cookie(
-        "order_id",
-        order_id,
-        path=urllib.parse.quote(f"/essay/{article_name}")
+        "order_id", order_id, path=urllib.parse.quote(f"/essay/{article_name}")
     )
     response.set_cookie(
-        "order_id",
-        order_id,
-        path=urllib.parse.quote(f"/{lang}/essay/{article_name}")
+        "order_id", order_id, 
path=urllib.parse.quote(f"/{lang}/essay/{article_name}")
     )
     return response
 
+
 @app.errorhandler(500)
-def handler(e):
+def handler_500(e):
     return flask.render_template(
-        "templates/error.html.j2",
-        message=gettext("Internal server error")
+        "blog-error.html.j2",
+        message=gettext("Internal server error"),
+        lang=get_locale(),
     )
 
+
 @app.errorhandler(404)
-def handler(e):
+def handler_404(e):
     return flask.render_template(
-        "templates/error.html.j2",
-        message=gettext("Page not found")
+        "blog-error.html.j2",
+        message=gettext("Page not found"),
+        lang=get_locale(),
+    )
+
+
+@app.errorhandler(BackendException)
+def handler_backend_exception(e):
+    t = flask.render_template(
+        "survey-error.html.j2",
+        lang=get_locale(),
+        message=e.args[0],
+        json=e.backend_json,
+        status_code=e.backend_status,
     )
+    return flask.make_response(t, 500)
diff --git a/talermerchantdemos/blog/content.py 
b/talermerchantdemos/blog/content.py
index 00064df..ba2fcbe 100644
--- a/talermerchantdemos/blog/content.py
+++ b/talermerchantdemos/blog/content.py
@@ -49,8 +49,8 @@ ARTICLES = {}
 # @param extra_file collection of extra files associated with the
 #        article, like images and sounds.
 # @param lang language of the arcile
-def add_article(slug, title, teaser, main_file, extra_files, lang='en'):
-    if (not (lang in ARTICLES)):
+def add_article(slug, title, teaser, main_file, extra_files, lang="en"):
+    if not (lang in ARTICLES):
         ARTICLES[lang] = OrderedDict()
     ARTICLES[lang][slug] = Article(slug, title, teaser, main_file, 
extra_files, lang)
 
@@ -71,8 +71,10 @@ def get_image_file(image):
 # @param article the article filename.
 # @return the path to the article HTML file.
 def get_article_file(article):
-    filex = resource_filename("talermerchantdemos", article.main_file)
-    return os.path.basename(filex)
+    filex = resource_filename(
+        "talermerchantdemos", article.main_file,
+    )
+    return os.path.abspath(filex)
 
 
 ##
@@ -88,7 +90,7 @@ def get_article_file(article):
 #        specified.
 def add_from_html(resource_name, lang):
     res = resource_stream("talermerchantdemos", resource_name)
-    soup = BeautifulSoup(res, 'html.parser')
+    soup = BeautifulSoup(res, "html.parser")
     res.close()
     title_el = soup.find("h2")
     if title_el is None:
@@ -103,9 +105,9 @@ def add_from_html(resource_name, lang):
         paragraphs = soup.find_all("p")
         if len(paragraphs) > 0:
             teaser = paragraphs[0].get_text()
-            if (len(paragraphs) > 1) and (len (teaser) < 100):
+            if (len(paragraphs) > 1) and (len(teaser) < 100):
                 teaser2 = paragraphs[1].get_text()
-                if (len(teaser2) > len(teaser)):
+                if len(teaser2) > len(teaser):
                     teaser = teaser2
         else:
             LOGGER.warning("Cannot extract teaser from '%s'", resource_name)
@@ -119,21 +121,23 @@ def add_from_html(resource_name, lang):
         # We require that any image whose access is regulated is src'd
         # as "<slug>/data/img.png". We also need to check if the <slug>
         # component actually matches the article's slug
-        if re_proc.match(img['src']):
-            if img['src'].split(os.sep)[2] == slug:
+        if re_proc.match(img["src"]):
+            if img["src"].split(os.sep)[2] == slug:
                 LOGGER.info(
-                    "extra file for %s is %s" %
-                    (slug, os.path.basename(img['src']))
+                    "extra file for %s is %s" % (slug, 
os.path.basename(img["src"]))
                 )
-                extra_files.append(os.path.basename(img['src']))
+                extra_files.append(os.path.basename(img["src"]))
             else:
-                LOGGER.warning("Image src and slug don't match: '%s' != '%s'" \
-                               % (img['src'].split(os.sep)[2], slug))
+                LOGGER.warning(
+                    "Image src and slug don't match: '%s' != '%s'"
+                    % (img["src"].split(os.sep)[2], slug)
+                )
     add_article(slug, title, teaser, resource_name, extra_files, lang)
 
+
 for l in listdir(resource_filename("talermerchantdemos", "blog/articles/")):
     # Filter by active languages, otherwise this takes quite a while to load...
-    if l in { "en", "de", "sv", "es" }:
+    if l in {"en", "de", "sv", "es"}:
         LOGGER.info("importing %s" % l)
-        for a in listdir(resource_filename ("talermerchantdemos", 
"blog/articles/" + l)):
+        for a in listdir(resource_filename("talermerchantdemos", 
"blog/articles/" + l)):
             add_from_html("blog/articles/" + l + "/" + a, l)
diff --git a/talermerchantdemos/blog/static b/talermerchantdemos/blog/static
deleted file mode 120000
index d9bc54d..0000000
--- a/talermerchantdemos/blog/static
+++ /dev/null
@@ -1 +0,0 @@
-../static/
\ No newline at end of file
diff --git a/talermerchantdemos/blog/templates/base.html.j2 
b/talermerchantdemos/blog/templates/base.html.j2
deleted file mode 100644
index c4935f1..0000000
--- a/talermerchantdemos/blog/templates/base.html.j2
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<!--
-  This file is part of GNU TALER.
-  Copyright (C) 2014, 2015, 2016, 2020 Taler Systems SA
-
-  TALER is free software; you can redistribute it and/or modify it under the
-  terms of the GNU Lesser General Public License as published by the Free 
Software
-  Foundation; either version 2.1, or (at your option) any later version.
-
-  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more 
details.
-
-  You should have received a copy of the GNU Lesser General Public License 
along with
-  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
--->
-
-<html>
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  {% block meta %}{% endblock %}
-  <title>{{ gettext("GNU Taler Demo: Essay Shop") }}</title>
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='pure.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='demo.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='navbar.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='torsten.css') }}" />
-  {% block styles %}{% endblock %}
-  {% block scripts %}{% endblock %}
-</head>
-
-<body>
-  <header class="demobar" style="display: flex; flex-direction: column;">
-    <h1><span class="tt adorn-brackets">{{ gettext("Taler Demo")}}</span><br/>
-        <span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_BLOG') }}">{{ 
gettext("Essay shop") }}</a></span></h1>
-    <p>{{
-      gettext("On this page you can buy articles using an imaginary 
currency.") + "<br>" +
-      gettext("The articles are chapters from Richard Stallman's book 
&quot;Free Software, Free Society&quot;.") + "<br>" +
-      gettext('The book is <a href="{shop}">published by the FSF</a> and 
available gratis at <a 
href="{gnu}">gnu.org</a>.').format(shop="https://shop.fsf.org/product/free-software-free-society-2";,
 gnu="https://www.gnu.org";)
-      }}
-    </p>
-  </header>
-  {% from 'templates/menu.html.j2' import menu with context %} {{ menu('blog') 
}}
-
-  <section id="main" class="content">
-    {% block main %}
-      This is the main content of the page.
-    {% endblock %}
-    {% include 'templates/footer.html.j2' %}
-  </section>
-</body>
-</html>
diff --git a/talermerchantdemos/blog/templates/footer.html.j2 
b/talermerchantdemos/blog/templates/footer.html.j2
deleted file mode 120000
index 028b093..0000000
--- a/talermerchantdemos/blog/templates/footer.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/footer.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/blog/templates/javascript.html 
b/talermerchantdemos/blog/templates/javascript.html
deleted file mode 100644
index 436c186..0000000
--- a/talermerchantdemos/blog/templates/javascript.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!-- This file is in the public domain -->
-
-<html>
-  <head>
-    <title>JavaScript disclaimer.</title>
-  </head>
-  <body>
-    <h3>This site does not use JavaScript.</h3>
-  </body>
-</html>
-
-<!-- The following lines are kept as a template for future inclusion of 
JavaScript files. -->
-
-<!--
-  <html>
-  <body>
-  <table id="jslicense-labels1">
-  <tr>
-    <td><a href="/static/path/to/example0.js">example0.js</a></td>
-    <td><a href="https://www.gnu.org/licenses/lgpl-2.1.html";>LGPL</a></td>
-    <td><a 
href="/static/path/to/example0.js.tar.gz">example0.js.tar.gz</a></td>
-  </tr>
-  <tr>
-    <td><a href="/static/path/to/example1.js">example1.js</a></td>
-    <td><a href="https://www.gnu.org/licenses/lgpl-2.1.html";>LGPL</a></td>
-    <td><a 
href="/static/path/to/example1.js.tar.gz">example1.js.tar.gz</a></td>
-  </tr>
-  </table>
-  </body>
-  </html>
--->
diff --git a/talermerchantdemos/blog/templates/language-switcher.html.j2 
b/talermerchantdemos/blog/templates/language-switcher.html.j2
deleted file mode 120000
index 6423c5c..0000000
--- a/talermerchantdemos/blog/templates/language-switcher.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/language-switcher.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/blog/templates/menu.html.j2 
b/talermerchantdemos/blog/templates/menu.html.j2
deleted file mode 120000
index b9575ea..0000000
--- a/talermerchantdemos/blog/templates/menu.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/menu.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/blog/translations 
b/talermerchantdemos/blog/translations
deleted file mode 120000
index 0a951f7..0000000
--- a/talermerchantdemos/blog/translations
+++ /dev/null
@@ -1 +0,0 @@
-../../translations/
\ No newline at end of file
diff --git a/talermerchantdemos/donations/donations.py 
b/talermerchantdemos/donations/donations.py
index ea9612c..19f1372 100644
--- a/talermerchantdemos/donations/donations.py
+++ b/talermerchantdemos/donations/donations.py
@@ -31,19 +31,23 @@ import traceback
 import urllib
 from taler.util.talerconfig import TalerConfig, ConfigurationError
 from urllib.parse import urljoin
-from ..httpcommon import backend_post, backend_get, fallback_404, 
self_localized
+from ..httpcommon import backend_post, backend_get, self_localized
 import sys
 
 if not sys.version_info.major == 3 and sys.version_info.minor >= 6:
     print("Python 3.6 or higher is required.")
-    print("You are using Python {}.{}.".format(sys.version_info.major, 
sys.version_info.minor))
+    print(
+        "You are using Python {}.{}.".format(
+            sys.version_info.major, sys.version_info.minor
+        )
+    )
     sys.exit(1)
 
 LOGGER = logging.getLogger(__name__)
 
 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
 
-app = flask.Flask(__name__, template_folder=BASE_DIR)
+app = flask.Flask(__name__, template_folder="../templates", 
static_folder="../static")
 app.debug = True
 app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8")
 
@@ -56,23 +60,27 @@ except ConfigurationError as ce:
     print(ce)
     exit(1)
 
+BABEL_TRANSLATION_DIRECTORIES = "../translations"
+
 app.config.from_object(__name__)
 babel = Babel(app)
 
 
-LOGGER.info("Using translations from:" + 
':'.join(list(babel.translation_directories)))
+LOGGER.info("Using translations from:" + 
":".join(list(babel.translation_directories)))
 translations = [str(translation) for translation in babel.list_translations()]
-if not 'en' in translations:
-    translations.append('en')
-LOGGER.info("Operating with the following translations available: " + ' 
'.join(translations))
+if not "en" in translations:
+    translations.append("en")
+LOGGER.info(
+    "Operating with the following translations available: " + " 
".join(translations)
+)
 
-app.jinja_env.globals.update(self_localized=self_localized)
+app.add_template_global(self_localized)
 
 
 @babel.localeselector
 def get_locale():
-    parts = request.path.split('/', 2)
-    if (2 >= len(parts)):
+    parts = request.path.split("/", 2)
+    if 2 >= len(parts):
         # Totally unexpected path format, do not localize
         return "en"
     lang = parts[1]
@@ -100,10 +108,7 @@ def utility_processor():
 # @param abort_status_code status code to return along the response.
 # @param params _kw_ arguments to passed verbatim to the templating engine.
 def err_abort(abort_status_code, **params):
-    t = flask.render_template(
-        "templates/error.html.j2",
-        lang=get_locale(),
-        **params)
+    t = flask.render_template("donations-error.html.j2", lang=get_locale(), 
**params)
     flask.abort(flask.make_response(t, abort_status_code))
 
 
@@ -116,7 +121,7 @@ def err_abort(abort_status_code, **params):
 #         if something unexpected happens.
 def backend_instanced_get(instance, endpoint, params):
     backend_url = urljoin(BACKEND_BASE_URL, f"instances/{instance}/")
-    return backend_get(backend_url, endpoint, params)
+    return backend_get(backend_url, endpoint, params, auth_token=APIKEY)
 
 
 ##
@@ -129,7 +134,7 @@ def backend_instanced_get(instance, endpoint, params):
 # @return the backend response (JSON format).
 def backend_instanced_post(instance, endpoint, json):
     backend_url = urljoin(BACKEND_BASE_URL, f"instances/{instance}/")
-    return backend_post(backend_url, endpoint, json)
+    return backend_post(backend_url, endpoint, json, auth_token=APIKEY)
 
 
 ##
@@ -153,32 +158,34 @@ def expect_parameter(name):
 @app.errorhandler(Exception)
 def internal_error(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "donations-error.html.j2",
         message=gettext("Internal error"),
         lang=get_locale(),
-        stack=traceback.format_exc()
+        stack=traceback.format_exc(),
     )
 
+
 ##
 # Serve the /favicon.ico requests.
 #
 # @return the favicon.ico file.
 @app.route("/favicon.ico")
 def favicon():
-    LOGGER.info("will look into: " + os.path.join(app.root_path, 'static'))
+    LOGGER.info("will look into: " + os.path.join(app.root_path, "static"))
     return flask.send_from_directory(
-        os.path.join(app.root_path, 'static'),
+        os.path.join(app.root_path, "static"),
         "favicon.ico",
-        mimetype="image/vnd.microsoft.ico"
+        mimetype="image/vnd.microsoft.ico",
     )
 
+
 ##
 # Serve the main index page, redirecting to /<lang>/
 #
 # @return response object of the index page.
 @app.route("/")
 def index():
-    default = 'en'
+    default = "en"
     target = flask.request.accept_languages.best_match(translations, default)
     return flask.redirect("/" + target + "/", code=302)
 
@@ -190,21 +197,10 @@ def index():
 @app.route("/<lang>/")
 def start(lang):
     return flask.render_template(
-        "templates/index.html.j2",
-        lang=lang,
-        merchant_currency=CURRENCY
+        "donations-index.html.j2", lang=lang, merchant_currency=CURRENCY
     )
 
 
-##
-# Serve the "/javascript" page.
-#
-# @return response object for the /javascript page.
-@app.route("/javascript")
-def javascript_licensing():
-    return flask.render_template("templates/javascript.html")
-
-
 ##
 # Serve the "/checkout" page.  This page lets the
 # user pick the payment method they want to use,
@@ -217,7 +213,7 @@ def checkout(lang):
     donation_receiver = expect_parameter("donation_receiver")
     donation_donor = expect_parameter("donation_donor")
     return flask.render_template(
-        "templates/checkout.html.j2",
+        "donations-checkout.html.j2",
         donation_amount=amount,
         donation_receiver=donation_receiver,
         donation_donor=donation_donor,
@@ -232,11 +228,8 @@ def checkout(lang):
 #
 # @return response object about the mentioned impossibility.
 @app.route("/<lang>/provider-not-supported")
-def provider_not_supported():
-    return flask.render_template(
-        "templates/provider-not-supported.html.j2",
-        lang=lang
-    )
+def provider_not_supported(lang):
+    return flask.render_template("donations-provider-not-supported.html.j2", 
lang=lang)
 
 
 ##
@@ -253,8 +246,7 @@ def donate(lang):
     donation_donor = expect_parameter("donation_donor")
     payment_system = expect_parameter("payment_system")
     if payment_system != "taler":
-        return flask.redirect(flask.url_for("provider_not_supported",
-                                            lang=lang))
+        return flask.redirect(flask.url_for("provider_not_supported", 
lang=lang))
     fulfillment_url = flask.url_for(
         "fulfillment",
         timestamp=str(time.time()),
@@ -266,9 +258,7 @@ def donate(lang):
     order = dict(
         amount=donation_amount,
         extra=dict(
-            donor=donation_donor,
-            receiver=donation_receiver,
-            amount=donation_amount
+            donor=donation_donor, receiver=donation_receiver, 
amount=donation_amount
         ),
         fulfillment_url=fulfillment_url,
         summary="Donation to {}".format(donation_receiver),
@@ -279,10 +269,9 @@ def donate(lang):
     )
     order_id = order_resp["order_id"]
     return flask.redirect(
-        flask.url_for("fulfillment",
-                      receiver=donation_receiver,
-                      lang=lang,
-                      order_id=order_id)
+        flask.url_for(
+            "fulfillment", receiver=donation_receiver, lang=lang, 
order_id=order_id
+        )
     )
 
 
@@ -295,9 +284,8 @@ def donate(lang):
 #         page is returned; otherwise, the browser will be redirected
 #         to a page that accepts the payment.
 @app.route("/<lang>/donation/<receiver>")
-def fulfillment(lang,receiver):
+def fulfillment(lang, receiver):
     order_id = expect_parameter("order_id")
-    pay_params = dict(order_id=order_id)
     pay_status = backend_instanced_get(
         receiver, f"private/orders/{order_id}", params=dict()
     )
@@ -305,7 +293,7 @@ def fulfillment(lang,receiver):
     if order_status == "paid":
         extra = pay_status["contract_terms"]["extra"]
         return flask.render_template(
-            "templates/fulfillment.html.j2",
+            "donations-fulfillment.html.j2",
             donation_receiver=extra["receiver"],
             donation_amount=extra["amount"],
             donation_donor=extra["donor"],
@@ -315,10 +303,9 @@ def fulfillment(lang,receiver):
         )
     return flask.redirect(pay_status["order_status_url"])
 
+
 @app.errorhandler(404)
 def handler(e):
     return flask.render_template(
-        "templates/error.html.j2",
-        lang=get_locale(),
-        message=gettext("Page not found")
+        "donations-error.html.j2", lang=get_locale(), message=gettext("Page 
not found")
     )
diff --git a/talermerchantdemos/donations/static 
b/talermerchantdemos/donations/static
deleted file mode 120000
index d9bc54d..0000000
--- a/talermerchantdemos/donations/static
+++ /dev/null
@@ -1 +0,0 @@
-../static/
\ No newline at end of file
diff --git a/talermerchantdemos/donations/templates/base.html.j2 
b/talermerchantdemos/donations/templates/base.html.j2
deleted file mode 100644
index 307705f..0000000
--- a/talermerchantdemos/donations/templates/base.html.j2
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<!--
-  This file is part of GNU TALER.
-  Copyright (C) 2014, 2015, 2016, 2020 Taler Systems SA
-
-  TALER is free software; you can redistribute it and/or modify it under the
-  terms of the GNU Lesser General Public License as published by the Free 
Software
-  Foundation; either version 2.1, or (at your option) any later version.
-
-  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more 
details.
-
-  You should have received a copy of the GNU Lesser General Public License 
along with
-  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
--->
-
-<html data-taler-nojs="true">
-<head>
-  <title>{{ gettext("GNU Taler Demo: Donations") }}</title>
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='pure.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='demo.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='navbar.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='torsten.css') }}" />
-  {% block styles %}{% endblock %}
-  {% block scripts %}{% endblock %}
-</head>
-
-<body>
-  <header class="demobar" style="display: flex; flex-direction: column;">
-    <h1><span class="tt adorn-brackets">{{ gettext("Taler Demo") }}</span><br/>
-        <span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_DONATIONS') 
}}">{{gettext("Donations")}}</a></span></h1>
-    <p>{{
-      gettext ("This is the donation page.") + "<br>" +
-      gettext ("Using this page you can make donations in {currency} to Free 
Software projects.").format(currency=merchant_currency)
-    }}
-    </p>
-  </header>
-  {% from 'templates/menu.html.j2' import menu with context %} {{ 
menu('donations') }}
-
-  <section id="main" class="content">
-    {% block main %}
-      This is the main content of the page.
-    {% endblock %}
-    {% include 'templates/footer.html.j2' %}
-  </section>
-</body>
-</html>
diff --git a/talermerchantdemos/donations/templates/footer.html.j2 
b/talermerchantdemos/donations/templates/footer.html.j2
deleted file mode 120000
index 028b093..0000000
--- a/talermerchantdemos/donations/templates/footer.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/footer.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/donations/templates/javascript.html 
b/talermerchantdemos/donations/templates/javascript.html
deleted file mode 100644
index 436c186..0000000
--- a/talermerchantdemos/donations/templates/javascript.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!-- This file is in the public domain -->
-
-<html>
-  <head>
-    <title>JavaScript disclaimer.</title>
-  </head>
-  <body>
-    <h3>This site does not use JavaScript.</h3>
-  </body>
-</html>
-
-<!-- The following lines are kept as a template for future inclusion of 
JavaScript files. -->
-
-<!--
-  <html>
-  <body>
-  <table id="jslicense-labels1">
-  <tr>
-    <td><a href="/static/path/to/example0.js">example0.js</a></td>
-    <td><a href="https://www.gnu.org/licenses/lgpl-2.1.html";>LGPL</a></td>
-    <td><a 
href="/static/path/to/example0.js.tar.gz">example0.js.tar.gz</a></td>
-  </tr>
-  <tr>
-    <td><a href="/static/path/to/example1.js">example1.js</a></td>
-    <td><a href="https://www.gnu.org/licenses/lgpl-2.1.html";>LGPL</a></td>
-    <td><a 
href="/static/path/to/example1.js.tar.gz">example1.js.tar.gz</a></td>
-  </tr>
-  </table>
-  </body>
-  </html>
--->
diff --git a/talermerchantdemos/donations/templates/language-switcher.html.j2 
b/talermerchantdemos/donations/templates/language-switcher.html.j2
deleted file mode 120000
index 6423c5c..0000000
--- a/talermerchantdemos/donations/templates/language-switcher.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/language-switcher.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/donations/templates/menu.html.j2 
b/talermerchantdemos/donations/templates/menu.html.j2
deleted file mode 120000
index b9575ea..0000000
--- a/talermerchantdemos/donations/templates/menu.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/menu.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/donations/translations 
b/talermerchantdemos/donations/translations
deleted file mode 120000
index 0a951f7..0000000
--- a/talermerchantdemos/donations/translations
+++ /dev/null
@@ -1 +0,0 @@
-../../translations/
\ No newline at end of file
diff --git a/talermerchantdemos/httpcommon/__init__.py 
b/talermerchantdemos/httpcommon/__init__.py
index 443160b..39cd696 100644
--- a/talermerchantdemos/httpcommon/__init__.py
+++ b/talermerchantdemos/httpcommon/__init__.py
@@ -6,6 +6,16 @@ from datetime import datetime
 import time
 from flask_babel import gettext
 
+
+class BackendException(Exception):
+    """Exception for failed communication with the Taler merchant backend"""
+
+    def __init__(self, message, backend_status=None, backend_json=None):
+        super().__init__(message)
+        self.backend_status = backend_status
+        self.backend_json = backend_json
+
+
 ##
 # POST a request to the backend, and return a error
 # response if any error occurs.
@@ -14,28 +24,30 @@ from flask_babel import gettext
 #        this request.
 # @param json the POST's body.
 # @return the backend response (JSON format).
-def backend_post(backend_url, endpoint, json):
-    headers = {"Authorization": "ApiKey sandbox"}
+def backend_post(backend_url, endpoint, json, auth_token=None):
+    headers = dict()
+    if auth_token is not None:
+        headers["Authorization"] = "Bearer " + auth_token
     final_url = urljoin(backend_url, endpoint)
     print("POSTing to: " + final_url)
     try:
         resp = requests.post(final_url, json=json, headers=headers)
     except requests.ConnectionError:
-        err_abort(500, message=gettext("Could not establish connection to 
backend"))
+        raise BackendException(
+            message=gettext("Could not establish connection to backend")
+        )
     try:
         response_json = resp.json()
     except ValueError:
-        err_abort(
-            500,
+        raise BackendException(
             message=gettext("Could not parse response from backend"),
-            status_code=resp.status_code,
+            backend_status=resp.status_code,
         )
     if resp.status_code != 200:
-        err_abort(
-            500,
+        raise BackendException(
             message=gettext("Backend returned error status"),
-            json=response_json,
-            status_code=resp.status_code,
+            backend_status=resp.status_code,
+            backend_json=response_json,
         )
     print("Backend responds to {}: {}".format(final_url, str(response_json)))
     return response_json
@@ -48,24 +60,27 @@ def backend_post(backend_url, endpoint, json):
 # @param params (dict type of) URL parameters to append to the request.
 # @return the JSON response from the backend, or a error response
 #         if something unexpected happens.
-def backend_get(backend_url, endpoint, params):
-    headers = {"Authorization": "ApiKey sandbox"}
+def backend_get(backend_url, endpoint, params, auth_token=None):
+    headers = dict()
+    if auth_token is not None:
+        headers["Authorization"] = "Bearer " + auth_token
     final_url = urljoin(backend_url, endpoint)
     print("GETting: " + final_url + " with params: " + str(params))
     try:
         resp = requests.get(final_url, params=params, headers=headers)
     except requests.ConnectionError:
-        err_abort(500, message=gettext("Could not establish connection to 
backend"))
+        raise BackendException(
+            message=gettext("Could not establish connection to backend")
+        )
     try:
         response_json = resp.json()
     except ValueError:
-        err_abort(500, message=gettext("Could not parse response from 
backend"))
+        raise BackendException(message=gettext("Could not parse response from 
backend"))
     if resp.status_code != 200:
-        err_abort(
-            500,
+        raise BackendException(
             message=gettext("Backend returned error status"),
-            json=response_json,
-            status_code=resp.status_code,
+            backend_status=resp.status_code,
+            backend_json=response_json,
         )
     print("Backend responds to {}: {}".format(final_url, str(response_json)))
     return response_json
@@ -98,20 +113,6 @@ def self_localized(lang):
     return "/" + lang + "/" + parts[2]
 
 
-##
-# Return a error response to the client.
-#
-# @param abort_status_code status code to return along the response.
-# @param params _kw_ arguments to passed verbatim to the templating engine.
-def err_abort(abort_status_code, **params):
-    t = flask.render_template("templates/error.html.j2", lang=get_locale(), 
**params)
-    flask.abort(flask.make_response(t, abort_status_code))
-
-
-def fallback_404(error):
-    return "Page not found"
-
-
 class Deadline:
     def __init__(self, value):
         self.value = value
diff --git a/talermerchantdemos/landing/landing.py 
b/talermerchantdemos/landing/landing.py
index 071a44e..270e205 100644
--- a/talermerchantdemos/landing/landing.py
+++ b/talermerchantdemos/landing/landing.py
@@ -21,7 +21,6 @@ import re
 import datetime
 import base64
 import logging
-from urllib.parse import urljoin
 import flask
 from flask import request
 from flask_babel import Babel
@@ -42,8 +41,7 @@ if not sys.version_info.major == 3 and sys.version_info.minor 
>= 6:
     )
     sys.exit(1)
 
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-app = flask.Flask(__name__, template_folder=BASE_DIR)
+app = flask.Flask(__name__, template_folder="../templates", 
static_folder="../static")
 app.debug = True
 app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8")
 
@@ -57,6 +55,8 @@ except ConfigurationError as ce:
     print(ce)
     exit(1)
 
+BABEL_TRANSLATION_DIRECTORIES = "../translations"
+
 app.config.from_object(__name__)
 babel = Babel(app)
 
@@ -68,7 +68,7 @@ LOGGER.info(
     "Operating with the following translations available: " + " 
".join(translations)
 )
 
-app.jinja_env.globals.update(self_localized=self_localized)
+app.add_template_global(self_localized)
 
 
 @babel.localeselector
@@ -113,7 +113,7 @@ def utility_processor():
 @app.errorhandler(Exception)
 def internal_error(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "landing-error.html.j2",
         message=gettext("Internal error"),
         stack=traceback.format_exc(),
         lang=get_locale(),
@@ -173,7 +173,7 @@ def start(lang):
         merchant_survey_url = "#"
 
     return flask.render_template(
-        "templates/index.html.j2",
+        "landing-index.html.j2",
         merchant_currency=CURRENCY,
         lang=lang,
         bank_url=bank_register_url,
@@ -186,14 +186,14 @@ def start(lang):
 @app.errorhandler(404)
 def handler_404(e):
     return flask.render_template(
-        "templates/error.html.j2", message=gettext("Page not found"), 
lang=get_locale()
+        "landing-error.html.j2", message=gettext("Page not found"), 
lang=get_locale()
     )
 
 
 @app.errorhandler(405)
 def handler_405(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "landing-error.html.j2",
         message=gettext("HTTP method not allowed for this page"),
         lang=get_locale(),
     )
diff --git a/talermerchantdemos/landing/static 
b/talermerchantdemos/landing/static
deleted file mode 120000
index d9bc54d..0000000
--- a/talermerchantdemos/landing/static
+++ /dev/null
@@ -1 +0,0 @@
-../static/
\ No newline at end of file
diff --git a/talermerchantdemos/landing/templates/footer.html.j2 
b/talermerchantdemos/landing/templates/footer.html.j2
deleted file mode 120000
index 028b093..0000000
--- a/talermerchantdemos/landing/templates/footer.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/footer.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/landing/templates/language-switcher.html.j2 
b/talermerchantdemos/landing/templates/language-switcher.html.j2
deleted file mode 120000
index 6423c5c..0000000
--- a/talermerchantdemos/landing/templates/language-switcher.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/language-switcher.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/landing/templates/menu.html.j2 
b/talermerchantdemos/landing/templates/menu.html.j2
deleted file mode 120000
index b9575ea..0000000
--- a/talermerchantdemos/landing/templates/menu.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/menu.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/landing/translations 
b/talermerchantdemos/landing/translations
deleted file mode 120000
index 0a951f7..0000000
--- a/talermerchantdemos/landing/translations
+++ /dev/null
@@ -1 +0,0 @@
-../../translations/
\ No newline at end of file
diff --git a/talermerchantdemos/survey/static b/talermerchantdemos/survey/static
deleted file mode 120000
index d9bc54d..0000000
--- a/talermerchantdemos/survey/static
+++ /dev/null
@@ -1 +0,0 @@
-../static/
\ No newline at end of file
diff --git a/talermerchantdemos/survey/survey.py 
b/talermerchantdemos/survey/survey.py
index 871b417..4813477 100644
--- a/talermerchantdemos/survey/survey.py
+++ b/talermerchantdemos/survey/survey.py
@@ -30,18 +30,21 @@ from flask_babel import force_locale
 from flask_babel import gettext
 import traceback
 from taler.util.talerconfig import TalerConfig, ConfigurationError
-from ..httpcommon import backend_get, backend_post, self_localized
+from ..httpcommon import backend_get, backend_post, self_localized, 
BackendException
 import sys
 
 if not sys.version_info.major == 3 and sys.version_info.minor >= 6:
     print("Python 3.6 or higher is required.")
-    print("You are using Python {}.{}.".format(sys.version_info.major, 
sys.version_info.minor))
+    print(
+        "You are using Python {}.{}.".format(
+            sys.version_info.major, sys.version_info.minor
+        )
+    )
     sys.exit(1)
 
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-app = flask.Flask(__name__, template_folder=BASE_DIR)
+app = flask.Flask(__name__, template_folder="../templates", 
static_folder="../static")
 app.debug = True
-app.secret_key = base64.b64encode(os.urandom(64)).decode('utf-8')
+app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8")
 
 LOGGER = logging.getLogger(__name__)
 TC = TalerConfig.from_env()
@@ -53,22 +56,27 @@ except ConfigurationError as ce:
     print(ce)
     exit(1)
 
+BABEL_TRANSLATION_DIRECTORIES = "../translations"
+
 app.config.from_object(__name__)
 babel = Babel(app)
 INSTANCED_URL = urljoin(BACKEND_URL, f"instances/survey/")
 
-LOGGER.info("Using translations from:" + 
':'.join(list(babel.translation_directories)))
+LOGGER.info("Using translations from:" + 
":".join(list(babel.translation_directories)))
 translations = [str(translation) for translation in babel.list_translations()]
-if not 'en' in translations:
-    translations.append('en')
-LOGGER.info("Operating with the following translations available: " + ' 
'.join(translations))
+if not "en" in translations:
+    translations.append("en")
+LOGGER.info(
+    "Operating with the following translations available: " + " 
".join(translations)
+)
+
+app.add_template_global(self_localized)
 
-app.jinja_env.globals.update(self_localized=self_localized)
 
 @babel.localeselector
 def get_locale():
-    parts = request.path.split('/', 2)
-    if (2 >= len(parts)):
+    parts = request.path.split("/", 2)
+    if 2 >= len(parts):
         # Totally unexpected path format, do not localize
         return "en"
     lang = parts[1]
@@ -76,6 +84,7 @@ def get_locale():
         return lang
     return "en"
 
+
 ##
 # Make the environment available into templates.
 #
@@ -106,23 +115,24 @@ def utility_processor():
 @app.errorhandler(Exception)
 def internal_error(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "survey-error.html.j2",
         message=gettext("Internal error"),
         stack=traceback.format_exc(),
-        lang=get_locale()
+        lang=get_locale(),
     )
 
+
 ##
 # Serve the /favicon.ico requests.
 #
 # @return the favicon.ico file.
 @app.route("/favicon.ico")
 def favicon():
-    LOGGER.info("will look into: " + os.path.join(app.root_path, 'static'))
+    LOGGER.info("will look into: " + os.path.join(app.root_path, "static"))
     return flask.send_from_directory(
-        os.path.join(app.root_path, 'static'),
+        os.path.join(app.root_path, "static"),
         "favicon.ico",
-        mimetype="image/vnd.microsoft.ico"
+        mimetype="image/vnd.microsoft.ico",
     )
 
 
@@ -139,21 +149,23 @@ def submit_survey(lang):
     tip_spec = dict(
         amount=CURRENCY + ":1.0",
         next_url=os.environ.get("TALER_ENV_URL_INTRO", "https://taler.net/";),
-        justification="Payment methods survey"
+        justification="Payment methods survey",
     )
-    backend_resp = backend_post(INSTANCED_URL, "private/tips", tip_spec)
+    backend_resp = backend_post(INSTANCED_URL, "private/tips", tip_spec, 
auth_token=APIKEY)
     return flask.redirect(backend_resp["tip_status_url"])
 
+
 ##
 # Serve the main index page, redirecting to /<lang>/
 #
 # @return response object of the index page.
 @app.route("/")
 def index():
-    default = 'en'
+    default = "en"
     target = flask.request.accept_languages.best_match(translations, default)
     return flask.redirect("/" + target + "/", code=302)
 
+
 ##
 # Serve the internationalized main index page.
 #
@@ -161,21 +173,33 @@ def index():
 @app.route("/<lang>/", methods=["GET"])
 def start(lang):
     return flask.render_template(
-        "templates/index.html.j2", merchant_currency=CURRENCY, lang=lang
+        "survey-index.html.j2", merchant_currency=CURRENCY, lang=lang
     )
 
+
 @app.errorhandler(404)
-def handler(e):
+def handler_404(e):
     return flask.render_template(
-        "templates/error.html.j2",
-        message=gettext("Page not found"),
-        lang=get_locale()
+        "survey-error.html.j2", message=gettext("Page not found"), 
lang=get_locale()
     )
 
+
 @app.errorhandler(405)
-def handler(e):
+def handler_405(e):
     return flask.render_template(
-        "templates/error.html.j2",
+        "survey-error.html.j2",
         message=gettext("HTTP method not allowed for this page"),
-        lang=get_locale()
+        lang=get_locale(),
+    )
+
+
+@app.errorhandler(BackendException)
+def handler_backend_exception(e):
+    t = flask.render_template(
+        "survey-error.html.j2",
+        lang=get_locale(),
+        message=e.args[0],
+        json=e.backend_json,
+        status_code=e.backend_status,
     )
+    return flask.make_response(t, 500)
\ No newline at end of file
diff --git a/talermerchantdemos/survey/templates/base.html.j2 
b/talermerchantdemos/survey/templates/base.html.j2
deleted file mode 100644
index 734da6f..0000000
--- a/talermerchantdemos/survey/templates/base.html.j2
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<!--
-  This file is part of GNU TALER.
-  Copyright (C) 2014, 2015, 2016, 2020 Taler Systems SA
-
-  TALER is free software; you can redistribute it and/or modify it under the
-  terms of the GNU Lesser General Public License as published by the Free 
Software
-  Foundation; either version 2.1, or (at your option) any later version.
-
-  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more 
details.
-
-  You should have received a copy of the GNU Lesser General Public License 
along with
-  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
--->
-
-<html data-taler-nojs="true">
-<head>
-  <title>{{ gettext("GNU Taler Demo: Survey") }}</title>
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='pure.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='demo.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='navbar.css') }}" />
-  <link rel="stylesheet" type="text/css" href="{{ url_for('static', 
filename='torsten.css') }}" />
-  {% block styles %}{% endblock %}
-  {% block scripts %}{% endblock %}
-</head>
-
-<body>
-  <header class="demobar" style="display: flex; flex-direction: column;">
-    <h1><span class="tt adorn-brackets">{{ gettext("Taler Demo") }}</span><br/>
-       <span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY') 
}}">{{ gettext("Survey") }}</a></span></h1>
-    <p>{{
-      gettext("This page demonstrates how to tip visitors for completing small 
tasks.") + "<br>" +
-      gettext("Tipping is a way for offer cash rewards that go directly into a 
user's wallet.")
-      }}
-    </p>
-  </header>
-  {% from 'templates/menu.html.j2' import menu with context %} {{ 
menu('survey') }}
-
-  <section id="main" class="content">
-    {% block main %}
-      This is the main content of the page.
-    {% endblock %}
-    {% include 'templates/footer.html.j2' %}
-  </section>
-</body>
-</html>
diff --git a/talermerchantdemos/survey/templates/footer.html.j2 
b/talermerchantdemos/survey/templates/footer.html.j2
deleted file mode 120000
index 028b093..0000000
--- a/talermerchantdemos/survey/templates/footer.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/footer.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/survey/templates/language-switcher.html.j2 
b/talermerchantdemos/survey/templates/language-switcher.html.j2
deleted file mode 120000
index 6423c5c..0000000
--- a/talermerchantdemos/survey/templates/language-switcher.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/language-switcher.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/survey/templates/menu.html.j2 
b/talermerchantdemos/survey/templates/menu.html.j2
deleted file mode 120000
index b9575ea..0000000
--- a/talermerchantdemos/survey/templates/menu.html.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../templates/menu.html.j2
\ No newline at end of file
diff --git a/talermerchantdemos/survey/translations 
b/talermerchantdemos/survey/translations
deleted file mode 120000
index 0a951f7..0000000
--- a/talermerchantdemos/survey/translations
+++ /dev/null
@@ -1 +0,0 @@
-../../translations/
\ No newline at end of file
diff --git a/talermerchantdemos/blog/templates/article_frame.html.j2 
b/talermerchantdemos/templates/blog-article-frame.html.j2
similarity index 63%
rename from talermerchantdemos/blog/templates/article_frame.html.j2
rename to talermerchantdemos/templates/blog-article-frame.html.j2
index 2690306..1b51c9d 100644
--- a/talermerchantdemos/blog/templates/article_frame.html.j2
+++ b/talermerchantdemos/templates/blog-article-frame.html.j2
@@ -1,15 +1,20 @@
-{% extends "templates/base.html.j2" %}
+{% extends "blog-base.html.j2" %}
 {% block main %}
-{% include "articles/" + lang + "/" + article_file %}
 
-{% if refundable %}
+{{ article_contents | safe }}
+
 <hr>
+
+{% if refundable %}
 <p class="graybox">
   {{
     gettext("Taler allows merchants to offer refunds to customers.") +
     gettext('You can <a href="{url}">request a refund</a> within the first 
hour after buying this article.').format(url=url_for('confirm_refund', 
lang='en', order_id=order_id))
   }}
 </p>
+{% else %}
+{{ gettext("Taler allows merchants to offer refunds to customers.") }}
+{{ gettext("This article can't be refunded anymore.") }}
 {% endif %}
 
 {% endblock main %}
diff --git a/talermerchantdemos/blog/templates/article_refunded.html.j2 
b/talermerchantdemos/templates/blog-article-refunded.html.j2
similarity index 89%
rename from talermerchantdemos/blog/templates/article_refunded.html.j2
rename to talermerchantdemos/templates/blog-article-refunded.html.j2
index d4e405c..6a2e139 100644
--- a/talermerchantdemos/blog/templates/article_refunded.html.j2
+++ b/talermerchantdemos/templates/blog-article-refunded.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "blog-base.html.j2" %}
 {% block main %}
 
 <h2>{{ gettext("Refunded") }}</h2>
diff --git a/talermerchantdemos/templates/blog-base.html.j2 
b/talermerchantdemos/templates/blog-base.html.j2
new file mode 100644
index 0000000..e533bd4
--- /dev/null
+++ b/talermerchantdemos/templates/blog-base.html.j2
@@ -0,0 +1,13 @@
+{% extends "common-base.html.j2" %}
+
+{% block header_content %}
+
+<h1><span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_BLOG') }}">{{ 
gettext("Essay shop") }}</a></span></h1>
+<p>{{
+  gettext("On this page you can buy articles using an imaginary currency.") + 
"<br>" +
+  gettext("The articles are chapters from Richard Stallman's book &quot;Free 
Software, Free Society&quot;.") + "<br>" +
+  gettext('The book is <a href="{shop}">published by the FSF</a> and available 
gratis at <a 
href="{gnu}">gnu.org</a>.').format(shop="https://shop.fsf.org/product/free-software-free-society-2";,
 gnu="https://www.gnu.org";)
+  }}
+</p>
+
+{% endblock %}
diff --git a/talermerchantdemos/blog/templates/confirm_refund.html.j2 
b/talermerchantdemos/templates/blog-confirm-refund.html.j2
similarity index 87%
rename from talermerchantdemos/blog/templates/confirm_refund.html.j2
rename to talermerchantdemos/templates/blog-confirm-refund.html.j2
index a356ea1..ab5dfcd 100644
--- a/talermerchantdemos/blog/templates/confirm_refund.html.j2
+++ b/talermerchantdemos/templates/blog-confirm-refund.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "blog-base.html.j2" %}
 {% block main %}
   <h1>{{ gettext("Confirm refund request for article") }}</h1>
 
@@ -13,11 +13,11 @@
   <p>
     {{
       gettext ("You will only be able to receive the refund on the same wallet 
that you have used to pay for this article originally.")
-    }}
+    }} 
   </p>
 
   <form action="{{ url_for('refund', order_id=order_id) }}" method="POST">
     <input type="text" name="article_name" value={{ article_name}} hidden>
-    <input type="submit" value="{{gettext("Request refund")}}">
+    <input type="submit" value="{{ gettext('Request refund') }}">
   </form>
 {% endblock main %}
diff --git a/talermerchantdemos/donations/templates/error.html.j2 
b/talermerchantdemos/templates/blog-error.html.j2
similarity index 91%
rename from talermerchantdemos/donations/templates/error.html.j2
rename to talermerchantdemos/templates/blog-error.html.j2
index ffc2e1f..5b2a381 100644
--- a/talermerchantdemos/donations/templates/error.html.j2
+++ b/talermerchantdemos/templates/blog-error.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "blog-base.html.j2" %}
 {% block main %}
   <h1>{{ gettext("Error encountered") }}</h1>
 
diff --git a/talermerchantdemos/blog/templates/index.html.j2 
b/talermerchantdemos/templates/blog-index.html.j2
similarity index 97%
rename from talermerchantdemos/blog/templates/index.html.j2
rename to talermerchantdemos/templates/blog-index.html.j2
index f231e6f..dd1bced 100644
--- a/talermerchantdemos/blog/templates/index.html.j2
+++ b/talermerchantdemos/templates/blog-index.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "blog-base.html.j2" %}
 {% block main %}
     <h2>{{ gettext("Essay Shop: Free Software, Free Society") }} </h2>
     <div style="font-size: smaller;">
diff --git a/talermerchantdemos/landing/templates/base.html.j2 
b/talermerchantdemos/templates/common-base.html.j2
similarity index 75%
rename from talermerchantdemos/landing/templates/base.html.j2
rename to talermerchantdemos/templates/common-base.html.j2
index 97a91a5..ff8d655 100644
--- a/talermerchantdemos/landing/templates/base.html.j2
+++ b/talermerchantdemos/templates/common-base.html.j2
@@ -28,21 +28,23 @@
 
 <body>
   <header class="demobar" style="display: flex; flex-direction: column;">
-    <h1><img src="{{ url_for('static', filename='logo-white.svg') }}" 
height="100"><br/>
-        <span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY') 
}}">{{ gettext("Introduction") }}</a></span></h1>
-    <p>{{
-      gettext("This is the GNU Taler demo.") + "<br>" +
-      gettext("Here you can try out the GNU Taler payment system using a toy 
currency.")
-      }}
+    <p>
+      <img src="{{ url_for('static', filename='logo-white.svg') }}" 
height="100"><br/>
     </p>
+
+    <div>
+      {% block header_content %}
+        <p>This is the header content.</p>
+      {% endblock %}
+    </div>
   </header>
-  {% from 'templates/menu.html.j2' import menu with context %} {{ 
menu('landing') }}
+  {% from 'menu.html.j2' import menu with context %} {{ menu('landing') }}
 
   <section id="main" class="content">
     {% block main %}
       This is the main content of the page.
     {% endblock %}
-    {% include 'templates/footer.html.j2' %}
+    {% include 'footer.html.j2' %}
   </section>
 </body>
 </html>
diff --git a/talermerchantdemos/templates/donations-base.html.j2 
b/talermerchantdemos/templates/donations-base.html.j2
new file mode 100644
index 0000000..b214eac
--- /dev/null
+++ b/talermerchantdemos/templates/donations-base.html.j2
@@ -0,0 +1,13 @@
+{% extends "common-base.html.j2" %}
+
+{% block header_content %}
+
+<h1>
+<span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_DONATIONS') 
}}">{{gettext("Donations")}}</a></span></h1>
+<p>{{
+gettext ("This is the donation page.") + "<br>" +
+gettext ("Using this page you can make donations in {currency} to Free 
Software projects.").format(currency=merchant_currency)
+}}
+</p>
+
+{% endblock %}
diff --git a/talermerchantdemos/donations/templates/checkout.html.j2 
b/talermerchantdemos/templates/donations-checkout.html.j2
similarity index 98%
rename from talermerchantdemos/donations/templates/checkout.html.j2
rename to talermerchantdemos/templates/donations-checkout.html.j2
index 5b6900f..ec63d9f 100644
--- a/talermerchantdemos/donations/templates/checkout.html.j2
+++ b/talermerchantdemos/templates/donations-checkout.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "donations-base.html.j2" %}
 
 {% block main %}
 <article>
diff --git a/talermerchantdemos/blog/templates/error.html.j2 
b/talermerchantdemos/templates/donations-error.html.j2
similarity index 91%
rename from talermerchantdemos/blog/templates/error.html.j2
rename to talermerchantdemos/templates/donations-error.html.j2
index ffc2e1f..8c48335 100644
--- a/talermerchantdemos/blog/templates/error.html.j2
+++ b/talermerchantdemos/templates/donations-error.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "donations-base.html.j2" %}
 {% block main %}
   <h1>{{ gettext("Error encountered") }}</h1>
 
diff --git a/talermerchantdemos/donations/templates/fulfillment.html.j2 
b/talermerchantdemos/templates/donations-fulfillment.html.j2
similarity index 94%
rename from talermerchantdemos/donations/templates/fulfillment.html.j2
rename to talermerchantdemos/templates/donations-fulfillment.html.j2
index 5fd799b..b49b7dc 100644
--- a/talermerchantdemos/donations/templates/fulfillment.html.j2
+++ b/talermerchantdemos/templates/donations-fulfillment.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "donations-base.html.j2" %}
 
 {% block main %}
 <h2>{{ gettext("Donation Receipt") }}</h2>
diff --git a/talermerchantdemos/donations/templates/index.html.j2 
b/talermerchantdemos/templates/donations-index.html.j2
similarity index 98%
rename from talermerchantdemos/donations/templates/index.html.j2
rename to talermerchantdemos/templates/donations-index.html.j2
index 87bce85..25a6768 100644
--- a/talermerchantdemos/donations/templates/index.html.j2
+++ b/talermerchantdemos/templates/donations-index.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "donations-base.html.j2" %}
 
 {% block main %}
 <h2>{{ gettext("Donate to Free Software projects") }}</h2>
diff --git 
a/talermerchantdemos/donations/templates/provider-not-supported.html.j2 
b/talermerchantdemos/templates/donations-provider-not-supported.html.j2
similarity index 87%
rename from 
talermerchantdemos/donations/templates/provider-not-supported.html.j2
rename to talermerchantdemos/templates/donations-provider-not-supported.html.j2
index a4d5d80..a92af77 100644
--- a/talermerchantdemos/donations/templates/provider-not-supported.html.j2
+++ b/talermerchantdemos/templates/donations-provider-not-supported.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html" %}
+{% extends "donations-base.html.j2" %}
 
 {% block main %}
 <h2>{{ gettext("Payment Provider Not Supported") }}</h2>
diff --git a/talermerchantdemos/templates/landing-base.html.j2 
b/talermerchantdemos/templates/landing-base.html.j2
new file mode 100644
index 0000000..e279767
--- /dev/null
+++ b/talermerchantdemos/templates/landing-base.html.j2
@@ -0,0 +1,12 @@
+{% extends "common-base.html.j2" %}
+
+{% block header_content %}
+
+<h1><span class="it"><a href="{{ env('TALER_ENV_URL_LANDING') }}">{{ 
gettext("Introduction") }}</a></span></h1>
+<p>{{
+      gettext("This is the GNU Taler demo.") + "<br>" +
+      gettext("Here you can try out the GNU Taler payment system using a toy 
currency.")
+    }}
+</p>
+
+{% endblock %}
diff --git a/talermerchantdemos/landing/templates/error.html.j2 
b/talermerchantdemos/templates/landing-error.html.j2
similarity index 84%
rename from talermerchantdemos/landing/templates/error.html.j2
rename to talermerchantdemos/templates/landing-error.html.j2
index 009947c..7909656 100644
--- a/talermerchantdemos/landing/templates/error.html.j2
+++ b/talermerchantdemos/templates/landing-error.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "landing-base.html.j2" %}
 {% block main %}
   <h1>{{ gettext("Error encountered") }}</h1>
 
diff --git a/talermerchantdemos/landing/templates/index.html.j2 
b/talermerchantdemos/templates/landing-index.html.j2
similarity index 99%
rename from talermerchantdemos/landing/templates/index.html.j2
rename to talermerchantdemos/templates/landing-index.html.j2
index 9beb7c0..16145e3 100644
--- a/talermerchantdemos/landing/templates/index.html.j2
+++ b/talermerchantdemos/templates/landing-index.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "landing-base.html.j2" %}
 {% block main %}
     <article>
       <h2>{{ gettext("Step 1: Install the Taler wallet") }}</h2>
diff --git a/talermerchantdemos/templates/menu.html.j2 
b/talermerchantdemos/templates/menu.html.j2
index c364a2c..937030d 100644
--- a/talermerchantdemos/templates/menu.html.j2
+++ b/talermerchantdemos/templates/menu.html.j2
@@ -16,10 +16,7 @@
     <a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY', '#') + lang + '/' }}"
              {% if active == 'survey' %} class="active" {% endif %}
             >{{gettext("Tipping/Survey")}}</a>
-    <!-- a href="{{ env('TALER_ENV_URL_BACKOFFICE', '#') + lang + '/' }}"
-             {% if active == 'backoffice' %} class="active" {% endif %}
-            >{{gettext("Back-office")}}</a -->
-    {% include 'templates/language-switcher.html.j2' %}
+    {% include 'language-switcher.html.j2' %}
   </nav>
 </div>
 {%- endmacro %}
diff --git a/talermerchantdemos/templates/survey-base.html.j2 
b/talermerchantdemos/templates/survey-base.html.j2
new file mode 100644
index 0000000..f35f514
--- /dev/null
+++ b/talermerchantdemos/templates/survey-base.html.j2
@@ -0,0 +1,13 @@
+{% extends "common-base.html.j2" %}
+
+{% block header_content %}
+
+<h1>
+<span class="it"><a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY') }}">{{ 
gettext("Survey") }}</a></span></h1>
+<p>{{
+gettext("This page demonstrates how to tip visitors for completing small 
tasks.") + "<br>" +
+gettext("Tipping is a way for offer cash rewards that go directly into a 
user's wallet.")
+}}
+</p>
+
+{% endblock %}
diff --git a/talermerchantdemos/survey/templates/error.html.j2 
b/talermerchantdemos/templates/survey-error.html.j2
similarity index 91%
rename from talermerchantdemos/survey/templates/error.html.j2
rename to talermerchantdemos/templates/survey-error.html.j2
index 844da08..b2f84f9 100644
--- a/talermerchantdemos/survey/templates/error.html.j2
+++ b/talermerchantdemos/templates/survey-error.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "survey-base.html.j2" %}
 {% block main %}
   <h1>{{ gettext("Error encountered") }}</h1>
 
diff --git a/talermerchantdemos/survey/templates/index.html.j2 
b/talermerchantdemos/templates/survey-index.html.j2
similarity index 95%
rename from talermerchantdemos/survey/templates/index.html.j2
rename to talermerchantdemos/templates/survey-index.html.j2
index 7c449da..e7d323b 100644
--- a/talermerchantdemos/survey/templates/index.html.j2
+++ b/talermerchantdemos/templates/survey-index.html.j2
@@ -1,4 +1,4 @@
-{% extends "templates/base.html.j2" %}
+{% extends "survey-base.html.j2" %}
 {% block main %}
   <div>
     <p>
diff --git a/translations/ar/LC_MESSAGES/messages.po 
b/translations/ar/LC_MESSAGES/messages.po
index 90de79e..cffd043 100644
--- a/translations/ar/LC_MESSAGES/messages.po
+++ b/translations/ar/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-25 12:53+0000\n"
 "Last-Translator: Maisa I <maisa.translator@gmail.com>\n"
 "Language: ar\n"
@@ -144,8 +144,8 @@ msgstr "طلب استرجاع"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "وجود خطأ"
 
@@ -163,14 +163,13 @@ msgstr "استجابة الخلفية:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "إشارة تراكمية:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -232,16 +231,14 @@ msgstr "لا يوجد مقالات متوفرة بهذه اللغة."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "مقدمة"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -249,7 +246,6 @@ msgstr "بنك"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -258,7 +254,6 @@ msgstr "متجر المقالات"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -266,7 +261,6 @@ msgstr "تبرعات"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -274,7 +268,6 @@ msgstr "استطلاع الآراء"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -436,38 +429,72 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr "طريقة HTTP غير مسموح بها لهذه الصفحة"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "استطلاع رأي"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"من فضلك شارك في استطلاعنا للرأي عن طرق السداد و احصل على إكرامية في "
+"المقابل."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "اي طرق الدفع تفضل؟"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "تقديم استطلاع الرأي"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "الخطوة الاولى: قم بإعداد محفظة Taler"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "قم بإعداد المحفظة من خلال <a href=\"{link}\">صفحة الإعداد</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "يتطلب الإعداد ضغطة واحدة."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -475,151 +502,117 @@ msgstr ""
 "هذه التصريحات ستمكن المحفظة ان تفتح تلقائيًا في حالة طلب الصفحة لدفع "
 "Taler."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "التسجيل يتطلب فقط اختيارك اسم المستخدم و رمز سري."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "الخطوة الثالثة: ادفع"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "الخطوة الرابعة: تحقق من تدفق المال"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "الخطوة الخامسة: استطلاع الرأي"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "الخطوة السادسة: تواصل معنا"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "شاركنا رأيك عن طريق <a href=\"{link}\"> التواصل معنا</a>."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "استطلاع رأي"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"من فضلك شارك في استطلاعنا للرأي عن طرق السداد و احصل على إكرامية في "
-"المقابل."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "اي طرق الدفع تفضل؟"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "تقديم استطلاع الرأي"
-
 #~ msgid "English [en]"
 #~ msgstr ""
 
diff --git a/translations/de/LC_MESSAGES/messages.po 
b/translations/de/LC_MESSAGES/messages.po
index ad5e03d..250d4a0 100644
--- a/translations/de/LC_MESSAGES/messages.po
+++ b/translations/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version:  taler-merchant-demos\n"
 "Report-Msgid-Bugs-To: taler@gnu.org\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-02-12 16:39+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: de\n"
@@ -157,8 +157,8 @@ msgstr "Erstattungsanfrage"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Ein Fehler ist aufgetreten"
 
@@ -176,14 +176,13 @@ msgstr "Backend-Rückmeldung:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "Stack trace:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -254,16 +253,14 @@ msgstr "Es sind keine Aufsätze in dieser Sprache 
verfügbar."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Einführung"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -271,7 +268,6 @@ msgstr "Bank"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -280,7 +276,6 @@ msgstr "Aufsatzsammlung"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -288,7 +283,6 @@ msgstr "Spenden"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -296,7 +290,6 @@ msgstr "Tipping/Umfrage"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -502,36 +495,74 @@ msgstr "Das Backend lieferte einen Fehlerstatus zurück"
 msgid "HTTP method not allowed for this page"
 msgstr "Die HTTP-Methode ist auf dieser Webseite nicht erlaubt"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler Demo-Seite: Tipping/Umfrage"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Tipping/Umfrage"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+"Auf dieser Seite zeigen wir, wie Webseiten ihre Besucher für das Erfüllen"
+" kleiner Aufgaben belohnen können."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Tipping („Trinkgeld geben“) bucht digitales Bargeld direkt in das Wallet "
+"der Webseitenbesucher."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Bitte nehmen Sie zur Demonstration der Tipping-Funktion von GNU Taler an "
+"unserer Umfrage teil – Sie erhalten dafür digitales Geld als Belohnung."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "Welches Bezahlsystem bevorzugen Sie?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Antwort abschicken"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler Demo: Einführung"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "Willkommen auf den Demo-Seiten von GNU Taler!"
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 "Auf diesen Seiten ist es möglich, die Funktionsweise des Bezahlsystems "
 "GNU Taler selbst auszuprobieren. „Bezahlt“ wird hier in der "
 "Phantasiewährung KUDOS."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Schritt 1: Taler-Wallet installieren"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 "Die elektronische Geldbörse (Wallet) installiert man auf der <a "
 "href=\"{link}\">Installationsseite</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "Die Installation erfolgt so einfach wie ein Mausklick."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -540,7 +571,7 @@ msgstr ""
 "Nach der Installation können Sie gefragt werden, ob Sie dem Browser-"
 "basierten Wallet erweiterte Rechte gewähren wollen."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -549,7 +580,7 @@ msgstr ""
 "anzubieten, wenn eine Webseite nach einer Zahlungsauslösung mit GNU Taler"
 " fragt."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -558,17 +589,17 @@ msgstr ""
 "oder andere persönliche Daten übermitteln, selbst wenn ihm solche "
 "Berechtigungen erteilt wurden."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Schritt 2: Coins in das Wallet laden (Geld abheben)"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 "Zur Demonstration der Funktionsweise von GNU Taler wird die "
 "Phantasiewährung {currency} verwendet."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -576,13 +607,13 @@ msgstr ""
 "Um {currency} ins Wallet abheben zu können, muss man zuerst ein Konto bei"
 " unserer fiktiven <a href=\"{bank}\">Bank</a> haben."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 "Zur Registrierung bei dieser Bank braucht es nur einen Nutzernamen und "
 "ein Passwort."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -591,7 +622,7 @@ msgstr ""
 "Startguthaben von 100 {currency}, das zum Ausprobieren der Zahlfunktionen"
 " eingesetzt werden kann."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -599,7 +630,7 @@ msgstr ""
 "Die Webschnittstelle der Bank erlaubt dann dem Wallet, die neuen "
 "{currency} abzuheben."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -607,17 +638,17 @@ msgstr ""
 "Sobald dies geschehen ist, kann der Kontostand mit einem Klick auf das "
 "Taler-Symbol im Browser geprüft werden."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Schritt 3: Bezahlen mit digitalem Bargeld"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 "Unsere Demo-Seiten bieten zwei Beispiele für Zahlvorgänge, bei denen das "
 "digitale Bargeld wieder ausgegeben werden kann:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -627,13 +658,13 @@ msgstr ""
 "einzelne Kapitel aus dem Buch &quot;Free Software, Free Society&quot; von"
 " Richard Stallman bezahlt werden."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 "Das Buch ist aber auch kostenlos bei der <a href=\"{fsf}\">Free Software "
 "Foundation</a> verfügbar."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -642,11 +673,11 @@ msgstr ""
 "Auf der <a href=\"{donations}\">Spenden-Seite</a> kann man Software-"
 "Projekten Respekt zollen und ihnen {currency} spenden."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Schritt 4: Den Geldfluss nachverfolgen"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -656,7 +687,7 @@ msgstr ""
 "Konten</a> der Bank sind die Überweisungen vom Treuhandkonto des Exchange"
 " an die Bankkonten der Zahlungsempfänger aufgelistet."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -664,11 +695,11 @@ msgstr ""
 "Die Liste enthält jedoch nur die Konten, die als öffentlich sichtbar "
 "konfiguriert wurden."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Schritt 5: Die Tipping-Funktion kennenlernen"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 "Webseiten können ihre Besucher für Arbeiten belohnen, indem sie ihnen "
@@ -676,7 +707,7 @@ msgstr ""
 "Funktion am Beispiel einer Umfrage, bei der die Teilnehmer für ihre Mühe "
 "eine kleine Belohnung erhalten."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -686,61 +717,23 @@ msgstr ""
 "dass das Bezahlsystem sogar an Empfänger ohne Girokonten bzw. ohne "
 "Kenntnis der Kontonummern der Empfänger überweisen kann."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Schritt 6: Mit uns in Kontakt treten"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 "Wir freuen uns auf Ihre Fragen zu GNU Taler, das Interesse an den "
 "Fähigkeiten des Systems und ebenso über Ihr Feedback zu diesen Demo-"
 "Seiten."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 "Sie können uns gern Ihre Ansichten zu GNU Taler <a "
 "href=\"{link}\">mitteilen</a>. Vielen Dank für Ihre Nachricht an uns."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler Demo-Seite: Tipping/Umfrage"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Tipping/Umfrage"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-"Auf dieser Seite zeigen wir, wie Webseiten ihre Besucher für das Erfüllen"
-" kleiner Aufgaben belohnen können."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Tipping („Trinkgeld geben“) bucht digitales Bargeld direkt in das Wallet "
-"der Webseitenbesucher."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Bitte nehmen Sie zur Demonstration der Tipping-Funktion von GNU Taler an "
-"unserer Umfrage teil – Sie erhalten dafür digitales Geld als Belohnung."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "Welches Bezahlsystem bevorzugen Sie?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Antwort abschicken"
-
 #~ msgid "You did not like this article?"
 #~ msgstr ""
 
diff --git a/translations/en/LC_MESSAGES/messages.po 
b/translations/en/LC_MESSAGES/messages.po
index b12b5cb..6aa7483 100644
--- a/translations/en/LC_MESSAGES/messages.po
+++ b/translations/en/LC_MESSAGES/messages.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language: en\n"
@@ -132,8 +132,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -151,14 +151,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -210,16 +209,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -227,7 +224,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -236,7 +232,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -244,7 +239,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -252,7 +246,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -414,186 +407,186 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
 #~ msgid "GNU Taler"
 #~ msgstr ""
 
diff --git a/translations/es/LC_MESSAGES/messages.po 
b/translations/es/LC_MESSAGES/messages.po
index 1a97dd9..ccae7bb 100644
--- a/translations/es/LC_MESSAGES/messages.po
+++ b/translations/es/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-10 07:12+0000\n"
 "Last-Translator: Paulina Teran <pau_teran@hotmail.com>\n"
 "Language: es\n"
@@ -145,8 +145,8 @@ msgstr "Solicitud de reembolso"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Error encontrado"
 
@@ -164,14 +164,13 @@ msgstr "Respuesta backend:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "Seguimiento de Pila"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -236,16 +235,14 @@ msgstr "No hay artículos disponibles en este idioma."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Introducción"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -253,7 +250,6 @@ msgstr "Banco"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -262,7 +258,6 @@ msgstr "Tienda de pruebas"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -270,7 +265,6 @@ msgstr "Donaciones"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -278,7 +272,6 @@ msgstr "Consejos/Encuestas"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -474,33 +467,71 @@ msgstr "El backend ha retornado un estado de error"
 msgid "HTTP method not allowed for this page"
 msgstr "El método HTTP no está permitido para esta página"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler Demo: Encuesta"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Encuesta"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+"Esta página demonstra cómo dejar propina a visitantes por haber "
+"completado pequeñas tareas."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Dejar propina es una manera de recompensar con dinero, que va "
+"directamente en el monedero de un usuario."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Por favor participa en nuestra encuesta sobrelos sistemas de pago y "
+"recibe un consejo a cambio."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "¿Que sistema de pago prefieres?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Enviar Encuesta"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler Demo: Introducción"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "Esta es la demo de GNU Taler."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 "Aquí puedes probar el sistema de pago GNU Taler usando una moneda de "
 "juguete."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Paso 1: Instalar la cartera Taler"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "Instalar la cartera desde <a href=\"{link}\">la página de 
instalación</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "La instalación solo requiere un clic."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -510,7 +541,7 @@ msgstr ""
 "cartera Taler basada-en-navegador permisos adicionales opcionales que le "
 "permitan mejorar la experiencia del usuario."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -518,7 +549,7 @@ msgstr ""
 "Estos permisos permitirán a la cartera abrirse de forma automática si una"
 " página solicita un pago Taler."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -526,15 +557,15 @@ msgstr ""
 "Independientemente de los permisos que concedas, la cartera nunca "
 "transmitirá información sobre tu historial de navegación a nadie."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Paso 2: Retirar monedas"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "En esta demo estás pagando con {currency}, una moneda imaginaria."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -542,13 +573,13 @@ msgstr ""
 "Para retirar monedas {currency} primero debes crear una cuenta en nuestro"
 " <a href=\"{bank}\">banco</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 "El registro solo requiere que elijas un nombre de usuario y una "
 "contraseña."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -556,7 +587,7 @@ msgstr ""
 "Cuando creas una cuenta en nuestro banco, se te acreditarán 100 "
 "{currency} por registrarte."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -564,7 +595,7 @@ msgstr ""
 "Después, usa el interfaz Web del banco para autorizar la transferencia de"
 " {currency} en tu cartera."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -572,15 +603,15 @@ msgstr ""
 "Una vez hayas completado este paso, puedes hacer clic en el icono Taler "
 "de tu navegador para comprobar tu saldo."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Paso 3: Pagar"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "Nosotros tenemos dos comercios demo donde puedes gastar tus monedas:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -590,13 +621,13 @@ msgstr ""
 " por capítulos individuales del libreo de  Richard Stallman&#39;s book "
 "&quot;Software libre, para una Sociedad Libre&quot;."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 "El libro también está disponible gratuitamente en la <a "
 "href=\"{fsf}\">FSF</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -606,11 +637,11 @@ msgstr ""
 " mostrar respeto por un proyecto de software libre de tu elección, "
 "donando {currency} a ellos."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Paso 4: Comprobar el flujo del dinero"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -620,7 +651,7 @@ msgstr ""
 "exchange hacia el comerciante en la <a href=\"{bank}/public-"
 "accounts\">página de cuentas públicas</a> del banco."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -628,15 +659,15 @@ msgstr ""
 "Tenga en cuenta que solo las cuentas configuradas para ser públicamente "
 "visibles son mostradas en esa página."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Paso 5: Encuesta"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "Las sitios Web pueden dar consejos a los visitantes para completar 
tareas."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -644,58 +675,20 @@ msgstr ""
 "Puedes ganar algunas monedas {currency} cumplimentando nuestra <a "
 "href=\"{url}\">encuesta</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Paso 6: Ponte en contacto con nosotros"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Apreciamos tu opinión sobre Taler y esta demostración."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 "Déjamos saber que piensas poniéndote en <a href=\"{link}\">contacto con "
 "nosotros</a>."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler Demo: Encuesta"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Encuesta"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-"Esta página demonstra cómo dejar propina a visitantes por haber "
-"completado pequeñas tareas."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Dejar propina es una manera de recompensar con dinero, que va "
-"directamente en el monedero de un usuario."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Por favor participa en nuestra encuesta sobrelos sistemas de pago y "
-"recibe un consejo a cambio."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "¿Que sistema de pago prefieres?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Enviar Encuesta"
-
 #~ msgid ""
 #~ "After installation, you may be asked "
 #~ "to grant the brower-based Taler "
diff --git a/translations/fr/LC_MESSAGES/messages.po 
b/translations/fr/LC_MESSAGES/messages.po
index 5dc1643..ac59ed1 100644
--- a/translations/fr/LC_MESSAGES/messages.po
+++ b/translations/fr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-20 15:50+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: fr\n"
@@ -149,8 +149,8 @@ msgstr "Demandez un remboursement"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Erreur constatée"
 
@@ -168,14 +168,13 @@ msgstr "Réponse du backend :"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "Trace de la pile :"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -240,16 +239,14 @@ msgstr "Aucun article disponible dans cette langue."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Introduction"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -257,7 +254,6 @@ msgstr "Banque"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -266,7 +262,6 @@ msgstr "Boutique de test"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -274,7 +269,6 @@ msgstr "Dons"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -282,7 +276,6 @@ msgstr "Conseils/Sondage"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -477,35 +470,73 @@ msgstr "Le backend a renvoyé un statut d'erreur"
 msgid "HTTP method not allowed for this page"
 msgstr "Méthode HTTP non autorisée pour cette page"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "Démo de GNU Taler : Enquête"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Sondage"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+"Cette page montre comment donner des pourboires aux visiteurs qui "
+"accomplissent de petites tâches."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Le pourboire est un moyen d'offrir des récompenses en espèces qui vont "
+"directement dans le portefeuille de l'utilisateur."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Participez à notre enquête sur les systèmes de paiement et recevez un "
+"pourboire en retour."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "Quel système de paiement préférez-vous ?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Soumettre une enquête"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "Demo de GNU Taler : Introduction"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "C'est la démo de GNU Taler."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 "Ici, vous pouvez essayer le système de paiement GNU Taler en utilisant "
 "une monnaie-jouet."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Étape 1 : Installez le porte-monnaie Taler"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 "Installez le portefeuille à partir de la <a href=\"{link}\">page "
 "d'installation</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "L'installation se fait en un seul clic."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -516,7 +547,7 @@ msgstr ""
 "supplémentaires qui lui permettent d'améliorer votre expérience "
 "utilisateur."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -524,7 +555,7 @@ msgstr ""
 "Ces autorisations permettront au portefeuille de s'ouvrir automatiquement"
 " si une page demande un paiement Taler."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -533,15 +564,15 @@ msgstr ""
 "ne transmettra jamais à quiconque des informations vous concernant ou "
 "votre historique de navigation."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Étape 2 : Retirer les pièces"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "Dans cette démo, vous payez avec {devise}, une monnaie imaginaire."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -549,13 +580,13 @@ msgstr ""
 "Pour retirer des pièces de {monnaie}, vous devez d'abord créer un compte "
 "dans notre <a href=\"{bank}\">banque</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 "Pour vous inscrire, il vous suffit de choisir un nom d'utilisateur et un "
 "mot de passe."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -563,7 +594,7 @@ msgstr ""
 "Lorsque vous créerez un compte dans notre banque, vous serez crédité de "
 "100 {monnaie} pour votre inscription."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -571,7 +602,7 @@ msgstr ""
 "Ensuite, utilisez l'interface Web de la banque pour autoriser le "
 "transfert de {monnaie} vers votre portefeuille."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -579,17 +610,17 @@ msgstr ""
 "Une fois cette étape terminée, vous pouvez cliquer sur l'icône Taler dans"
 " votre navigateur pour vérifier votre solde."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Étape 3 : Payer"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 "Nous avons deux marchands de démonstration où vous pouvez dépenser vos "
 "pièces :"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -599,13 +630,13 @@ msgstr ""
 "{devise} des chapitres individuels du livre de Richard Stallman "
 "&quot;Free Software, Free Society&quot;."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 "Le livre est également disponible gratuitement sur <a href=\"{fsf}\">la "
 "FSF</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -615,11 +646,11 @@ msgstr ""
 "vous pouvez témoigner votre respect à un projet logiciel de votre choix "
 "en lui faisant un don de {monnaie}."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Étape 4 : Vérifiez les flux financiers"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -629,7 +660,7 @@ msgstr ""
 "commerçants sur la page <a href=\"{bank}/public-accounts\">public "
 "accounts</a> de la banque."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -637,17 +668,17 @@ msgstr ""
 "Notez que seuls les comptes configurés pour être accessibles au public "
 "sont affichés sur cette page."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Étape 5 : Enquête"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 "Les sites web peuvent donner des conseils aux visiteurs pour accomplir "
 "des tâches."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -655,58 +686,20 @@ msgstr ""
 "Vous pouvez gagner quelques pièces de {monnaie} en remplissant notre <a "
 "href=\"{url}\">enquête</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Étape 6 : contactez-nous"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Nous apprécions les commentaires sur Taler et ce démonstrateur."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 "Faites-nous savoir ce que vous pensez en <a href=\"{link}\">nous "
 "contactant</a>."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "Démo de GNU Taler : Enquête"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Sondage"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-"Cette page montre comment donner des pourboires aux visiteurs qui "
-"accomplissent de petites tâches."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Le pourboire est un moyen d'offrir des récompenses en espèces qui vont "
-"directement dans le portefeuille de l'utilisateur."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Participez à notre enquête sur les systèmes de paiement et recevez un "
-"pourboire en retour."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "Quel système de paiement préférez-vous ?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Soumettre une enquête"
-
 #~ msgid ""
 #~ "After installation, you may be asked "
 #~ "to grant the brower-based Taler "
diff --git a/translations/hi/LC_MESSAGES/messages.po 
b/translations/hi/LC_MESSAGES/messages.po
index 1050370..bd9e102 100644
--- a/translations/hi/LC_MESSAGES/messages.po
+++ b/translations/hi/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language: hi\n"
@@ -136,8 +136,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -155,14 +155,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -214,16 +213,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -231,7 +228,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -240,7 +236,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -248,7 +243,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -256,7 +250,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -418,186 +411,186 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
 #~ msgid "English [en]"
 #~ msgstr ""
 
diff --git a/translations/it/LC_MESSAGES/messages.po 
b/translations/it/LC_MESSAGES/messages.po
index 0d792a6..97f6a56 100644
--- a/translations/it/LC_MESSAGES/messages.po
+++ b/translations/it/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-02-24 18:05+0000\n"
 "Last-Translator: MS <ms@taler.net>\n"
 "Language: it\n"
@@ -149,8 +149,8 @@ msgstr "Richiesta di rimborso"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Errore riscontrato"
 
@@ -168,14 +168,13 @@ msgstr "Risposta del backend:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "Traccia dello stack:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -237,16 +236,14 @@ msgstr "Nessun articolo disponibile in questa lingua."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Introduzione"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -254,7 +251,6 @@ msgstr "Banca"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -263,7 +259,6 @@ msgstr "Negozio di saggistica"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -271,7 +266,6 @@ msgstr "Donazioni"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -279,7 +273,6 @@ msgstr "Guadagna con il questionario"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -471,35 +464,73 @@ msgstr "Il backend ha segnalato uno stato di errore"
 msgid "HTTP method not allowed for this page"
 msgstr "Il metodo HTTP non è permesso in questa pagina"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler Demo: Sondaggio"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Sondaggio"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+"Questa pagina dimostra come lasciare la mancia ai visitatori per aver "
+"completato dei piccoli compiti."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Lasciare la mancia è un modo di offrire ricompense in denaro che vanno "
+"direttamente nel portafoglio dell'utente."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Per favore partecipa al nostro sondaggio sul sistema di pagamenti e "
+"ricevi una mancia in cambio."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "Che sistema di pagamento preferisci?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Invia sondaggio"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler Demo: Introduzione"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "Questa è la demo di GNU Taler."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 "Qui puoi provare il sistema di pagamento GNU Taler utilizzando una moneta"
 " fittizia."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Passo 1: Installa il portafoglio Taler"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 "Installa il portafoglio dalla <a href=\"{link}\">pagina di "
 "installazione</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "L'installazione richiede solo un click."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -509,7 +540,7 @@ msgstr ""
 "richiesto di accordare permessi opzionali che possono migliorare la tua "
 "esperienza utente."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -517,7 +548,7 @@ msgstr ""
 "Questi permessi permetteranno al portafoglio di aprirsi automaticamente "
 "se una pagina richiede un pagamento Taler."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -525,15 +556,15 @@ msgstr ""
 "Indipendentemente dai permessi che accordi, il portafoglio non "
 "trasmetterà mai informazioni riguardo te o la tua cronologia a nessuno."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Step 2: Ritiro monete"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "In questa demo stai pagando con {currency}, una valuta immaginaria."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -541,11 +572,11 @@ msgstr ""
 "Per ritirare monete in {currency} devi prima creare un conto nella nostra"
 " <a href=\"{bank}\">banca</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "Registrarsi richiede solo la scelta di un nome utente e di una 
password."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -553,7 +584,7 @@ msgstr ""
 "Quando crei un conto nella nostra banca, ti verranno accreditati 100 "
 "{currency} per la registrazione."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -561,7 +592,7 @@ msgstr ""
 "Dopodiché, usa l'interfaccia web bancaria per autorizzare il "
 "trasferimento di {currency} al tuo portafoglio."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -569,15 +600,15 @@ msgstr ""
 "Una volta che avrai completato questo passaggio, puoi cliccare sull'icona"
 " Taler sul tuo browser per controllare il tuo saldo."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Passo 3: Pagare"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "Abbiamo due negozi dimostrativi dove puoi spendere le tue monete:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -587,11 +618,11 @@ msgstr ""
 " per capitoli singoli del &#39;libro &quot;Free Software, Free "
 "Society&quot; di Richard Stallman."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "Il libro è anche disponibile gratuitamente alla <a 
href=\"{fsf}\">FSF</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -600,11 +631,11 @@ msgstr ""
 "Nella <a href=\"{donations}\">pagina di donazioni</a> puoi mostrare "
 "rispetto per un progetto di software a tua scelta donandogli {currency}."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Passo 4: Controllare il flusso di denaro"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -614,7 +645,7 @@ msgstr ""
 "venditori sulla <a href=\"{bank}/public-accounts\">pagina dei conti "
 "pubblici</a> della banca."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -622,15 +653,15 @@ msgstr ""
 "Tieni presente che solo i conti configurati per essere pubblicamente "
 "visibili sono mostrati in questa pagina."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Passo 5: Questionario"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "I siti Web possono premiare in denaro gli utenti che risolvano un 
compito."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -638,56 +669,18 @@ msgstr ""
 "Puoi guadagnare un po' di {currency} compilando il nostro <a "
 "href=\"{url}\">questionario</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Passo 6: Mettiti in contatto con noi"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Apprezziamo la tua opinione su Taler e questa dimostrazione."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "Facci sapere cosa pensi <a href=\"{link}\">contattandoci</a>."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler Demo: Sondaggio"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Sondaggio"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-"Questa pagina dimostra come lasciare la mancia ai visitatori per aver "
-"completato dei piccoli compiti."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Lasciare la mancia è un modo di offrire ricompense in denaro che vanno "
-"direttamente nel portafoglio dell'utente."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Per favore partecipa al nostro sondaggio sul sistema di pagamenti e "
-"ricevi una mancia in cambio."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "Che sistema di pagamento preferisci?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Invia sondaggio"
-
 #~ msgid "English [en]"
 #~ msgstr "Inglese [en]"
 
diff --git a/translations/ja/LC_MESSAGES/messages.po 
b/translations/ja/LC_MESSAGES/messages.po
index 69ae6b0..601b605 100644
--- a/translations/ja/LC_MESSAGES/messages.po
+++ b/translations/ja/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-17 06:54+0000\n"
 "Last-Translator: Naoko Tsukuda <mxi01460@nifty.com>\n"
 "Language: ja\n"
@@ -144,8 +144,8 @@ msgstr "払い戻しをリクエストする"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "エラーが発生しました"
 
@@ -163,14 +163,13 @@ msgstr "バックエンドの応答:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "スタックトレース:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -222,16 +221,14 @@ msgstr "この言語で利用できる記事はありません。"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "序章"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -239,7 +236,6 @@ msgstr "銀行"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -248,7 +244,6 @@ msgstr "エッセイショップ"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -256,7 +251,6 @@ msgstr "寄付"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -264,7 +258,6 @@ msgstr "チップ/調査"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -429,94 +422,126 @@ msgstr "Backend は、エラー・ステータスを返してきました"
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP方式は、このページでは許可されていません"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Talerデモ:アンケート"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "アンケート"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr "このページでは、小さいタスクの完了に対して訪問者にチップを与える方法を紹介します。"
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr "チップは、ユーザーのウォレットに直接入金される現金により報酬を与えるひとつの方法です。"
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr "支払システムについてのアンケートに参加し、その代わりにチップをお受け取りください。"
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "どの支払システムがよいですか?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "アンケートを提出する"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Talerデモ:はじめに"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "これはGNU Talerデモです。"
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "<a href=\"{link}\">インストールのページ</a>からウォレットをインストールしてください。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "インストールはワンクリックでできます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr 
"インストール後、あなたのユーザー・エクスペリエンスを改善させる、オプショナルな追加的許可事項を、ブラウザ・ベースのTalerウォレットに与えるよう求められることがあります。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr "これらの事項を許可することにより、あるページがTalerによる支払いを求めた場合、ウォレットが自動的に開きます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr "与えた許可に関係なく、ウォレットは、あなたやあなたの閲覧履歴に関する情報を、ほかの誰にも伝送しません。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "ステップ2:コインの引き出し"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "このデモでは、架空の通貨である{currency}で支払いを行います。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "ユーザーネームとパスワードを選ぶだけで、サインアップできます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr "当行で口座を作るとき、サインアップすることで100 {currency} が与えられます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr "その後は、当行のウェブのインターフェースを使い、あなたのウォレットへ{currency} を送金する権限を与えてください。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr "このステップを完了したら、ブラウザのTalerアイコンをクリックし、残高を確認することができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "ステップ3:支払い"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "コインを使える、2つのデモ売買業者があります。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -525,11 +550,11 @@ msgstr ""
 "<a href=\"{blog}\">エッセイ・ストア</a> で、 {currency} を使い、リチャード・ストールマン&#39;の本 "
 "&quot;Free Software, Free Society&quot;の各章に対し、支払いを行うことができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "<a href=\"{fsf}\">the FSF</a>では、この本を無料で入手することができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -538,11 +563,11 @@ msgstr ""
 "<a href=\"{donations}\">寄付サイト</a> プロジェクトでは、{currency} "
 "を寄付することにより、お選びのソフトウェア・プロジェクトに対する敬意を示すことができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "ステップ4:資金の流れを確認する"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -551,70 +576,38 @@ msgstr ""
 "当該取引のエスクロー口座から売買業者への電信送金を、当行の<a href=\"{bank}/public-"
 "accounts\">公開口座ページ</a> で確認することができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr "公に見ることができると設定された口座のみがそのページに示されることに注意してください。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "ステップ5:アンケート"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "ウェブサイトは、訪問者に対し、タスクを完了するためのヒントを与えることができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr "<a href=\"{url}\">アンケート</a>に記入することで、いくらかの {currency} コインを得ることができます。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "ステップ6:私たちに、手を差し伸べてください"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Talerとこのデモについてのフィードバックを歓迎します。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "<a href=\"{link}\">私たちにコンタクトする</a>ことにより、あなたの感想を聞かせてください。"
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Talerデモ:アンケート"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "アンケート"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr "このページでは、小さいタスクの完了に対して訪問者にチップを与える方法を紹介します。"
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr "チップは、ユーザーのウォレットに直接入金される現金により報酬を与えるひとつの方法です。"
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr "支払システムについてのアンケートに参加し、その代わりにチップをお受け取りください。"
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "どの支払システムがよいですか?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "アンケートを提出する"
-
 #~ msgid "English [en]"
 #~ msgstr "英語 [en]"
 
diff --git a/translations/ko/LC_MESSAGES/messages.po 
b/translations/ko/LC_MESSAGES/messages.po
index 70388d4..7a0cf37 100644
--- a/translations/ko/LC_MESSAGES/messages.po
+++ b/translations/ko/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-08 03:05+0000\n"
 "Last-Translator: Choyi Whang <choyi.whang@gmail.com>\n"
 "Language: ko\n"
@@ -139,8 +139,8 @@ msgstr "환불 요청"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "오류가 발생했습니다"
 
@@ -158,14 +158,13 @@ msgstr "백엔드 응답:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "스택 추적:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -219,16 +218,14 @@ msgstr "해당 언어로 제공되는 기사들은 없습니다."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "소개"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -236,7 +233,6 @@ msgstr "은행"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -245,7 +241,6 @@ msgstr "에세이 샵"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -253,7 +248,6 @@ msgstr "기부"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -261,7 +255,6 @@ msgstr "팁 / 설문조사"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -433,94 +426,126 @@ msgstr "백엔드에 대한 오류 수신"
 msgid "HTTP method not allowed for this page"
 msgstr "이 페이지에서는 HTTP가 유효하지 않습니다"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler 데모: 설문조사"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "설문조사"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr "해당 페이지에서는 방문자가 작은 단계를 마무리할 때마다 어떤 식으로 팀을 받는지 설명하고 있습니다."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr "여기서 팁을 준다는 의미는 사용자분들은 walllet에 현금 보상이 곧바로 지급되는 과정을 말합니다."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr "저희 결제 시스템에 대한 설문조사에 참여하시고 팁을 받아가세요."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "어떤 결제 시스템을 선호하시나요?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "설문조사 제출하기"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler 데모: 소개"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "GNU Taler 데모를 찾아주셔서 감사합니다."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr "저희 사이트에서 장난감 화폐를 통해 GNU Taler 결제 시스템을 사용해 보실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "1단계: Taler wallet 설치하기"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "<a href=\"{link}\">설치 페이지</a>에서 wallet을 설치하실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "한 번의 클릭으로 설치가 가능합니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr "설치 후 사용자 경험 향상을 위해 브라우저 기반 Taler wallet에 추가로 선택적 권한을 부여하라는 요청을 받을 수 
있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr "이 권한 요청을 수락하시면 Taler 결제가 요청 됐을 때 wallet이 자동적으로 열리게 됩니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr "권한이 부여된 후에도 wallet은 사용자의 개인정보나 검색 기록에 대한 정보를 유출하지 않습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "2단계: 코인 인출하기"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "이 데모 버전에서는 가상 화폐 {통화}를 통해 결제가 이루어집니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr "{통화} 코인을 인출하려면 먼저 저희 <a href=\"{bank}\"> 은행 </a>에서 계좌를 만드셔야 합니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "가입 시 사용자 이름과 비밀번호만 설정하시면 됩니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr "저희 은행에서 계좌를 만드실 때 100 {통화}가 적립됩니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr "이후 은행의 웹 인터페이스를 통해 {통화}를 wallet으로 전송하실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr "이 단계를 완료하신 후 브라우저를 보시면 Taler 아이콘을 확인하실 수 있고, 클릭을 통해 통장 잔고를 확인하실 수 
있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "3단계: 결제하기"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "현 데모 버전에서는 2명의 판매자와 코인을 통해 거래하실 수 있습니다:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -529,11 +554,11 @@ msgstr ""
 "<a href=\"{blog}\">에세이 샵</a> 에서는 {통화}로 리차드 스톨만의 &#39; 책&quot;자유 소프트웨어, 자유"
 " 사회&quot; 개별 챕터들을 구매하실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "책은 <a href=\"{fsf}\">FSF</a>에서 무료로 제공받으실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -542,11 +567,11 @@ msgstr ""
 "프로젝트 <a href=\"{donations}\">후원 웹사이트</a>에서 사용자분들은 스스로 선택하신 소프트웨어 프로젝트를 "
 "{통화}로 후원함을 통해 지지를 표명하실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "4단계: 자금 흐름 확인하기"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -555,70 +580,38 @@ msgstr ""
 "거래소의 에스크로 계좌에서 은행의 <a href=\"{bank}/public-accounts\">공용 계좌 페이지에서</a> "
 "판매자에게 송금되는 것을 확인하실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr "공개적으로 볼 수 있도록 설정된 계정만 이 페이지에서 확인 가능합니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "5단계: 설문조사하기"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "웹사이트에서는 특정 단계를 마무리한 방문자들이 한해서 팁을 제공하고 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr "사용자분들은 <a href=\"{url}\">설문조사</a>를 완료하시면 소정의 {통화}를 지급받으실 수 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "6단계: 관리자에게 연락하는 방법"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "저희 Taler에서는 자사와 웹사이트 관리에 대한 피드백을 적극 수용하고 있습니다."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "저희에게 <a href=\"{link}\">관리자에게 연락하기</a>를 통해 여러분의 의견을 들려주세요."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler 데모: 설문조사"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "설문조사"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr "해당 페이지에서는 방문자가 작은 단계를 마무리할 때마다 어떤 식으로 팀을 받는지 설명하고 있습니다."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr "여기서 팁을 준다는 의미는 사용자분들은 walllet에 현금 보상이 곧바로 지급되는 과정을 말합니다."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr "저희 결제 시스템에 대한 설문조사에 참여하시고 팁을 받아가세요."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "어떤 결제 시스템을 선호하시나요?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "설문조사 제출하기"
-
 #~ msgid "English [en]"
 #~ msgstr "영어[en]"
 
diff --git a/translations/messages.pot b/translations/messages.pot
index aa65c37..629397a 100644
--- a/translations/messages.pot
+++ b/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -135,8 +135,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -154,14 +154,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -213,16 +212,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -230,7 +227,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -239,7 +235,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -247,7 +242,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -255,7 +249,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -417,183 +410,183 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
diff --git a/translations/pt/LC_MESSAGES/messages.po 
b/translations/pt/LC_MESSAGES/messages.po
index 609ea77..28903a0 100644
--- a/translations/pt/LC_MESSAGES/messages.po
+++ b/translations/pt/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-02-24 11:17+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: pt\n"
@@ -147,8 +147,8 @@ msgstr "Pedir reembolso"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Ocorreu um erro"
 
@@ -166,14 +166,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -238,16 +237,14 @@ msgstr "Não há artigos disponíveis nesta língua."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Introdução"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -255,7 +252,6 @@ msgstr "Banco"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -264,7 +260,6 @@ msgstr "Loja de Ensaios"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -272,7 +267,6 @@ msgstr "Doações"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -280,7 +274,6 @@ msgstr "Gorjeta/Inquérito"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -474,33 +467,71 @@ msgstr "Backend apresentou um erro"
 msgid "HTTP method not allowed for this page"
 msgstr "Método HTTP não permitido para esta página"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "Demonstração do GNU Taler: Inquérito"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Inquérito"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+"Esta página demonstra como dar gorjetas a visitantes que completarem "
+"pequenas tarefas."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Dar gorjetas é uma forma de dar recompensas em dinheiro que vão "
+"diretamente para a carteira de um usuário."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Por favor participe no nosso inquérito sobre sistemas de pagamento e, em "
+"troca, receba uma gorjeta."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "Que sistema de pagamento prefere?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Submeter Inquérito"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "Demonstração do GNU Taler: Introdução"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "Esta é a demonstração do GNU Taler."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr "Aqui, pode testar o sistema de pagamento GNU Taler usando uma moeda 
falsa."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Passo 1: Instalar a carteira Taler"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 "Instalar a carteira a partir da <a href=\"{link}\">página de "
 "instalação</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "Basta um clique para instalar."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -510,7 +541,7 @@ msgstr ""
 " à carteira Taler que permitam à aplicação de browser melhorar a sua "
 "experiência de utilizador."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -518,7 +549,7 @@ msgstr ""
 "Estas permissões permitirão que a carteira abra automaticamente se uma "
 "página pedir um pagamento pelo Taler."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -526,15 +557,15 @@ msgstr ""
 "Independentemente das permissões que conceder, a carteira nunca "
 "transmitirá informação sobre si ou o seu histórico."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Passo 2: Sacar moedas"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "Nesta demonstração, vai pagar com {currency}, uma moeda imaginária."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -542,11 +573,11 @@ msgstr ""
 "Para sacar moedas {currency}, primeiro tem de criar uma conta no nosso <a"
 " href=\"{bank}\">banco</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "Criar uma conta exige apenas um nome de usuário e uma senha."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -554,7 +585,7 @@ msgstr ""
 "Quando criar uma conta no nosso banco, serão depositados 100 {currency} "
 "pela inscrição."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -562,7 +593,7 @@ msgstr ""
 "Depois, use a interface Web do banco para autorizar a transferência de "
 "{currency} para a sua carteira."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -570,17 +601,17 @@ msgstr ""
 "Assim que tiver completado este passo, pode clicar no ícone do Taler no "
 "seu browser para consultar o seu saldo."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Passo 3: Pagar"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 "Temos aqui dois comerciantes de demonstração onde pode gastar as suas "
 "moedas:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -590,11 +621,11 @@ msgstr ""
 "capítulos individuais do livro &quot;Free Software, Free Society&quot;, "
 "de Richard Stallman."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "O livro também está disponível gratuitamente na <a 
href=\"{fsf}\">FSF</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -604,11 +635,11 @@ msgstr ""
 "expressar o seu respeito a um projeto de software à sua escolha doando-"
 "lhe {currency}."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Passo 4: Consultar o fluxo de dinheiro"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -618,7 +649,7 @@ msgstr ""
 "comerciantes na <a href=\"{bank}/public-accounts\">página de contas "
 "públicas</a> do banco."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -626,15 +657,15 @@ msgstr ""
 "Note que apenas as contas configuradas para serem visíveis publicamente "
 "são mostradas nessa página."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Passo 5: Inquérito"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "Websites podem dar gorjetas aos visitantes que completarem tarefas."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -642,56 +673,18 @@ msgstr ""
 "Pode ganhar algumas moedas {currency} ao completar o nosso <a "
 "href=\"{url}\">inquérito</a>."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Passo 6: Contacte-nos"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Valorizamos feedback acerca do Talor e desta demonstração."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "<a href=\"{link}\">Contacte-nos</a> e diga-nos aquilo que pensa."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "Demonstração do GNU Taler: Inquérito"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Inquérito"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-"Esta página demonstra como dar gorjetas a visitantes que completarem "
-"pequenas tarefas."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Dar gorjetas é uma forma de dar recompensas em dinheiro que vão "
-"diretamente para a carteira de um usuário."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Por favor participe no nosso inquérito sobre sistemas de pagamento e, em "
-"troca, receba uma gorjeta."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "Que sistema de pagamento prefere?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Submeter Inquérito"
-
 #~ msgid "English [en]"
 #~ msgstr "Inglês [en]"
 
diff --git a/translations/pt_BR/LC_MESSAGES/messages.mo 
b/translations/pt_BR/LC_MESSAGES/messages.mo
index 5f74b6f..b1b93f4 100644
Binary files a/translations/pt_BR/LC_MESSAGES/messages.mo and 
b/translations/pt_BR/LC_MESSAGES/messages.mo differ
diff --git a/translations/pt_BR/LC_MESSAGES/messages.po 
b/translations/pt_BR/LC_MESSAGES/messages.po
index af2d3da..7aad132 100644
--- a/translations/pt_BR/LC_MESSAGES/messages.po
+++ b/translations/pt_BR/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language: pt_BR\n"
@@ -136,8 +136,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -155,14 +155,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -214,16 +213,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -231,7 +228,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -240,7 +236,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -248,7 +243,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -256,7 +250,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -418,186 +411,186 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
 #~ msgid "English [en]"
 #~ msgstr ""
 
diff --git a/translations/ru/LC_MESSAGES/messages.po 
b/translations/ru/LC_MESSAGES/messages.po
index 322a967..78e3860 100644
--- a/translations/ru/LC_MESSAGES/messages.po
+++ b/translations/ru/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language: ru\n"
@@ -137,8 +137,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -156,14 +156,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -215,16 +214,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -232,7 +229,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -241,7 +237,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -249,7 +244,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -257,7 +251,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -419,186 +412,186 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
 #~ msgid "English [en]"
 #~ msgstr ""
 
diff --git a/translations/sv/LC_MESSAGES/messages.po 
b/translations/sv/LC_MESSAGES/messages.po
index bf33961..e4b003e 100644
--- a/translations/sv/LC_MESSAGES/messages.po
+++ b/translations/sv/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-02-06 13:43+0000\n"
 "Last-Translator: Stefan Lidstrom <stefan.lidstrom@tanker.se>\n"
 "Language: sv\n"
@@ -147,8 +147,8 @@ msgstr "Begär återbetalning"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr "Fel påträffades"
 
@@ -166,14 +166,13 @@ msgstr "Svar från backend:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr "Stackspårning:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -236,16 +235,14 @@ msgstr "Inga artiklar är tillgängliga på detta språk."
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "Inledning"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -253,7 +250,6 @@ msgstr "Bank"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -262,7 +258,6 @@ msgstr "Artiklar att köpa"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -270,7 +265,6 @@ msgstr "Donationer"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -278,7 +272,6 @@ msgstr "Enkät/Belöning"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -468,31 +461,67 @@ msgstr "Backend returnerade felstatus"
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP-metoden är inte tillåten för den här sidan"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler Demo: Enkät"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "Enkät"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr "Den här sidan visar hur du kan belöna besökare som utfört små 
uppgifter."
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+"Dricks är ett sätt att erbjuda kontantersättning som går direkt in i en "
+"användares plånbok."
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+"Vänligen delta i vår undersökning om betalningssystem och få en slant i "
+"utbyte."
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "Vilket betalningssystem föredrar du?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "Skicka in enkäten"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler Demo: Introduktion"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "Detta är GNU Taler-demon."
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr "Här kan du prova GNU Taler betalningssystem med en leksaksvaluta."
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "Steg 1: Installera Taler-plånboken"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "Installera plånboken från <a href=\"{link}\">installationssidan</a> ."
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr "Installationen tar bara ett klick."
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
@@ -501,7 +530,7 @@ msgstr ""
 "Efter installationen kan du bli ombedd att ge Taler-plånboken ytterligare"
 " behörigheter som förbättrar användarupplevelsen."
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
@@ -509,7 +538,7 @@ msgstr ""
 "Dessa behörigheter gör att plånboken öppnas automatiskt om en sida ber om"
 " en Taler-betalning."
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
@@ -517,15 +546,15 @@ msgstr ""
 "Oavsett vilka behörigheter du beviljar kommer plånboken aldrig att "
 "överföra information om dig eller din webbhistorik till någon."
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "Steg 2: Ta ut mynt"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "I denna demo betalar du med {currency}, en imaginär valuta."
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
@@ -533,11 +562,11 @@ msgstr ""
 "För att ta ut {currency} mynt måste du först skapa ett konto i vår <a "
 "href=\"{bank}\">bank</a> ."
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr "Registrering kräver bara att du väljer ett användarnamn och lösenord."
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
@@ -545,7 +574,7 @@ msgstr ""
 "När du skapar ett konto i vår bank får du 100 {currency} för att du "
 "registrerar dig."
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
@@ -553,7 +582,7 @@ msgstr ""
 "Använd sedan bankens webbgränssnitt för att tillåta överföring av "
 "{currency} till din plånbok."
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
@@ -561,15 +590,15 @@ msgstr ""
 "När du har slutfört detta steg kan du klicka på ikonen Taler i din "
 "webbläsare för att kontrollera ditt saldo."
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "Steg 3: Betala"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "Vi har två demo-säljare där du kan spendera dina mynt:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
@@ -578,11 +607,11 @@ msgstr ""
 "I <a href=\"{blog}\">butiken</a> kan du betala i {currency} för enskilda "
 "kapitel i Richard Stallmans bok &quot;Free Software, Free Society&quot;."
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "Boken finns också gratis på <a href=\"{fsf}\">FSF</a> ."
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
@@ -591,11 +620,11 @@ msgstr ""
 "På <a href=\"{donations}\">donations webb</a> kan du tacka valfritt "
 "mjukvaruprojekt genom att donera {currency} till dem."
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr "Steg 4: Kontrollera penningflödet"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
@@ -604,7 +633,7 @@ msgstr ""
 "På bankens <a href=\"{bank}/public-accounts\">offentliga kontosida</a> "
 "kan du se banköverföringarna från växlingskontorets konto till handlarna."
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
@@ -612,15 +641,15 @@ msgstr ""
 "Observera att endast konton som är konfigurerade för att kunna visas "
 "offentligt visas på den sidan."
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "Steg 5: Undersökning"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "Webbplatser kan ge en slant till besökare för att slutföra uppgifter."
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
@@ -628,54 +657,18 @@ msgstr ""
 "Du kan tjäna några {currency} mynt genom att fylla i vår <a "
 "href=\"{url}\">undersökning</a> ."
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr "Steg 6: Kontakta oss"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "Vi uppskattar feedback om Taler och denna demo."
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "Låt oss veta vad du tycker genom att <a href=\"{link}\">kontakta 
oss</a> ."
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler Demo: Enkät"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "Enkät"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr "Den här sidan visar hur du kan belöna besökare som utfört små 
uppgifter."
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-"Dricks är ett sätt att erbjuda kontantersättning som går direkt in i en "
-"användares plånbok."
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-"Vänligen delta i vår undersökning om betalningssystem och få en slant i "
-"utbyte."
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "Vilket betalningssystem föredrar du?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "Skicka in enkäten"
-
 #~ msgid ""
 #~ "After installation, you may be asked "
 #~ "to grant the brower-based Taler "
diff --git a/translations/tr/LC_MESSAGES/messages.po 
b/translations/tr/LC_MESSAGES/messages.po
index 82a5a2f..d2ca70d 100644
--- a/translations/tr/LC_MESSAGES/messages.po
+++ b/translations/tr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language: tr\n"
@@ -136,8 +136,8 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 msgid "Error encountered"
 msgstr ""
 
@@ -155,14 +155,13 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 msgid "Stack trace:"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -214,16 +213,14 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -231,7 +228,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -240,7 +236,6 @@ msgstr ""
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -248,7 +243,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -256,7 +250,6 @@ msgstr ""
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -418,186 +411,186 @@ msgstr ""
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr ""
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr ""
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 msgid "Installation only takes one click."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
 "wallet additional optional permissions that allow it to improve your user"
 " experience."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 msgid "Signing up only requires you to pick a username and password."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
 "individual chapters of Richard Stallman&#39;s book &quot;Free Software, "
 "Free Society&quot;."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 msgid "Step 4: Check money flow"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 msgid "Step 6: Reach out to us"
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr ""
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr ""
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr ""
-
 #~ msgid "English [en]"
 #~ msgstr ""
 
diff --git a/translations/zh_Hant/LC_MESSAGES/messages.mo 
b/translations/zh_Hant/LC_MESSAGES/messages.mo
index 544362b..2f9ebbb 100644
Binary files a/translations/zh_Hant/LC_MESSAGES/messages.mo and 
b/translations/zh_Hant/LC_MESSAGES/messages.mo differ
diff --git a/translations/zh_Hant/LC_MESSAGES/messages.po 
b/translations/zh_Hant/LC_MESSAGES/messages.po
index 49d0349..333ed26 100644
--- a/translations/zh_Hant/LC_MESSAGES/messages.po
+++ b/translations/zh_Hant/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2021-04-20 17:06+0200\n"
+"POT-Creation-Date: 2021-04-21 18:28+0200\n"
 "PO-Revision-Date: 2021-03-20 01:31+0000\n"
 "Last-Translator: Ting-Yi Fu <futingyi0215@gmail.com>\n"
 "Language: zh_Hant\n"
@@ -147,8 +147,8 @@ msgstr "要求退款"
 
 #: talermerchantdemos/blog/templates/error.html.j2:3
 #: talermerchantdemos/donations/templates/error.html.j2:3
-#: talermerchantdemos/landing/templates/error.html.j2:3
 #: talermerchantdemos/survey/templates/error.html.j2:3
+#: talermerchantdemos/templates/landing-error.html.j2:3
 #, fuzzy
 msgid "Error encountered"
 msgstr "發生錯誤"
@@ -168,15 +168,14 @@ msgstr "後端回應:"
 
 #: talermerchantdemos/blog/templates/error.html.j2:19
 #: talermerchantdemos/donations/templates/error.html.j2:19
-#: talermerchantdemos/landing/templates/error.html.j2:8
 #: talermerchantdemos/survey/templates/error.html.j2:19
+#: talermerchantdemos/templates/landing-error.html.j2:8
 #, fuzzy
 msgid "Stack trace:"
 msgstr "堆疊追蹤:"
 
 #: talermerchantdemos/blog/templates/footer.html.j2:5
 #: talermerchantdemos/donations/templates/footer.html.j2:5
-#: talermerchantdemos/landing/templates/footer.html.j2:5
 #: talermerchantdemos/survey/templates/footer.html.j2:5
 #: talermerchantdemos/templates/footer.html.j2:5
 msgid ""
@@ -230,16 +229,14 @@ msgstr "沒有此以語言撰寫的文章。"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:6
 #: talermerchantdemos/donations/templates/menu.html.j2:6
-#: talermerchantdemos/landing/templates/base.html.j2:32
-#: talermerchantdemos/landing/templates/menu.html.j2:6
 #: talermerchantdemos/survey/templates/menu.html.j2:6
+#: talermerchantdemos/templates/landing-base.html.j2:32
 #: talermerchantdemos/templates/menu.html.j2:6
 msgid "Introduction"
 msgstr "簡介"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:9
 #: talermerchantdemos/donations/templates/menu.html.j2:9
-#: talermerchantdemos/landing/templates/menu.html.j2:9
 #: talermerchantdemos/survey/templates/menu.html.j2:9
 #: talermerchantdemos/templates/menu.html.j2:9
 msgid "Bank"
@@ -247,7 +244,6 @@ msgstr "銀行"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:12
 #: talermerchantdemos/donations/templates/menu.html.j2:12
-#: talermerchantdemos/landing/templates/menu.html.j2:12
 #: talermerchantdemos/survey/templates/menu.html.j2:12
 #: talermerchantdemos/templates/menu.html.j2:12
 msgid "Essay Shop"
@@ -256,7 +252,6 @@ msgstr "論文商店"
 #: talermerchantdemos/blog/templates/menu.html.j2:15
 #: talermerchantdemos/donations/templates/base.html.j2:32
 #: talermerchantdemos/donations/templates/menu.html.j2:15
-#: talermerchantdemos/landing/templates/menu.html.j2:15
 #: talermerchantdemos/survey/templates/menu.html.j2:15
 #: talermerchantdemos/templates/menu.html.j2:15
 msgid "Donations"
@@ -264,7 +259,6 @@ msgstr "捐款"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:18
 #: talermerchantdemos/donations/templates/menu.html.j2:18
-#: talermerchantdemos/landing/templates/menu.html.j2:18
 #: talermerchantdemos/survey/templates/menu.html.j2:18
 #: talermerchantdemos/templates/menu.html.j2:18
 msgid "Tipping/Survey"
@@ -272,7 +266,6 @@ msgstr "小費/調查"
 
 #: talermerchantdemos/blog/templates/menu.html.j2:21
 #: talermerchantdemos/donations/templates/menu.html.j2:21
-#: talermerchantdemos/landing/templates/menu.html.j2:21
 #: talermerchantdemos/survey/templates/menu.html.j2:21
 #: talermerchantdemos/templates/menu.html.j2:21
 msgid "Back-office"
@@ -449,34 +442,68 @@ msgstr "後台回傳錯誤狀態"
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP方法不被此頁面允許"
 
-#: talermerchantdemos/landing/templates/base.html.j2:20
+#: talermerchantdemos/survey/templates/base.html.j2:20
+msgid "GNU Taler Demo: Survey"
+msgstr "GNU Taler Demo: 問卷調查"
+
+#: talermerchantdemos/survey/templates/base.html.j2:32
+msgid "Survey"
+msgstr "問卷調查"
+
+#: talermerchantdemos/survey/templates/base.html.j2:34
+#, fuzzy
+msgid "This page demonstrates how to tip visitors for completing small tasks."
+msgstr "這個頁面展示了如何給予小費予完成任務的訪客。"
+
+#: talermerchantdemos/survey/templates/base.html.j2:35
+#, fuzzy
+msgid ""
+"Tipping is a way for offer cash rewards that go directly into a user's "
+"wallet."
+msgstr "給予小費是一種直接提供現金回饋至使用者錢包的方式。"
+
+#: talermerchantdemos/survey/templates/index.html.j2:6
+msgid ""
+"Please participate in our survey about payment systems and receive a tip "
+"in return."
+msgstr "請參與我們關於支付系統的問卷調查以獲得小費。"
+
+#: talermerchantdemos/survey/templates/index.html.j2:12
+msgid "Which payment system do you prefer?"
+msgstr "請問您偏好哪個支付系統?"
+
+#: talermerchantdemos/survey/templates/index.html.j2:23
+msgid "Submit Survey"
+msgstr "提交問卷"
+
+#: talermerchantdemos/templates/landing-base.html.j2:20
 msgid "GNU Taler Demo: Introduction"
 msgstr "GNU Taler Demo: 介紹"
 
-#: talermerchantdemos/landing/templates/base.html.j2:34
+#: talermerchantdemos/templates/landing-base.html.j2:34
 msgid "This is the GNU Taler demo."
 msgstr "這是GNU Taler的demo。"
 
-#: talermerchantdemos/landing/templates/base.html.j2:35
+#: talermerchantdemos/templates/landing-base.html.j2:35
 #, fuzzy
 msgid "Here you can try out the GNU Taler payment system using a toy currency."
 msgstr "您可以在這裡嘗試使用toy currency來使用GNU Taler付款系統。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:4
+#: talermerchantdemos/templates/landing-index.html.j2:4
 msgid "Step 1: Install the Taler wallet"
 msgstr "步驟一: 安裝Taler wallet"
 
-#: talermerchantdemos/landing/templates/index.html.j2:7
+#: talermerchantdemos/templates/landing-index.html.j2:7
 #, fuzzy
 msgid "Install the wallet from the <a href=\"{link}\">installation page</a>."
 msgstr "從 <a href=\"{link}\">安裝頁面</a>安裝錢包。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:8
+#: talermerchantdemos/templates/landing-index.html.j2:8
 #, fuzzy
 msgid "Installation only takes one click."
 msgstr "一鍵安裝。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:12
+#: talermerchantdemos/templates/landing-index.html.j2:12
 #, fuzzy
 msgid ""
 "After installation, you may be asked to grant the browser-based Taler "
@@ -484,71 +511,71 @@ msgid ""
 " experience."
 msgstr "在安裝完成之後,為了提升您的使用體驗,您可能會被要求提供瀏覽器基礎的Taler wallet額外、非強制的權限。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:13
+#: talermerchantdemos/templates/landing-index.html.j2:13
 #, fuzzy
 msgid ""
 "These permissions will allow the wallet to automatically open if a page "
 "asks for a Taler payment."
 msgstr "這些權限許可會在頁面要求使用Taler payment錢包時,允許錢包自動被開啟。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:14
+#: talermerchantdemos/templates/landing-index.html.j2:14
 #, fuzzy
 msgid ""
 "Regardless of the permissions you grant, the wallet will never transmit "
 "information about you or your browsing history to anyone."
 msgstr "除了您允許的權限以外,Tatler Wallet永遠不會將關於您瀏覽紀錄的資訊傳送給任何人。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:19
+#: talermerchantdemos/templates/landing-index.html.j2:19
 msgid "Step 2: Withdraw coins"
 msgstr "步驟二: 提款"
 
-#: talermerchantdemos/landing/templates/index.html.j2:22
+#: talermerchantdemos/templates/landing-index.html.j2:22
 #, fuzzy
 msgid "In this demo you are paying with {currency}, an imaginary currency."
 msgstr "這是一個您使用{currency}(一個假想貨幣)付款的demo。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:23
+#: talermerchantdemos/templates/landing-index.html.j2:23
 #, fuzzy
 msgid ""
 "To withdraw {currency} coins you must first create an account at our <a "
 "href=\"{bank}\">bank</a>."
 msgstr "您需要先在我們的 <a href=\"{bank}\">銀行</a>建立一個帳號以提取 {currency}貨幣。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:24
+#: talermerchantdemos/templates/landing-index.html.j2:24
 #, fuzzy
 msgid "Signing up only requires you to pick a username and password."
 msgstr "只需選擇您的使用者名稱以及密碼即可註冊。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:25
+#: talermerchantdemos/templates/landing-index.html.j2:25
 #, fuzzy
 msgid ""
 "When you create an account at our bank, you will be credited 100 "
 "{currency} for signing up."
 msgstr "在您於我們的銀行建立一個帳號之後,您會獲得100 {currency}。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:26
+#: talermerchantdemos/templates/landing-index.html.j2:26
 #, fuzzy
 msgid ""
 "Afterwards, use the bank's Web interface to authorize the transfer of "
 "{currency} to your wallet."
 msgstr "在這之後,使用銀行的網頁介面來授權{currency} 轉帳至您的錢包。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:30
+#: talermerchantdemos/templates/landing-index.html.j2:30
 msgid ""
 "Once you have completed this step, you can click on the Taler icon in "
 "your browser to check your balance."
 msgstr "在完成這個步驟之後,您可以在瀏覽器中點選Taler 圖標來檢視您的帳戶餘額。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:35
+#: talermerchantdemos/templates/landing-index.html.j2:35
 msgid "Step 3: Pay"
 msgstr "步驟三: 付款"
 
-#: talermerchantdemos/landing/templates/index.html.j2:38
+#: talermerchantdemos/templates/landing-index.html.j2:38
 #, fuzzy
 msgid "We have two demo merchants where you can spend your coins:"
 msgstr "您可以在我們的兩個demo merchants使用您的貨幣:"
 
-#: talermerchantdemos/landing/templates/index.html.j2:44
+#: talermerchantdemos/templates/landing-index.html.j2:44
 #, fuzzy
 msgid ""
 "At the <a href=\"{blog}\">essay store</a> you can pay in {currency} for "
@@ -558,101 +585,67 @@ msgstr ""
 "在 <a href=\"{blog}\">文章商店</a>,您可以使用{currency}來購買Richard Stallman的&#39;書籍 "
 "&quot;Free Software, Free Society&quot;的獨立章節。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:45
+#: talermerchantdemos/templates/landing-index.html.j2:45
 #, fuzzy
 msgid "The book is also available for free at <a href=\"{fsf}\">the FSF</a>."
 msgstr "您也可以在<a href=\"{fsf}\">the FSF</a>免費參閱此書。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:50
+#: talermerchantdemos/templates/landing-index.html.j2:50
 msgid ""
 "At the project <a href=\"{donations}\">donation website</a> you can show "
 "respect to a software project of your choice by donating {currency} to "
 "them."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:56
+#: talermerchantdemos/templates/landing-index.html.j2:56
 #, fuzzy
 msgid "Step 4: Check money flow"
 msgstr "步驟四: 檢查資金流量"
 
-#: talermerchantdemos/landing/templates/index.html.j2:59
+#: talermerchantdemos/templates/landing-index.html.j2:59
 msgid ""
 "You can see the wire transfers from the escrow account of the exchange to"
 " the merchants on the <a href=\"{bank}/public-accounts\">public accounts "
 "page</a> of the bank."
 msgstr ""
 
-#: talermerchantdemos/landing/templates/index.html.j2:60
+#: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
 "Note that only accounts configured to be publicly viewable are shown on "
 "that page."
 msgstr "請注意,只有被設定為公開檢視的帳號會顯示在此頁面。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:65
+#: talermerchantdemos/templates/landing-index.html.j2:65
 msgid "Step 5: Survey"
 msgstr "步驟五: 問卷調查"
 
-#: talermerchantdemos/landing/templates/index.html.j2:68
+#: talermerchantdemos/templates/landing-index.html.j2:68
 #, fuzzy
 msgid "Websites can give tips to visitors for completing tasks."
 msgstr "這些網站可以提供指點予訪客以完成任務。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:69
+#: talermerchantdemos/templates/landing-index.html.j2:69
 #, fuzzy
 msgid ""
 "You can earn some {currency} coins by filling in our <a "
 "href=\"{url}\">survey</a>."
 msgstr "您可以透過填寫我們的 <a href=\"{url}\">問卷調查</a>以獲得一些{currency}貨幣。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:81
+#: talermerchantdemos/templates/landing-index.html.j2:81
 #, fuzzy
 msgid "Step 6: Reach out to us"
 msgstr "步驟六: 與我們聯絡"
 
-#: talermerchantdemos/landing/templates/index.html.j2:84
+#: talermerchantdemos/templates/landing-index.html.j2:84
 #, fuzzy
 msgid "We appreciate feedback about Taler and this demonstrator."
 msgstr "謝謝您對於Taler 和此示範的回饋。"
 
-#: talermerchantdemos/landing/templates/index.html.j2:85
+#: talermerchantdemos/templates/landing-index.html.j2:85
 #, fuzzy
 msgid "Let us know what you think by <a href=\"{link}\">contacting us</a>."
 msgstr "<a href=\"{link}\">聯絡我們</a>並讓我們知道您的想法。"
 
-#: talermerchantdemos/survey/templates/base.html.j2:20
-msgid "GNU Taler Demo: Survey"
-msgstr "GNU Taler Demo: 問卷調查"
-
-#: talermerchantdemos/survey/templates/base.html.j2:32
-msgid "Survey"
-msgstr "問卷調查"
-
-#: talermerchantdemos/survey/templates/base.html.j2:34
-#, fuzzy
-msgid "This page demonstrates how to tip visitors for completing small tasks."
-msgstr "這個頁面展示了如何給予小費予完成任務的訪客。"
-
-#: talermerchantdemos/survey/templates/base.html.j2:35
-#, fuzzy
-msgid ""
-"Tipping is a way for offer cash rewards that go directly into a user's "
-"wallet."
-msgstr "給予小費是一種直接提供現金回饋至使用者錢包的方式。"
-
-#: talermerchantdemos/survey/templates/index.html.j2:6
-msgid ""
-"Please participate in our survey about payment systems and receive a tip "
-"in return."
-msgstr "請參與我們關於支付系統的問卷調查以獲得小費。"
-
-#: talermerchantdemos/survey/templates/index.html.j2:12
-msgid "Which payment system do you prefer?"
-msgstr "請問您偏好哪個支付系統?"
-
-#: talermerchantdemos/survey/templates/index.html.j2:23
-msgid "Submit Survey"
-msgstr "提交問卷"
-
 #~ msgid "English [en]"
 #~ msgstr "英語 [en]"
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]