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: bank link: lang as a


From: gnunet
Subject: [taler-taler-merchant-demos] branch master updated: bank link: lang as a URI param
Date: Wed, 02 Nov 2022 12:37:16 +0100

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

ms pushed a commit to branch master
in repository taler-merchant-demos.

The following commit(s) were added to refs/heads/master by this push:
     new c834026  bank link: lang as a URI param
c834026 is described below

commit c83402620747df3de535d1f78e99f5a08593f4d2
Author: MS <ms@taler.net>
AuthorDate: Wed Nov 2 12:35:42 2022 +0100

    bank link: lang as a URI param
---
 talermerchantdemos/templates/common-base.html.j2   |   2 +-
 .../translations/ar/LC_MESSAGES/messages.po        | 187 +++++++++++++-------
 .../translations/de/LC_MESSAGES/messages.po        | 186 +++++++++++++-------
 .../translations/en/LC_MESSAGES/messages.po        | 169 ++++++++++++------
 .../translations/es/LC_MESSAGES/messages.po        | 182 +++++++++++++-------
 .../translations/fr/LC_MESSAGES/messages.po        | 176 +++++++++++++------
 .../translations/hi/LC_MESSAGES/messages.po        | 169 ++++++++++++------
 .../translations/it/LC_MESSAGES/messages.po        | 185 +++++++++++++-------
 .../translations/ja/LC_MESSAGES/messages.po        | 169 ++++++++++++------
 .../translations/ko/LC_MESSAGES/messages.po        | 169 ++++++++++++------
 talermerchantdemos/translations/messages.pot       | 148 ++++++++++------
 .../translations/pt/LC_MESSAGES/messages.po        | 188 ++++++++++++++-------
 .../translations/ru/LC_MESSAGES/messages.po        | 173 +++++++++++++------
 .../translations/sv/LC_MESSAGES/messages.po        | 171 +++++++++++++------
 .../translations/tr/LC_MESSAGES/messages.po        | 174 +++++++++++++------
 .../translations/zh_Hant/LC_MESSAGES/messages.po   | 171 +++++++++++++------
 16 files changed, 1796 insertions(+), 823 deletions(-)

diff --git a/talermerchantdemos/templates/common-base.html.j2 
b/talermerchantdemos/templates/common-base.html.j2
index be2bbfa..0964c9c 100644
--- a/talermerchantdemos/templates/common-base.html.j2
+++ b/talermerchantdemos/templates/common-base.html.j2
@@ -56,7 +56,7 @@
     <a href="{{ env('TALER_ENV_URL_INTRO', '#') + getlang() + '/' }}"
              {% if getactive() == 'landing' %} class="active" {% endif %}
             >{{gettext("Introduction")}}</a>
-    <a href="{{ env('TALER_ENV_URL_BANK', '#') + getlang() + '/' }}"
+    <a href="{{ env('TALER_ENV_URL_BANK', '#') + '?lang=' + getlang() }}"
              {% if getactive() == 'bank' %} class="active" {% endif %}
             >{{gettext("Bank")}}</a>
     <a href="{{ env('TALER_ENV_URL_MERCHANT_BLOG', '#') + getlang() + '/' }}"
diff --git a/talermerchantdemos/translations/ar/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/ar/LC_MESSAGES/messages.po
index 35060d2..2dc71cd 100644
--- a/talermerchantdemos/translations/ar/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/ar/LC_MESSAGES/messages.po
@@ -7,95 +7,147 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-10-18 16:26+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
-"Language-Team: Arabic <https://weblate.taler.net/projects/gnu-taler/";
-"demonstration-pages/ar/>\n"
 "Language: ar\n"
+"Language-Team: Arabic <https://weblate.taler.net/projects/gnu-taler";
+"/demonstration-pages/ar/>\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : "
+"n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.13.1\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
 
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "خطأ داخلي"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "تعذر استرداد المقالة غير المدفوعة"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "المقال غير قابل للاسترداد بعد الآن"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "لم تقم بالدفع لهذا المقال (محاولة جيدة!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "المقال غير قابل للاسترداد (بعد الآن)"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "خطأ داخلي: ملفات المقال ({}) غير موجودة."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "الملف الإضافي ({}) للمقال ({}) غير موجود."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "الدخول المباشر غير مسموح"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "خطأ في الserver الداخلي"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "الصفحة غير موجودة"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "المَعلَمة '{}' مطلوبة"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "لم نتمكن من إنشاء اتصال مع الشبكة الخلفية"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "تعذر تحليل الاستجابة من الخلفية"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "عادت الخلفية لحالة الخطأ"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "تعذر تحليل الاستجابة من الخلفية"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+#, fuzzy
+msgid "GNU Taler Demo"
+msgstr "العرض التجريبي لنظام الدفع Taler"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "طريقة HTTP غير مسموح بها لهذه الصفحة"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -179,7 +231,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr "ستتمكن من استرجاع مدفوعاتك عن طريق المحفظة التي استخدمتها سابقًا 
للدفع."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "طلب استرجاع"
 
@@ -213,7 +265,7 @@ msgstr "إشارة تراكمية:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "متجر المقالات: برمجيات حرة، مجتمع حر"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -221,7 +273,7 @@ msgstr ""
 "هذه هي النسخة الاحدث من <cite> برمجيات حرة، مجتمع حر; مقالات مختارة "
 "لريتشارد م. ستالمان.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -235,65 +287,59 @@ msgstr ""
 "التصديق على الترجمة من قبل منظمة البرمجيات الحرة وحقوق النشر وهذا الحق "
 "محفوظ لجميع النسخ."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "فصول"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "اضغط على الفصل لشراءه مع GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 #, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "يمكنك الحصول على أموال إلكترونية مجانية لشراء مقالات من هذه الصفحة في <a "
 "href=\"{}\")\"> المصرف </a>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "ادفع لقراءة المزيد..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "لا يوجد مقالات متوفرة بهذه اللغة."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-#, fuzzy
-msgid "GNU Taler Demo"
-msgstr "العرض التجريبي لنظام الدفع Taler"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "مقدمة"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "بنك"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "متجر المقالات"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "تبرعات"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "استطلاع الآراء"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"يمكن التعرف اكثر على GNU Taler من خلال <a href=\"{site}\">موقعنا الرئيسي "
-"</a>."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -407,15 +453,15 @@ msgstr ""
 "يُرجى تحديد مشروع، ومبلغ (*) ال {currency} الذي ترغب في التبرع به، وإدخال"
 " اسم المتبرع الذي سيظهر في إيصالك:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "متبرع مجهول الاسم"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "تبرع!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -571,8 +617,8 @@ msgid ""
 " the merchants on the <a href=\"{bank}\">public accounts page</a> of the "
 "bank."
 msgstr ""
-"يمكنك الاطلاع على الحوالات المصرفية من حساب شركة الصرافة المعلق بشرط للتجار "
-"في <a href=\"{bank}\">صفحة الحسابات العامة</a> للمصرف."
+"يمكنك الاطلاع على الحوالات المصرفية من حساب شركة الصرافة المعلق بشرط "
+"للتجار في <a href=\"{bank}\">صفحة الحسابات العامة</a> للمصرف."
 
 #: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
@@ -634,11 +680,11 @@ msgid ""
 "in return."
 msgstr "يرجى المشاركة في استطلاعنا حول أنظمة الدفع والحصول على معلومات في 
المقابل."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "أي أنظمة الدفع تفضل؟"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "إرسال استطلاع الآراء"
 
@@ -668,3 +714,22 @@ msgstr "إرسال استطلاع الآراء"
 
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "النسخة التجريبية لنظام GNU Taler Demo: استطلاع الآراء"
+
+#~ msgid "Bank"
+#~ msgstr "بنك"
+
+#~ msgid "Essay Shop"
+#~ msgstr "متجر المقالات"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "استطلاع الآراء"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "يمكن التعرف اكثر على GNU Taler من"
+#~ " خلال <a href=\"{site}\">موقعنا الرئيسي "
+#~ "</a>."
+
diff --git a/talermerchantdemos/translations/de/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/de/LC_MESSAGES/messages.po
index 45d34fe..4f1c09f 100644
--- a/talermerchantdemos/translations/de/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/de/LC_MESSAGES/messages.po
@@ -5,97 +5,148 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: taler-merchant-demos\n"
+"Project-Id-Version:  taler-merchant-demos\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-10-18 16:26+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
-"Language-Team: German <https://weblate.taler.net/projects/gnu-taler/";
-"demonstration-pages/de/>\n"
 "Language: de\n"
+"Language-Team: German <https://weblate.taler.net/projects/gnu-taler";
+"/demonstration-pages/de/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.13.1\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
 
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Interner Fehler"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr ""
 "Den Kaufpreis eines Artikels, der nicht bezahlt wurde, können wir nicht "
 "erstatten"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "Den Kaufpreis für diesen Aufsatz können wir leider nicht mehr 
erstatten"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Für diesen Aufsatz wurde noch kein Kaufpreis entrichtet"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Dieser Artikel kann nicht (mehr) erstattet werden"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Interner Fehler: Die Datei für diesen Aufsatz ({}) wurden nicht 
gefunden."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Die Zusatzdatei ({}) für den Artikel ({}) wurde nicht gefunden."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Direktzugriff verboten"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Interner Server-Fehler"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Seite nicht gefunden"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "Parameter '{}' erforderlich"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "Das Backend konnte die Bestellung nicht erzeugen"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Es war nicht möglich, eine Verbindung zum Backend aufzubauen"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 msgid "Could not parse the response from backend"
 msgstr "Es war nicht möglich, die Rückmeldung des Backend zu parsen"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Das Backend lieferte einen Fehlerstatus zurück"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Es war nicht möglich, die Rückmeldung des Backend zu parsen"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler Demo"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "Die HTTP-Methode ist auf dieser Webseite nicht erlaubt"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -192,7 +243,7 @@ msgstr ""
 "Sie können eine Erstattung nur in das Wallet zurückgebucht bekommen, aus "
 "dem die Zahlung für den Aufsatz erfolgte."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Erstattungsanfrage"
 
@@ -228,7 +279,7 @@ msgstr ""
 "Buchhandlung: Die Aufsatzsammlung ‘Free Software, Free Society‘ im GNU "
 "Taler Demo-Shop"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -236,7 +287,7 @@ msgstr ""
 "Hier befindet sich die jüngste Ausgabe von Aufsätzen aus <cite>Free "
 "Software, Free Society: Selected Essays of Richard M. Stallman.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -254,66 +305,62 @@ msgstr ""
 " (genauer: Copyleft) und damit die vorliegende Erlaubnis auf allen "
 "weiteren Kopien des Werks erhalten bleibt."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Die Aufsätze"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr ""
 "Mit einem Klick auf einzelne Aufsätze kauft man diese in der "
 "Phantasiewährung über das Bezahlsystem GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Durch den Besuch der <a href=\"{}\")\">Bank</a> kann man veranlassen, "
 "dass neue Coins ins Wallet abgehoben werden, falls man keine mehr haben "
 "sollte."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Nach dem Zahlen kann man hier weiterlesen..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Es sind keine Aufsätze in dieser Sprache verfügbar."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler Demo"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Einführung"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Bank"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Buchhandlung"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Spenden"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Tipping/Umfrage"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"Alles Wissenswerte zu GNU Taler gibt es auf unseren <a "
-"href=\"{site}\">Webseiten</a>."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -447,15 +494,15 @@ msgstr ""
 "fiktiven) Spendernamen ein, der auf der Quittung stehen soll. Zum "
 "Auslösen der Spendenbuchung klickt man auf den Button:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Anonymer Spender"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Spenden!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -634,8 +681,8 @@ msgid ""
 " the merchants on the <a href=\"{bank}\">public accounts page</a> of the "
 "bank."
 msgstr ""
-"In den <a href=\"{bank}\">öffentlich sichtbaren Konten</a> der Bank sind die "
-"Überweisungen vom Treuhandkonto des Exchange an die Bankkonten der "
+"In den <a href=\"{bank}\">öffentlich sichtbaren Konten</a> der Bank sind "
+"die Überweisungen vom Treuhandkonto des Exchange an die Bankkonten der "
 "Zahlungsempfänger aufgelistet."
 
 #: talermerchantdemos/templates/landing-index.html.j2:60
@@ -715,11 +762,11 @@ 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/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Welches Bezahlsystem bevorzugen Sie?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Antwort abschicken"
 
@@ -976,3 +1023,22 @@ msgstr "Antwort abschicken"
 
 #~ msgid "GNU Taler Demo: Introduction"
 #~ msgstr "GNU Taler Demo: Einführung"
+
+#~ msgid "Bank"
+#~ msgstr "Bank"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Buchhandlung"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Tipping/Umfrage"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Alles Wissenswerte zu GNU Taler gibt "
+#~ "es auf unseren <a "
+#~ "href=\"{site}\">Webseiten</a>."
+
diff --git a/talermerchantdemos/translations/en/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/en/LC_MESSAGES/messages.po
index 8d96ed7..19e7c0e 100644
--- a/talermerchantdemos/translations/en/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language: en\n"
@@ -12,82 +12,134 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 msgid "Could not parse the response from backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr ""
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr ""
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -163,7 +215,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr ""
 
@@ -197,13 +249,13 @@ msgstr ""
 msgid "Essay Shop: Free Software, Free Society"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -213,55 +265,51 @@ msgid ""
 "copyright notice and this permission notice are preserved on all copies."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr ""
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
 msgid "Essay Shop"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
@@ -365,15 +413,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -563,11 +611,11 @@ msgid ""
 "in return."
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr ""
 
@@ -1896,3 +1944,24 @@ msgstr ""
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr ""
 
+#~ msgid ""
+#~ "You can get free, virtual money to"
+#~ " buy articles on this page at "
+#~ "the <a href=\"{}\")\">bank</a>."
+#~ msgstr ""
+
+#~ msgid "Bank"
+#~ msgstr ""
+
+#~ msgid "Essay Shop"
+#~ msgstr ""
+
+#~ msgid "Tipping/Survey"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+
diff --git a/talermerchantdemos/translations/es/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/es/LC_MESSAGES/messages.po
index 14fc471..a2471e4 100644
--- a/talermerchantdemos/translations/es/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/es/LC_MESSAGES/messages.po
@@ -7,94 +7,145 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-10-24 10:57+0000\n"
 "Last-Translator: Sebastian Marchano <sebasjm@gmail.com>\n"
-"Language-Team: Spanish <https://weblate.taler.net/projects/gnu-taler/";
-"demonstration-pages/es/>\n"
 "Language: es\n"
+"Language-Team: Spanish <https://weblate.taler.net/projects/gnu-taler";
+"/demonstration-pages/es/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.13.1\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Error interno"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "No se puede realizar el reembolso de un artículo no pagado"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "El artículo ya no es reembolsable"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "No has pagado por este artículo (¡buen intento!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Artículo no reembolsable"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Error interno: Archivos para el artículo ({}) no encontrados."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Archivo complementario ({}) para el artículo ({}) no encontrado."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Acceso directo prohibido"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Error interno de servidor"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Página no encontrada"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "parámetro '{}' requerido"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "El backend no ha podido crear el pedido"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "No se puede establecer la conexión con el backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "No se puede analizar la respuesta del backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "El backend ha retornado un estado de error"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "No se puede analizar la respuesta del backend"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "Demostración GNU Taler"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "El método HTTP no está permitido para esta página"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -179,7 +230,7 @@ msgstr ""
 "Solo será posible conseguir el reembolso en la misma cartera utilizada en"
 " principio para pagar."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Solicitud de reembolso"
 
@@ -213,7 +264,7 @@ msgstr "Seguimiento de Pila:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Tienda de libros: Software Libre, Sociedad Libre"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -221,7 +272,7 @@ msgstr ""
 "Esta es la última edición <cite>Software Libre, Sociedad Libre: Ensayos "
 "seleccionados de Richard M. Stallman.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -238,63 +289,59 @@ msgstr ""
 "Software Foundation y el aviso de derechos de autor y este aviso de "
 "permiso sean preservados en todas las copias."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Capítulos"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "Haz clic en cada capítulo para comprarlo con GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Puedes conseguir dinero virtual gratis para comprar artículos en esta "
 "página en el <a href=\"{}\")\">banco</a>."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Pagar para leer más..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "No hay artículos disponibles en este idioma."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "Demostración GNU Taler"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Introducción"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Banco"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Tienda de libros"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Donaciones"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Consejos/Encuestas"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"Puedes entender más sobre GNU Taler en nuestra <a href=\"{site}\">página "
-"principal</a>."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -420,15 +467,15 @@ msgstr ""
 "Por favor selecciona un proyecto, la cantidad (*) de {currency} que "
 "deseas donar, e inserta el nombre del donante que aparecerá en tu recibo:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Donante anónimo"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Donar!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -668,11 +715,11 @@ msgstr ""
 "Por favor participa en nuestra encuesta sobrelos sistemas de pago y "
 "recibe un consejo a cambio."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "¿Que sistema de pago prefieres?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Enviar Encuesta"
 
@@ -716,3 +763,22 @@ msgstr "Enviar Encuesta"
 
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Taler Demo: Encuesta"
+
+#~ msgid "Bank"
+#~ msgstr "Banco"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Tienda de libros"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Consejos/Encuestas"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Puedes entender más sobre GNU Taler "
+#~ "en nuestra <a href=\"{site}\">página "
+#~ "principal</a>."
+
diff --git a/talermerchantdemos/translations/fr/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/fr/LC_MESSAGES/messages.po
index d09086a..85f09bb 100644
--- a/talermerchantdemos/translations/fr/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-02-11 13:46+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: fr\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Erreur interne"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Impossible de rembourser l'article non payé"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "L'article n'est plus remboursable"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Vous n'avez pas payé pour cet article (bien essayé !)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Article non remboursable (plus)"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Erreur interne : Fichiers pour l'article ({}) non trouvés."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Fichier supplémentaire ({}) pour l'article ({}) non trouvé."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Accès direct interdit"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Erreur interne du serveur"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Page non trouvée"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "paramètre '{}' obligatoire"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "Le backend n'a pas pu créer la commande"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Impossible d'établir une connexion avec le backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Impossible d'analyser la réponse du backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Le backend a renvoyé un statut d'erreur"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Impossible d'analyser la réponse du backend"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "Demo de GNU Taler"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "Méthode HTTP non autorisée pour cette page"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -182,7 +234,7 @@ msgstr ""
 "Vous ne pourrez recevoir le remboursement que sur le même portefeuille "
 "que celui que vous avez utilisé pour payer cet article à l'origine."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Demandez un remboursement"
 
@@ -216,7 +268,7 @@ msgstr "Trace de la pile :"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Essay Shop : Logiciel libre, société libre"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -224,7 +276,7 @@ msgstr ""
 "Il s'agit de la dernière édition de <cite>Free Software, Free Society : "
 "Essais choisis de Richard M. Stallman.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -241,63 +293,59 @@ msgstr ""
 "par la Free Software Foundation et que la notice de copyright et cette "
 "notice d'autorisation soient préservées sur toutes les copies."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Chapitres"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "Cliquez sur un des chapitres pour l'acheter avec GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Vous pouvez obtenir gratuitement de l'argent virtuel pour acheter des "
 "articles sur cette page à la <a href=\"{}\")\">banque</a>."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Payer pour en savoir plus..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Aucun article disponible dans cette langue."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "Demo de GNU Taler"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Introduction"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Banque"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
-msgstr "Boutique de test"
+msgstr "Boutique d'essai"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Dons"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Conseils/Sondage"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"Vous pouvez en savoir plus sur GNU Taler sur notre principal <a "
-"href=\"{site}\">site web</a>."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -422,15 +470,15 @@ msgstr ""
 "souhaitez donner, et saisir le nom du donateur qui apparaîtra sur votre "
 "reçu :"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Donateur anonyme"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Faites un don !"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -678,11 +726,11 @@ msgstr ""
 "Participez à notre enquête sur les systèmes de paiement et recevez un "
 "pourboire en retour."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Quel système de paiement préférez-vous ?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Soumettre une enquête"
 
@@ -721,3 +769,21 @@ msgstr "Soumettre une enquête"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "Démo de GNU Taler : Enquête"
 
+#~ msgid "Bank"
+#~ msgstr "Banque"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Boutique de test"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Conseils/Sondage"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Vous pouvez en savoir plus sur GNU"
+#~ " Taler sur notre principal <a "
+#~ "href=\"{site}\">site web</a>."
+
diff --git a/talermerchantdemos/translations/hi/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/hi/LC_MESSAGES/messages.po
index 8c67b06..9b8c0f3 100644
--- a/talermerchantdemos/translations/hi/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language: hi\n"
@@ -16,82 +16,134 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 msgid "Could not parse the response from backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr ""
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr ""
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -167,7 +219,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr ""
 
@@ -201,13 +253,13 @@ msgstr ""
 msgid "Essay Shop: Free Software, Free Society"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -217,55 +269,51 @@ msgid ""
 "copyright notice and this permission notice are preserved on all copies."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr ""
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
 msgid "Essay Shop"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
@@ -369,15 +417,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -567,11 +615,11 @@ msgid ""
 "in return."
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr ""
 
@@ -619,3 +667,24 @@ msgstr ""
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr ""
 
+#~ msgid ""
+#~ "You can get free, virtual money to"
+#~ " buy articles on this page at "
+#~ "the <a href=\"{}\")\">bank</a>."
+#~ msgstr ""
+
+#~ msgid "Bank"
+#~ msgstr ""
+
+#~ msgid "Essay Shop"
+#~ msgstr ""
+
+#~ msgid "Tipping/Survey"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+
diff --git a/talermerchantdemos/translations/it/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/it/LC_MESSAGES/messages.po
index 4b01294..8aab01e 100644
--- a/talermerchantdemos/translations/it/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/it/LC_MESSAGES/messages.po
@@ -7,94 +7,146 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-10-18 16:26+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
-"Language-Team: Italian <https://weblate.taler.net/projects/gnu-taler/";
-"demonstration-pages/it/>\n"
 "Language: it\n"
+"Language-Team: Italian <https://weblate.taler.net/projects/gnu-taler";
+"/demonstration-pages/it/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.13.1\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Errore interno"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Impossibile rimborsare un articolo non pagato"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "L'articolo non è più rimborsabile"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Non hai pagato questo articolo (bel tentativo!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Articolo non (più) rimborsabile"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Errore interno: File per l'articolo ({}) non trovati."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "File supplementare ({}) per l'articolo ({}) non trovato."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Accesso diretto vietato"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Errore del server"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Pagina non trovata"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "parametro '{}' richiesto"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Impossibile stabilire la connessione al backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Impossibile analizzare la risposta del backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Il backend ha segnalato uno stato di errore"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Impossibile analizzare la risposta del backend"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+#, fuzzy
+msgid "GNU Taler Demo"
+msgstr "Taler Demo"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "Il metodo HTTP non è permesso in questa pagina"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -186,7 +238,7 @@ msgstr ""
 "Sarà possibile avere il rimborso solo nello stesso portafoglio utilizzato"
 " originariamente per pagare."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Richiesta di rimborso"
 
@@ -220,7 +272,7 @@ msgstr "Traccia dello stack:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Negozio di saggistica: Software libero, società libera"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -228,7 +280,7 @@ msgstr ""
 "Questa è l'ultima edizione di <cite>Software libero, società libera: "
 "Saggi selezionati di Richard M. Stallman.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -244,63 +296,59 @@ msgstr ""
 "traduzione venga approvata dalla Free Software Foundation e il rispetto "
 "del copyright e di questo permesso siano preservati in tutte le copie."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Capitoli"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "Clicca su un capitolo per comprarlo con GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 #, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Puoi avere denaro virtuale per comprare articoli in questa pagina <a "
 "href=\"{}\")\">banca</a>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Paga per leggere di più..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Nessun articolo disponibile in questa lingua."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-#, fuzzy
-msgid "GNU Taler Demo"
-msgstr "Taler Demo"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Introduzione"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Banca"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Negozio di saggistica"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Donazioni"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Dare la mancia/Sondaggio"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
-msgstr "Puoi saperne di più su GNU Taler sul nostro <a 
href=\"{site}\">sito</a>."
+msgstr ""
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -422,15 +470,15 @@ msgstr ""
 "Per favore seleziona un progetto, quanti (*) {currency} desideri donare, "
 "e inserisci il nome del donatore che apparirà sulla tua ricevuta:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Donatore anonimo"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Dona!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -596,7 +644,8 @@ msgid ""
 "bank."
 msgstr ""
 "Puoi vedere i bonifici bancari dal conto fiduciario dell'exchange ai "
-"venditori sulla <a href=\"{bank}\">pagina dei conti pubblici</a> della banca."
+"venditori sulla <a href=\"{bank}\">pagina dei conti pubblici</a> della "
+"banca."
 
 #: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
@@ -664,11 +713,11 @@ msgstr ""
 "Per favore partecipa al nostro sondaggio sul sistema di pagamenti e "
 "ricevi una mancia in cambio."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Che sistema di pagamento preferisci?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Invia sondaggio"
 
@@ -698,3 +747,21 @@ msgstr "Invia sondaggio"
 
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Taler Demo: Sondaggio"
+
+#~ msgid "Bank"
+#~ msgstr "Banca"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Negozio di saggistica"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Dare la mancia/Sondaggio"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Puoi saperne di più su GNU Taler"
+#~ " sul nostro <a href=\"{site}\">sito</a>."
+
diff --git a/talermerchantdemos/translations/ja/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/ja/LC_MESSAGES/messages.po
index bfe951b..5f82e58 100644
--- a/talermerchantdemos/translations/ja/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-02-22 21:41+0000\n"
 "Last-Translator: Mizuhashi Lexee <nekohamushi@outlook.jp>\n"
 "Language: ja\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
 
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "内部エラー"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "未払いの記事の返金はできません"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "記事はもう払い戻しできません"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "この記事のためにお金を払っていない (頑張った)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "(もはや)払い戻し不可な商品"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "内部エラー: 記事 ({}) のファイルが見つかりません。"
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "記事 ({}) の補足ファイル ({}) が見つかりません。"
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "直接アクセスは禁止されています"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "サーバー 内部エラー"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "ページが見つかりません"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "パラメータ「{}」が必要です"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "backendは注文を作成できませんでした"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "backendへのコネクションを確立することができませんでした"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "backendからの応答を解析することができませんでした"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Backend は、エラー・ステータスを返してきました"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "backendからの応答を解析することができませんでした"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler デモ"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "HTTPメソッドは、このページでは許可されていません"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -172,7 +224,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr "払い戻しは、この記事の最初の支払いに使用したのと同じウォレットでのみ受け取ることができます。"
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "払い戻しをリクエストする"
 
@@ -206,13 +258,13 @@ msgstr "スタックトレース:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "エッセイショップ:自由ソフトウェア、自由社会"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
 msgstr "これは、フリーソフトウェア、フリーソサエティの最新版です<cite>:リチャードMの選択されたエッセイ</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -222,59 +274,57 @@ msgid ""
 "copyright notice and this permission notice are preserved on all copies."
 msgstr 
"この通知が保存されていることを条件に、この本全体のコピーと配布は、どのような媒体でも、ロイヤリティーなしで、世界中で許可されています。翻訳がフリーソフトウェア財団によって承認され、著作権表示とこの許可表示がすべてのコピーに保存されていることを条件に、原文の英語から他の言語への本書の翻訳をコピーして配布することが許可されています。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "チャプター"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "個々の章をクリックして、GNUTalerで購入してください。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr "あなたは、このページの記事を購入するための無料の仮想通貨を<a href=\"{}\")\">銀行</a>で得ることができます。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "続きを読むために支払う..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "この言語で利用できる記事はありません。"
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler デモ"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "序章"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "銀行"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "エッセイショップ"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "寄付"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "チップ/調査"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
-msgstr "GNU Talerの詳細については、メインの<a href=\"{site}\">Webサイトをご覧ください</a>。"
+msgstr ""
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -374,15 +424,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr "寄付したいプロジェクトおよび{currency}の金額(*)を選択し、領収書に記載される寄付者名を入力してください。"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "匿名の寄付者"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "寄付しましょう!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -579,11 +629,11 @@ msgid ""
 "in return."
 msgstr "支払システムについてのアンケートに参加し、その代わりにチップをお受け取りください。"
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "どの支払システムがよいですか?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "アンケートを提出する"
 
@@ -614,3 +664,18 @@ msgstr "アンケートを提出する"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Talerデモ:アンケート"
 
+#~ msgid "Bank"
+#~ msgstr "銀行"
+
+#~ msgid "Essay Shop"
+#~ msgstr "エッセイショップ"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "チップ/調査"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr "GNU Talerの詳細については、メインの<a href=\"{site}\">Webサイトをご覧ください</a>。"
+
diff --git a/talermerchantdemos/translations/ko/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/ko/LC_MESSAGES/messages.po
index 2f05e8c..2e3a377 100644
--- a/talermerchantdemos/translations/ko/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/ko/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-04-16 07:04+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
 "Language: ko\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
 
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "내부 오류"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "미결제 기사는 환불할 수 없습니다"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "이 기사는 더이상 환불할 수 없습니다"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "이 기사를 구매하지 않았습니다(다시 시도하세요!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "환불 불가 상품(기간 만료)"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "내부 오류: 기사 ({}) 관련 파일들을 찾을 수 없습니다."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "기사 관련 ({}) 추가 파일을 ({}) 찾을 수 없습니다."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "직접 접속 불가능"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "내부 서버 오류"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "이 페이지를 찾을 수 없습니다"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "파라메터 '{}' 필요"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "백엔드와 연결을 하지 못하고 있습니다"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "백엔드의 응답을 분석할 수 없습니다"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "백엔드에 대한 오류 수신"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "백엔드의 응답을 분석할 수 없습니다"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler 데모"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "이 페이지에서는 HTTP가 유효하지 않습니다"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -172,7 +224,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr "환불은 기사 결제 시 사용됐던 계좌로만 받을 수 있습니다."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "환불 요청"
 
@@ -206,13 +258,13 @@ msgstr "스택 추적:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "에세이 샵: 자유 소프트웨어, 자유 사회"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
 msgstr "이 글은 <cite> 자유 소프트웨어, 자유 사회: 리차드 스톨만의 선정된 수필. </cite> 최신판입니다"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -224,59 +276,57 @@ msgstr ""
 "이 고지가 제공되는 한, 이 책은 로열티 없이 전세계적으로 복사 및 배포가 가능합니다. 한영 번역본 역시무료 소트웨어 재단에 허락 "
 "하에 제공된다는 고지와 저작권 표시만 있다면 복사 및 배포가 가능합니다."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "챕터들"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "각각의 챕터들을 클릭을 함과 동시에 GNU Taler 통해 구매하세요."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr "기사들을 구매할 수 있는 무료 가상 화폐를 이 페이지에서 <a href=\"{}\")\">bank</a> 드립니다."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "밑의 내용이 알고싶으시다면 구매하세요."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "해당 언어로 제공되는 기사들은 없습니다."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler 데모"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "소개"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "은행"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "에세이 샵"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "기부"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "팁 / 설문조사"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
-msgstr "GNU Taler에 대한 더 많은 정보는 메인 <a href=\"{site}\"> 사이트 </a> 에서 확인하실 수 있습니다."
+msgstr ""
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -382,15 +432,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr "기부하고 싶은 프로젝트, 기부 {currency} 액수, 그리고 영수증에 입력될 기부자 이름을 입력하세요:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "익명의 후원자"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "후원하세요!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -590,11 +640,11 @@ msgid ""
 "in return."
 msgstr "저희 결제 시스템에 대한 설문조사에 참여하시고 팁을 받아가세요."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "어떤 결제 시스템을 선호하시나요?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "설문조사 제출하기"
 
@@ -625,3 +675,18 @@ msgstr "설문조사 제출하기"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Taler 데모: 설문조사"
 
+#~ msgid "Bank"
+#~ msgstr "은행"
+
+#~ msgid "Essay Shop"
+#~ msgstr "에세이 샵"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "팁 / 설문조사"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr "GNU Taler에 대한 더 많은 정보는 메인 <a href=\"{site}\"> 사이트 </a> 에서 확인하실 수 
있습니다."
+
diff --git a/talermerchantdemos/translations/messages.pot 
b/talermerchantdemos/translations/messages.pot
index e173730..0a8ecf7 100644
--- a/talermerchantdemos/translations/messages.pot
+++ b/talermerchantdemos/translations/messages.pot
@@ -8,89 +8,141 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\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"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr ""
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr ""
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 msgid "Could not parse the response from backend"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr ""
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr ""
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr ""
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -166,7 +218,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr ""
 
@@ -200,13 +252,13 @@ msgstr ""
 msgid "Essay Shop: Free Software, Free Society"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -216,55 +268,51 @@ msgid ""
 "copyright notice and this permission notice are preserved on all copies."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr ""
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr ""
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
 msgid "Essay Shop"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
 msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
@@ -368,15 +416,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr ""
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -566,11 +614,11 @@ msgid ""
 "in return."
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr ""
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr ""
 
diff --git a/talermerchantdemos/translations/pt/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/pt/LC_MESSAGES/messages.po
index 3dae577..5fa9217 100644
--- a/talermerchantdemos/translations/pt/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/pt/LC_MESSAGES/messages.po
@@ -7,94 +7,146 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: eintritt@hotmail.com\n"
-"POT-Creation-Date: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-10-18 16:26+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
-"Language-Team: Portuguese <https://weblate.taler.net/projects/gnu-taler/";
-"demonstration-pages/pt/>\n"
 "Language: pt\n"
+"Language-Team: Portuguese <https://weblate.taler.net/projects/gnu-taler";
+"/demonstration-pages/pt/>\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.13.1\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Erro interno"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Não é possível reembolsar artigo por pagar"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "Já não é possível reembolsar artigo"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Não pagou este artigo (boa tentativa!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Artigo (já) não é reembolsável"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Erro interno: Não foram encontrados os ficheiros para o artigo ({})."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Não foi encontrado o ficheiro suplementar ({}) do artigo ({})."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Acesso direto proibido"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Erro interno do servidor"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Página não encontrada"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "necessário parâmetro '{}'"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr ""
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Não foi possível estabelecer uma ligação ao backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Não foi possível analisar a resposta do backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Backend apresentou um erro"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Não foi possível analisar a resposta do backend"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+#, fuzzy
+msgid "GNU Taler Demo"
+msgstr "Demonstração do Taler"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "Método HTTP não permitido para esta página"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -182,7 +234,7 @@ msgstr ""
 "Apenas poderá receber o reembolso com a mesma carteira que usou para "
 "pagar pelo artigo."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Pedir reembolso"
 
@@ -216,7 +268,7 @@ msgstr ""
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Loja de Ensaios: Free Software, Free Society"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -224,7 +276,7 @@ msgstr ""
 "Esta é a edição mais recente de <cite>Free Software, Free Society: "
 "Selected Essays of Richard M. Stallman.</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -241,65 +293,59 @@ msgstr ""
 " e a notificação de direitos de autor e esta nota de permissão sejam "
 "preservadas em todas as cópias."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Capítulos"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "Clique num capítulo individual para o comprar com o GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
 #, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Para comprar artigos nesta página, pode obter dinheiro virtual de forma "
 "gratuita no <a href=\"{}\")\">banco</a>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Pagar para ler mais..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Não há artigos disponíveis nesta língua."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-#, fuzzy
-msgid "GNU Taler Demo"
-msgstr "Demonstração do Taler"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Introdução"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Banco"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
-msgstr "Loja de Ensaios"
+msgstr "Loja de ensaios"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Doações"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Gorjeta/Inquérito"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"Pode aprender mais acerca do GNU Taler no nosso <a "
-"href=\"{site}\">site</a> principal."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -423,15 +469,15 @@ msgstr ""
 "Por favor selecione um projeto, a quantidade (*) de {currency} que deseja"
 " doar e insira o nome do doador que irá aparecer no seu recibo:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Doador Anónimo"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Faça uma doação!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -598,7 +644,8 @@ msgid ""
 "bank."
 msgstr ""
 "Pode ver as transferências bancárias da conta de depósito da troca aos "
-"comerciantes na <a href=\"{bank}\">página de contas públicas</a> do banco."
+"comerciantes na <a href=\"{bank}\">página de contas públicas</a> do "
+"banco."
 
 #: talermerchantdemos/templates/landing-index.html.j2:60
 msgid ""
@@ -666,11 +713,11 @@ msgstr ""
 "Por favor participe no nosso inquérito sobre sistemas de pagamento e, em "
 "troca, receba uma gorjeta."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Que sistema de pagamento prefere?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Submeter Inquérito"
 
@@ -700,3 +747,22 @@ msgstr "Submeter Inquérito"
 
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "Demonstração do GNU Taler: Inquérito"
+
+#~ msgid "Bank"
+#~ msgstr "Banco"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Loja de Ensaios"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Gorjeta/Inquérito"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Pode aprender mais acerca do GNU "
+#~ "Taler no nosso <a href=\"{site}\">site</a> "
+#~ "principal."
+
diff --git a/talermerchantdemos/translations/ru/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/ru/LC_MESSAGES/messages.po
index 2f71bc4..d35a613 100644
--- a/talermerchantdemos/translations/ru/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/ru/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-02-10 21:59+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: ru\n"
@@ -18,83 +18,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Внутренняя ошибка"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Возврат средств за неоплаченный товар невозможен"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "Товар более не подлежит возврату"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Вы не оплатили этот товар (Неплохая попытка!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Товар более не подлежит возврату"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Внутренняя ошибка. Файлы для товара ({}) не найдены."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Вспомогательный файл для товара не найден."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Прямой доступ запрещён"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Внутренняя ошибка сервера"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Страница не найдена"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "обязательный '{}'параметр"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "Бэкэнд не смог создать заказ"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Не удалось подключиться к бэкэнду"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Не удалось проанализировать ответ бэкэнда"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Бэкэнд вернул ошибку кода"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Не удалось проанализировать ответ бэкэнда"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "Демонстрация GNU Taler"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP-метод не разрешён для этой страницы"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -184,7 +236,7 @@ msgstr ""
 "Вы сможете получить возврат на тот же кошелёк, посредством которого "
 "оплачивали товар изначально."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Запросить возврат"
 
@@ -218,7 +270,7 @@ msgstr "Стек-трейс:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Демо-магазин «Cвободное ПО, свободное общество»"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -226,7 +278,7 @@ msgstr ""
 "Это новейшая версия сборника эссе Ричарда Мэттью Столлмана <cite>«Free "
 "Software, Free Society: Selected Essays of Richard M. Stallman».</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -243,65 +295,61 @@ msgstr ""
 "данное уведомление о разрешении и авторском праве сохранено на всех "
 "копиях сборника."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Главы"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr ""
 "Для того, чтобы приобрести интересующую вас главу через GNU Taler, "
 "нажмите на неё кнопкой «мыши»."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Для того, чтобы получить виртуальные деньги для оплаты товара бесплатно, "
 "перейдите на страницу <a href=\"{}\")\">Банк</a>."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Оплатить Читать далее..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Глав на этом языке не найдено."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "Демонстрация GNU Taler"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Введение"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Банк"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Демо-магазин"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Поддержать проект"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Опрос"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"Подробнее о GNU Taler можно прочитать на нашем <a "
-"href=\"{site}\">сайте</a>."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -432,15 +480,15 @@ msgstr ""
 "осуществляющего взнос, которое будет отображено в подтверждении о "
 "внесении средств:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Анонимный спонсор"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Внести добровольные средства!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -674,11 +722,11 @@ msgstr ""
 "Пожалуйста, примите участие в нашем опросе о платёжных системам и "
 "получите за это вознаграждение."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Какую платёжную систему вы предпочитаете?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Отправить"
 
@@ -709,3 +757,20 @@ msgstr "Отправить"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "Демоверсия GNU Taler: опрос"
 
+#~ msgid "Bank"
+#~ msgstr "Банк"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Демо-магазин"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Опрос"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "Подробнее о GNU Taler можно прочитать"
+#~ " на нашем <a href=\"{site}\">сайте</a>."
+
diff --git a/talermerchantdemos/translations/sv/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/sv/LC_MESSAGES/messages.po
index 88bfdae..d84ad79 100644
--- a/talermerchantdemos/translations/sv/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/sv/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-02-11 12:43+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language: sv\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Internt fel"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Obetald artikel kan ej återbetalas"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "Återbetalning är inte längre möjlig"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Du har inte betalt denna artikel (kul försök!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Återbetalning kan inte (längre) göras"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "Internt fel: Underlag för artikel ({}) hittades inte."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "Kompletterande information ({}) för artikel ({}) hittades inte."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Direkt åtkomst förbjuden"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "Internt serverfel"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Sidan hittades inte"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "parameter '{}' krävs"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "Backend kunde inte skapa beställningen"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Det gick inte att upprätta anslutning till backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Det gick inte att tolka svaret från backend"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Backend returnerade felstatus"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Det gick inte att tolka svaret från backend"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler Demo"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP-metoden är inte tillåten för den här sidan"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -182,7 +234,7 @@ msgstr ""
 "Du kommer bara att kunna få återbetalning till samma plånbok som du "
 "tidigare använt för att betala för den här artikeln."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Begär återbetalning"
 
@@ -216,7 +268,7 @@ msgstr "Stackspårning:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Artikel Shop: Fri programvara, Free Society"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -224,7 +276,7 @@ msgstr ""
 "Detta är den senaste upplagan av <cite>Free Software, Free Society: "
 "Selected Essays of Richard M</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -241,61 +293,59 @@ msgstr ""
 "upphovsrättsmeddelandet och detta tillståndsmeddelande bevaras i alla "
 "kopior."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Kapitel"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "Klicka på ett enskilt kapitel för att köpa det med GNU Taler."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Du kan få gratis, virtuella pengar för att köpa artiklar på den här sidan"
 " i <a href=\"{}\")\">banken</a>."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Betala för att läsa mer ..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Inga artiklar är tillgängliga på detta språk."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler Demo"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Inledning"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Bank"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Artiklar att köpa"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Donationer"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Enkät/Belöning"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
-msgstr "Du kan lära dig mer om GNU Taler på vår <a href=\"{site}\">webb</a> ."
+msgstr ""
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -417,15 +467,15 @@ msgstr ""
 "Välj ett projekt, beloppet (*) av {currency} som du vill donera och ange "
 "givarens namn som kommer att visas på ditt kvitto:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Anonym givare"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Donera!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -649,11 +699,11 @@ msgstr ""
 "Vänligen delta i vår undersökning om betalningssystem och få en slant i "
 "utbyte."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Vilket betalningssystem föredrar du?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Skicka in enkäten"
 
@@ -696,3 +746,18 @@ msgstr "Skicka in enkäten"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Taler Demo: Enkät"
 
+#~ msgid "Bank"
+#~ msgstr "Bank"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Artiklar att köpa"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Enkät/Belöning"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr "Du kan lära dig mer om GNU Taler på vår <a href=\"{site}\">webb</a> 
."
+
diff --git a/talermerchantdemos/translations/tr/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/tr/LC_MESSAGES/messages.po
index 525130a..8a10ed3 100644
--- a/talermerchantdemos/translations/tr/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/translations/tr/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2022-04-08 08:50+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
 "Language: tr\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
-
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "Iç hata"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "Ücreti ödenmemiş makalenin parası iade edilemez"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "Bu makalenin ücreti artık iade edilemez"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "Bu makale için ödeme yapmadınız (iyi deneme!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "Ürün iade edilemez (artık)"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "içsel hata: ({}) makalesi için dosyalar bulunamadı."
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "({}) makalesi için ek dosya ({}) bulunamadı."
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "Doğrudan erişim yasak"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "İç Sunucu Hatası"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "Sayfa bulunamadı"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "'{}' parametresi gerekli"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "Arka uç siparişi oluşturamadı"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "Arka uçla bağlantı kurulamadı"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "Arka uçtan gelen yanıt ayrıştırılamadı"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "Arka uç hata durumu verdi"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "Arka uçtan gelen yanıt ayrıştırılamadı"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler demonstrasyon"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "Bu sayfa için HTTP yöntemine izin verilmiyor"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -180,7 +232,7 @@ msgstr ""
 "Geri ödemeyi yalnızca bu makale için ödeme yaptığınız cüzdandan "
 "alabileceksiniz."
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "Geri iade iste"
 
@@ -214,7 +266,7 @@ msgstr "Stack trace:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "Deneme Dükkanı: Özgür Yazılım, Özgür Toplum"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -222,7 +274,7 @@ msgstr ""
 "Bu yayın, <cite>Richard M. Stallman’ın Özgür Toplum, Özgür Yazılım</cite>"
 " isimli kitabının son baskısıdır."
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -238,63 +290,59 @@ msgstr ""
 "Yazılın Vakfına onaylatılarak izin alınması ve işbu notun da içinde yer "
 "alması şartıyla serbesttir."
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "Bölümler"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "GNU Taler ile satın almak üzere, şeçtiğiniz bir bölüm üzerine 
tıklayınız."
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr ""
 "Bu sahifeden istediğiniz şeyleri satın almak üzere, <a "
 "href=\"{}\")\">banka</a>’dan bedavaya sanal para çekebilirsiniz."
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "Devamını okumak için ödeme yapın..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "Bu dilde makale bulunmamaktadır."
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler demonstrasyon"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "Tanıtım"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "Banka"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
 msgstr "Deneme Dükkanı"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "Bağışlar"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "Ödül/Anket"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
 msgstr ""
-"GNU Taler hakkında daha fazla bilgi için <a href=\"{site}\">sahifesini "
-"ziyaret</a> edebilirsiniz."
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -417,15 +465,15 @@ msgstr ""
 "Lütfen bir proje seçin, bağışlamak istediğiniz {currency} miktarını (*) "
 "ve makbuzunuzda görünecek bağışçının adını girin:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "Anonim Bağışçı"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "Bağış Yapın!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -663,11 +711,29 @@ msgstr ""
 "Lütfen ödeme sistemleriyle ilgili anketimize katılın ve karşılığında bir "
 "ipucu alın."
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "Hangi ödeme sistemini tercih edersiniz?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "Anketi Gönder"
 
+#~ msgid "Bank"
+#~ msgstr "Banka"
+
+#~ msgid "Essay Shop"
+#~ msgstr "Deneme Dükkanı"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "Ödül/Anket"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr ""
+#~ "GNU Taler hakkında daha fazla bilgi "
+#~ "için <a href=\"{site}\">sahifesini ziyaret</a> "
+#~ "edebilirsiniz."
+
diff --git a/talermerchantdemos/translations/zh_Hant/LC_MESSAGES/messages.po 
b/talermerchantdemos/translations/zh_Hant/LC_MESSAGES/messages.po
index 2b14ef3..d151ab5 100644
--- a/talermerchantdemos/translations/zh_Hant/LC_MESSAGES/messages.po
+++ b/talermerchantdemos/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: 2022-09-24 20:27+0200\n"
+"POT-Creation-Date: 2022-11-02 12:30+0100\n"
 "PO-Revision-Date: 2021-07-29 21:30+0000\n"
 "Last-Translator: Ting-Yi Fu <futingyi0215@gmail.com>\n"
 "Language: zh_Hant\n"
@@ -17,83 +17,135 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.11.0\n"
+
+#: talermerchantdemos/blog/blog.py:130 talermerchantdemos/blog/blog.py:209
+#: talermerchantdemos/blog/blog.py:448 talermerchantdemos/blog/blog.py:457
+#: talermerchantdemos/blog/blog.py:467
+#: talermerchantdemos/donations/donations.py:144
+#: talermerchantdemos/donations/donations.py:313
+#: talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/landing/landing.py:177
+#: talermerchantdemos/landing/landing.py:186
+#: talermerchantdemos/survey/survey.py:106
+#: talermerchantdemos/survey/survey.py:182
+#: talermerchantdemos/survey/survey.py:191
+#: talermerchantdemos/survey/survey.py:203
+#: talermerchantdemos/survey/survey.py:212
+#: talermerchantdemos/survey/survey.py:220
+msgid "GNU Taler Demo: Error"
+msgstr ""
 
-#: talermerchantdemos/blog/blog.py:128 talermerchantdemos/landing/landing.py:95
+#: talermerchantdemos/blog/blog.py:131 talermerchantdemos/landing/landing.py:96
 msgid "Internal error"
 msgstr "內部錯誤"
 
-#: talermerchantdemos/blog/blog.py:188
+#: talermerchantdemos/blog/blog.py:184
+msgid "GNU Taler Demo: Essay Shop"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:202
 msgid "Cannot refund unpaid article"
 msgstr "無法對於未付款文章進行退款"
 
-#: talermerchantdemos/blog/blog.py:195
+#: talermerchantdemos/blog/blog.py:210
 msgid "Article is not anymore refundable"
 msgstr "已無法對此文章進行退款"
 
-#: talermerchantdemos/blog/blog.py:231
+#: talermerchantdemos/blog/blog.py:214
+msgid "GNU Taler Demo: Confirm refund"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:247
 msgid "You did not pay for this article (nice try!)"
 msgstr "您並沒有為此文章付款(想得美!)"
 
-#: talermerchantdemos/blog/blog.py:236
+#: talermerchantdemos/blog/blog.py:252
 msgid "Item not refundable (anymore)"
 msgstr "此文章無法進行退款(已無法)"
 
-#: talermerchantdemos/blog/blog.py:262
+#: talermerchantdemos/blog/blog.py:278
 msgid "Internal error: Files for article ({}) not found."
 msgstr "內部錯誤:找不到此文章 ({}) 的檔案。"
 
-#: talermerchantdemos/blog/blog.py:269
+#: talermerchantdemos/blog/blog.py:285
 msgid "Supplemental file ({}) for article ({}) not found."
 msgstr "找不到文章 ({}) 的補充文件 ({}) 。"
 
-#: talermerchantdemos/blog/blog.py:348 talermerchantdemos/blog/blog.py:362
+#: talermerchantdemos/blog/blog.py:293
+msgid "GNU Taler Demo: Article"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:365 talermerchantdemos/blog/blog.py:379
 msgid "Direct access forbidden"
 msgstr "禁止直接訪問"
 
-#: talermerchantdemos/blog/blog.py:430
+#: talermerchantdemos/blog/blog.py:397
+msgid "GNU Taler Demo: Refunded"
+msgstr ""
+
+#: talermerchantdemos/blog/blog.py:449
 msgid "Internal server error"
 msgstr "內部伺服器錯誤"
 
-#: talermerchantdemos/blog/blog.py:438
-#: talermerchantdemos/donations/donations.py:287
-#: talermerchantdemos/landing/landing.py:166
-#: talermerchantdemos/survey/survey.py:164
+#: talermerchantdemos/blog/blog.py:458
+#: talermerchantdemos/donations/donations.py:314
+#: talermerchantdemos/landing/landing.py:178
+#: talermerchantdemos/survey/survey.py:183
 msgid "Page not found"
 msgstr "找不到此頁面"
 
-#: talermerchantdemos/donations/donations.py:127
+#: talermerchantdemos/donations/donations.py:130
 msgid "parameter '{}' required"
 msgstr "需要 '{}' 參數"
 
-#: talermerchantdemos/donations/donations.py:245
+#: talermerchantdemos/donations/donations.py:190
+#: talermerchantdemos/donations/donations.py:225
+#: talermerchantdemos/donations/donations.py:299
+msgid "GNU Taler Demo: Donations"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:208
+msgid "GNU Taler Demo: Donations checkout"
+msgstr ""
+
+#: talermerchantdemos/donations/donations.py:269
 msgid "Backend could not create the order"
 msgstr "後端無法創建訂單"
 
-#: talermerchantdemos/httpcommon/__init__.py:40
-#: talermerchantdemos/httpcommon/__init__.py:80
+#: talermerchantdemos/httpcommon/__init__.py:41
+#: talermerchantdemos/httpcommon/__init__.py:81
 msgid "Could not establish connection to backend"
 msgstr "無法建立後台連線"
 
-#: talermerchantdemos/httpcommon/__init__.py:46
+#: talermerchantdemos/httpcommon/__init__.py:47
 #, fuzzy
 msgid "Could not parse the response from backend"
 msgstr "無法解析後台回覆"
 
-#: talermerchantdemos/httpcommon/__init__.py:51
-#: talermerchantdemos/httpcommon/__init__.py:88
+#: talermerchantdemos/httpcommon/__init__.py:52
+#: talermerchantdemos/httpcommon/__init__.py:89
 msgid "Backend returned error status"
 msgstr "後台回傳錯誤狀態"
 
-#: talermerchantdemos/httpcommon/__init__.py:85
+#: talermerchantdemos/httpcommon/__init__.py:86
 msgid "Could not parse response from backend"
 msgstr "無法解析後台回覆"
 
-#: talermerchantdemos/landing/landing.py:174
-#: talermerchantdemos/survey/survey.py:172
+#: talermerchantdemos/landing/landing.py:163
+#: talermerchantdemos/templates/common-base.html.j2:20
+msgid "GNU Taler Demo"
+msgstr "GNU Taler Demo"
+
+#: talermerchantdemos/landing/landing.py:187
+#: talermerchantdemos/survey/survey.py:192
 msgid "HTTP method not allowed for this page"
 msgstr "HTTP 方法不被此頁面允許"
 
+#: talermerchantdemos/survey/survey.py:172
+msgid "GNU Taler Demo: Survey"
+msgstr ""
+
 #: talermerchantdemos/templates/blog-article-frame.html.j2:11
 #: talermerchantdemos/templates/blog-article-frame.html.j2:16
 msgid "Taler allows merchants to offer refunds to customers."
@@ -170,7 +222,7 @@ msgid ""
 "have used to pay for this article originally."
 msgstr "您只能透過使用當初購買文章所使用的錢包取得退款。"
 
-#: talermerchantdemos/templates/blog-confirm-refund.html.j2:21
+#: talermerchantdemos/templates/blog-confirm-refund.html.j2:22
 msgid "Request refund"
 msgstr "要求退款"
 
@@ -204,7 +256,7 @@ msgstr "堆疊追蹤:"
 msgid "Essay Shop: Free Software, Free Society"
 msgstr "文章商店:Free Software, Free Society"
 
-#: talermerchantdemos/templates/blog-index.html.j2:5
+#: talermerchantdemos/templates/blog-index.html.j2:7
 msgid ""
 "This is the latest edition of <cite>Free Software, Free Society: Selected"
 " Essays of Richard M. Stallman.</cite>"
@@ -212,7 +264,7 @@ msgstr ""
 "這是最新版本的 <cite>Free Software, Free Society: Richard M. Stallman "
 "的文章選集。</cite>"
 
-#: talermerchantdemos/templates/blog-index.html.j2:13
+#: talermerchantdemos/templates/blog-index.html.j2:15
 msgid ""
 "Verbatim copying and distribution of this entire book are permitted "
 "worldwide, without royalty, in any medium, provided this notice is "
@@ -222,59 +274,57 @@ msgid ""
 "copyright notice and this permission notice are preserved on all copies."
 msgstr 
"只要保留本通知、無需使用費,這整本書允許被透過任何媒介在全世界範圍內被逐字複製和分發。此書被自營軟體基金會批准,且所有副本保留版權聲明與許可通知的內容被許從原文英文翻譯到另一個語言並被複製、分發。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:18
+#: talermerchantdemos/templates/blog-index.html.j2:23
 msgid "Chapters"
 msgstr "章節"
 
-#: talermerchantdemos/templates/blog-index.html.j2:20
+#: talermerchantdemos/templates/blog-index.html.j2:25
 msgid "Click on an individual chapter to to purchase it with GNU Taler."
 msgstr "點選並使用 GNU Taler 來購買特定章節。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:21
+#: talermerchantdemos/templates/blog-index.html.j2:26
+#, fuzzy
 msgid ""
 "You can get free, virtual money to buy articles on this page at the <a "
-"href=\"{}\")\">bank</a>."
+"href=\"{}\">bank</a>."
 msgstr "您可以在<a href=\"{}\")\">銀行</a>獲得免費的虛擬貨幣以在此頁面購買文章。"
 
-#: talermerchantdemos/templates/blog-index.html.j2:28
+#: talermerchantdemos/templates/blog-index.html.j2:32
 msgid "Pay to read more..."
 msgstr "付款以閱讀更多..."
 
-#: talermerchantdemos/templates/blog-index.html.j2:31
+#: talermerchantdemos/templates/blog-index.html.j2:35
 msgid "No articles available in this language."
 msgstr "沒有此以語言撰寫的文章。"
 
-#: talermerchantdemos/templates/common-base.html.j2:20
-msgid "GNU Taler Demo"
-msgstr "GNU Taler Demo"
-
-#: talermerchantdemos/templates/common-base.html.j2:44
+#: talermerchantdemos/templates/common-base.html.j2:58
 #: talermerchantdemos/templates/landing-base.html.j2:5
 msgid "Introduction"
 msgstr "簡介"
 
-#: talermerchantdemos/templates/common-base.html.j2:47
+#: talermerchantdemos/templates/common-base.html.j2:61
 msgid "Bank"
-msgstr "銀行"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:50
+#: talermerchantdemos/templates/common-base.html.j2:64
+#, fuzzy
 msgid "Essay Shop"
-msgstr "論文商店"
+msgstr "文章商店"
 
-#: talermerchantdemos/templates/common-base.html.j2:53
+#: talermerchantdemos/templates/common-base.html.j2:67
 #: talermerchantdemos/templates/donations-base.html.j2:11
 msgid "Donations"
 msgstr "捐款"
 
-#: talermerchantdemos/templates/common-base.html.j2:56
+#: talermerchantdemos/templates/common-base.html.j2:70
 msgid "Tipping/Survey"
-msgstr "小費/調查"
+msgstr ""
 
-#: talermerchantdemos/templates/common-base.html.j2:89
+#: talermerchantdemos/templates/common-base.html.j2:112
 msgid ""
 "You can learn more about GNU Taler on our main <a "
 "href=\"{site}\">website</a>."
-msgstr "您可以從我們的主要<a href=\"{site}\">網站</a>深入了解 GNU Taler。"
+msgstr ""
 
 #: talermerchantdemos/templates/donations-base.html.j2:13
 msgid "This is the donation page."
@@ -376,15 +426,15 @@ msgid ""
 " and enter the donor's name that will appear on your receipt:"
 msgstr "請選擇一個項目、您欲捐款的金額 (*) 以及 {currency},並輸入顯示在收據上的捐款人姓名:"
 
-#: talermerchantdemos/templates/donations-index.html.j2:33
+#: talermerchantdemos/templates/donations-index.html.j2:48
 msgid "Anonymous Donor"
 msgstr "匿名捐款人"
 
-#: talermerchantdemos/templates/donations-index.html.j2:34
+#: talermerchantdemos/templates/donations-index.html.j2:53
 msgid "Donate!"
 msgstr "捐款!"
 
-#: talermerchantdemos/templates/donations-index.html.j2:39
+#: talermerchantdemos/templates/donations-index.html.j2:59
 msgid ""
 "(*) To make the demo a bit more interesting, the 5 {currency} option is "
 "deliberately implemented with a fault: the merchant will try to make you "
@@ -579,11 +629,11 @@ msgid ""
 "in return."
 msgstr "請參與我們關於支付系統的問卷調查以獲得小費。"
 
-#: talermerchantdemos/templates/survey-index.html.j2:12
+#: talermerchantdemos/templates/survey-index.html.j2:13
 msgid "Which payment system do you prefer?"
 msgstr "請問您偏好哪個支付系統?"
 
-#: talermerchantdemos/templates/survey-index.html.j2:23
+#: talermerchantdemos/templates/survey-index.html.j2:24
 msgid "Submit Survey"
 msgstr "提交問卷"
 
@@ -614,3 +664,18 @@ msgstr "提交問卷"
 #~ msgid "GNU Taler Demo: Survey"
 #~ msgstr "GNU Taler Demo: 問卷調查"
 
+#~ msgid "Bank"
+#~ msgstr "銀行"
+
+#~ msgid "Essay Shop"
+#~ msgstr "論文商店"
+
+#~ msgid "Tipping/Survey"
+#~ msgstr "小費/調查"
+
+#~ msgid ""
+#~ "You can learn more about GNU Taler"
+#~ " on our main <a "
+#~ "href=\"{site}\">website</a>."
+#~ msgstr "您可以從我們的主要<a href=\"{site}\">網站</a>深入了解 GNU Taler。"
+

-- 
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]