commit bb8aadda674e2aa3c78eeba3b0f4f5d2b3c6f0e4
parent 8d26ff3a604ef2ce6bc7404c276a31baf70ed1fa
Author: Florian Dold <dold@taler.net>
Date: Tue, 25 Aug 2026 22:23:55 +0200
wallet page: organize downloads by platform
Diffstat:
| M | static/styles.css | | | 280 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- |
| M | template/wallet.html.j2 | | | 373 | +++++++++++++++++++++++++++++-------------------------------------------------- |
2 files changed, 408 insertions(+), 245 deletions(-)
diff --git a/static/styles.css b/static/styles.css
@@ -19,19 +19,281 @@ ul nav {
background-color: #A5C663;
}
-.wallet-teaser-text {
- padding-bottom: 2em;
+.wallet-page {
+ --wallet-blue: #0042b3;
+ --wallet-blue-dark: #003281;
+ --wallet-blue-light: #eef4ff;
+ --wallet-border: #d8dee8;
+ --wallet-muted: #545b66;
+}
+
+.wallet-hero {
+ background: linear-gradient(135deg, #f7faff 0%, #eef4ff 100%);
+ border-bottom: 1px solid var(--wallet-border);
+ padding: 3.5rem 1rem 3rem;
+ text-align: center;
}
-.install-button {
- border: none;
- padding: 8px 8px;
- background-color: #0042b3;
+#body_content .wallet-hero .container {
+ margin-bottom: 0;
+ max-width: 800px;
+ padding-bottom: 0;
+ padding-top: 0;
+}
+
+.wallet-hero h1 {
+ font-size: clamp(2.25rem, 5vw, 3.5rem);
+ font-weight: 700;
+ letter-spacing: -0.03em;
+ margin-bottom: 1rem;
+}
+
+.wallet-lead {
+ color: #303641;
+ font-size: 1.2rem;
+ line-height: 1.6;
+ margin: 0 auto;
+ max-width: 720px;
+}
+
+.wallet-highlights {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.75rem 1.5rem;
+ justify-content: center;
+ list-style: none;
+ margin: 1.5rem 0 0;
+ padding: 0;
+}
+
+.wallet-highlights li::before {
+ color: #357a22;
+ content: "\2713";
+ font-weight: 700;
+ margin-right: 0.4rem;
+}
+
+#body_content .wallet-content {
+ max-width: 1120px;
+ padding-bottom: 0;
+ padding-top: 1rem;
+}
+
+.wallet-section {
+ margin-top: 3.5rem;
+}
+
+.wallet-section-heading {
+ margin-bottom: 1.25rem;
+}
+
+.wallet-section-heading h2,
+.wallet-demo h2,
+.wallet-resources h2 {
+ font-size: clamp(1.6rem, 3vw, 2rem);
+ font-weight: 650;
+ margin-bottom: 0.35rem;
+}
+
+.wallet-section-heading p {
+ color: var(--wallet-muted);
+ margin: 0;
+}
+
+.wallet-grid {
+ display: grid;
+ gap: 1.5rem;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+}
+
+.wallet-card {
+ background: #fff;
+ border: 1px solid var(--wallet-border);
+ border-radius: 0.75rem;
+ box-shadow: 0 0.25rem 1rem rgba(21, 39, 68, 0.06);
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ min-height: 250px;
+ padding: 1.5rem;
+}
+
+.wallet-card h3 {
+ font-size: 1.65rem;
+ margin-bottom: 0.65rem;
+}
+
+.wallet-card p:not(.wallet-platform-label) {
+ color: var(--wallet-muted);
+}
+
+.wallet-platform-label {
+ color: var(--wallet-blue);
+ font-size: 0.8rem;
+ font-weight: 700;
+ letter-spacing: 0.08em;
+ margin-bottom: 0.45rem;
+ text-transform: uppercase;
+}
+
+.wallet-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.75rem;
+ margin-top: 1.5rem;
+}
+
+#body_content .wallet-page a.wallet-button {
+ align-items: center;
+ border: 2px solid var(--wallet-blue);
+ border-radius: 0.4rem;
+ display: inline-flex;
+ font-weight: 600;
+ justify-content: center;
+ min-height: 44px;
+ padding: 0.55rem 1rem;
+ text-align: center;
+ text-decoration: none;
+}
+
+#body_content .wallet-page a.wallet-button-primary,
+#body_content .wallet-page a.wallet-button-primary:link,
+#body_content .wallet-page a.wallet-button-primary:visited {
+ background: var(--wallet-blue);
color: #fff;
}
-.extension.row>.col-lg-6 {
- padding-bottom: 2em;
+#body_content .wallet-page a.wallet-button-primary:hover {
+ background: var(--wallet-blue-dark);
+ border-color: var(--wallet-blue-dark);
+ color: #fff;
+}
+
+#body_content .wallet-page a.wallet-button-secondary,
+#body_content .wallet-page a.wallet-button-secondary:link,
+#body_content .wallet-page a.wallet-button-secondary:visited {
+ background: #fff;
+ color: var(--wallet-blue-dark);
+}
+
+#body_content .wallet-page a.wallet-button-secondary:hover {
+ background: var(--wallet-blue-light);
+ color: var(--wallet-blue-dark);
+}
+
+#body_content .wallet-page a.wallet-button:focus-visible {
+ outline: 3px solid #f5a623;
+ outline-offset: 3px;
+}
+
+.wallet-advanced-options {
+ border-bottom: 1px solid var(--wallet-border);
+}
+
+.wallet-advanced-options details {
+ border-top: 1px solid var(--wallet-border);
+ padding: 0;
+}
+
+.wallet-advanced-options summary {
+ cursor: pointer;
+ font-size: 1.15rem;
+ font-weight: 650;
+ padding: 1.15rem 0.25rem;
+}
+
+.wallet-advanced-options summary:focus-visible {
+ outline: 3px solid #f5a623;
+ outline-offset: 3px;
+}
+
+.wallet-details-content {
+ max-width: 800px;
+ padding: 0 0.25rem 1.5rem 1.5rem;
+}
+
+.wallet-warning {
+ background: #fff7e6;
+ border-left: 4px solid #b96a00;
+ padding: 0.85rem 1rem;
+}
+
+.wallet-demo {
+ align-items: center;
+ background: var(--wallet-blue-light);
+ border-left: 5px solid var(--wallet-blue);
+ border-radius: 0.5rem;
+ display: flex;
+ gap: 2rem;
+ justify-content: space-between;
+ margin-top: 4rem;
+ padding: 1.75rem 2rem;
+}
+
+.wallet-demo p {
+ margin-bottom: 0;
+}
+
+.wallet-demo .wallet-button {
+ flex: 0 0 auto;
+}
+
+.wallet-resources {
+ margin: 3.5rem 0 1rem;
+}
+
+.wallet-resources ul {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.75rem 1.75rem;
+ list-style: none;
+ margin: 1rem 0 0;
+ padding: 0;
+}
+
+.wallet-resources a {
+ font-weight: 550;
+}
+
+@media (max-width: 767.98px) {
+ .wallet-hero {
+ padding: 2.5rem 0.5rem 2.25rem;
+ }
+
+ .wallet-highlights {
+ align-items: center;
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+
+ .wallet-section {
+ margin-top: 2.75rem;
+ }
+
+ .wallet-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .wallet-card {
+ min-height: auto;
+ }
+
+ .wallet-actions {
+ align-items: stretch;
+ flex-direction: column;
+ }
+
+ .wallet-demo {
+ align-items: flex-start;
+ flex-direction: column;
+ gap: 1rem;
+ margin-top: 3rem;
+ padding: 1.5rem;
+ }
+
+ .wallet-demo .wallet-button {
+ width: 100%;
+ }
}
a,
@@ -110,7 +372,7 @@ footer {
}
.btn-dark {
- background-color: #9d9d9d;
+ background-color: #595959;
}
diff --git a/template/wallet.html.j2 b/template/wallet.html.j2
@@ -1,257 +1,158 @@
{% extends "common/base.j2" %}
-{% block subtitle %}{{ _("Wallets")}}{% endblock subtitle %}
-{% block head_content %}
-<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/millncjiddlpgdmkklmhfadpacifaonc" />
-<script type="application/javascript">
-/*
- @licstart The following is the entire license notice for the
- JavaScript code in this page.
-
- Copyright (C) 2015-2020 Taler Systems SA
-
- The JavaScript code in this page is free software: you can
- redistribute it and/or modify it under the terms of the GNU
- Lesser General Public License (GNU LGPL) as published by the Free Software
- Foundation, either version 2.1 of the License, or (at your option)
- any later version. The code is distributed WITHOUT ANY WARRANTY;
- without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
-
- As additional permission under GNU LGPL version 2.1 section 7, you
- may distribute non-source (e.g., minimized or compacted) forms of
- that code without the copy of the GNU LGPL normally required by
- section 4, provided you include this license notice and a URL
- through which recipients can access the Corresponding Source.
-
- @licend The above is the entire license notice
- for the JavaScript code in this page.
-*/
-
-var chrome_min_version = 51;
-
-function installWallet() {
- if (window.chrome) {
- chrome.webstore.install("https://chrome.google.com/webstore/detail/millncjiddlpgdmkklmhfadpacifaonc", onSuccess, onFailure);
- } else {
- onFailure("Google Chrome or Chromium is required for installation.");
- }
-}
-
-try {
- taler.onPresent(function () {
- document.getElementById("box-present").style.display = "inherit";
- document.getElementById("box-not-present").style.display = "none";
- });
- taler.onAbsent(function () {
- document.getElementById("box-present").style.display = "none";
- document.getElementById("box-not-present").style.display = "inherit";
- });
-} catch (err) {}
-
-function onLoad() {
- if (typeof window.chrome != "object") {
- document.getElementById("error-chrome").style.display = "inherit";
- } else {
- var m = navigator.userAgent.match(/Chrome\/([0-9.]+)/);
- if (null == m || m[1].split('.')[0] < chrome_min_version) {
- document.getElementById('chrome-min-version').appendChild(document.createTextNode(chrome_min_version));
- document.getElementById('error-chrome-version').style.display = "inherit";
- }
- }
-}
-
-document.addEventListener('DOMContentLoaded', onLoad);
-</script>
-
-<style type="text/css">
- .greenbox {
- background-color: #5EFF64;
- border: solid;
- border-radius: 5px;
- padding: 0.5em;
- }
- .bluebox {
- background-color: #C2C6FF;
- border: solid;
- border-radius: 5px;
- padding: 0.5em;
- }
- .error {
- font-style: italic;
- display: none;
- }
- #install-result {
- font-weight: bold;
- }
-
- main ul li {
- margin-bottom: 1em;
- }
-</style>
-{% endblock head_content %}
+{% block subtitle %}{{ _("Wallet") }}{% endblock subtitle %}
{% block body_content %}
-<main id="maincontent">
- <div class="jumbotron">
- <div class="text-center">
- <h1 lang="en">{% trans %}Taler Wallet{% endtrans %}</h1>
- </div>
+<main id="maincontent" class="wallet-page">
+ <header class="wallet-hero">
+ <div class="container">
+ <h1>{% trans %}Get the GNU Taler Wallet{% endtrans %}</h1>
+ <p class="wallet-lead">
+ {% trans %}Install the free software wallet to make fast, privacy-friendly payments with GNU Taler. Choose your device or browser below.{% endtrans %}
+ </p>
+ <ul class="wallet-highlights">
+ <li>{% trans %}No registration required{% endtrans %}</li>
+ <li>{% trans %}Free software{% endtrans %}</li>
+ <li>{% trans %}Privacy by design{% endtrans %}</li>
+ </ul>
</div>
+ </header>
- <div class="container">
- <div class="row">
- <div class="col-lg-6">
- <h2>{% trans %}Android 7.0 (API 24) or later{% endtrans %}</h2>
- <ul>
- <li>
- <p>
- {% trans %}You can <a href="https://taler.net/files/wallet/wallet-nightly-debug-latest.apk" target="_blank" rel="noopener noreferrer">directly download the APK for Android.</a>{% endtrans %}
- </p>
- </li>
- <li>
- <a href="https://play.google.com/store/apps/details?id=net.taler.wallet" target="_blank" rel="noopener noreferrer">
- {% trans %}Install the Taler wallet app for Android from the Google Play Store.{% endtrans %}
- </a>
- </li>
- <li>
- <a href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/" target="_blank" rel="noopener noreferrer">
- {% trans %}Download the Android app from F-Droid (bypassing Google registration).{% endtrans %}
- </a>
- </li>
- </ul>
+ <div class="container wallet-content">
+ <section class="wallet-section" aria-labelledby="mobile-wallets-heading">
+ <div class="wallet-section-heading">
+ <h2 id="mobile-wallets-heading">{% trans %}Mobile wallets{% endtrans %}</h2>
+ <p>{% trans %}Install Taler from the app store for your phone or tablet.{% endtrans %}</p>
</div>
- <div class="col-lg-6">
- <h2>{% trans %}Ubuntu Touch{% endtrans %}</h2>
- <ul>
- <li>
- <p>{% trans %}You can run the Taler wallet app for Android by installing <a href="https://waydro.id/" target="_blank" rel="noopener noreferrer">Waydroid</a> using
- <a href="https://open-store.io/app/waydroidhelper.aaronhafer" target="_blank" rel="noopener noreferrer">Waydroid Helper.</a>
- More info about running Android apps on Ubuntu Touch can be found in <a href="https://docs.ubports.com/en/latest/userguide/dailyuse/waydroid.html" target="_blank" rel="noopener noreferrer">the UBports docs.</a>{% endtrans %}</p>
- </li>
- <li>
- <p>{% trans %}After successfully installing Waydroid you can either
- <a href="https://taler.net/files/wallet/wallet-nightly-debug-latest.apk" target="_blank" rel="noopener noreferrer">
- directly download the APK for Android,</a>{% endtrans %}</p>
- </li>
- <li>
- <a href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/" target="_blank" rel="noopener noreferrer">
- {% trans %} or download the Android app from F-Droid.{% endtrans %}
+ <div class="wallet-grid">
+ <article class="wallet-card">
+ <div>
+ <p class="wallet-platform-label">{% trans %}Mobile{% endtrans %}</p>
+ <h3>{% trans %}Android{% endtrans %}</h3>
+ <p>{% trans %}Requires Android 7 or later.{% endtrans %}</p>
+ </div>
+ <div class="wallet-actions">
+ <a class="wallet-button wallet-button-primary"
+ href="https://play.google.com/store/apps/details?id=net.taler.wallet">
+ {% trans %}Get it on Google Play{% endtrans %}
</a>
- </li>
- </ul>
+ <a class="wallet-button wallet-button-secondary"
+ href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/">
+ {% trans %}Get it on F-Droid{% endtrans %}
+ </a>
+ </div>
+ </article>
+
+ <article class="wallet-card">
+ <div>
+ <p class="wallet-platform-label">{% trans %}Mobile{% endtrans %}</p>
+ <h3>{% trans %}iPhone and iPad{% endtrans %}</h3>
+ <p>{% trans %}Install the Taler wallet from Apple's App Store.{% endtrans %}</p>
+ </div>
+ <div class="wallet-actions">
+ <a class="wallet-button wallet-button-primary"
+ href="https://apps.apple.com/app/taler-wallet/id6463440117">
+ {% trans %}Download on the App Store{% endtrans %}
+ </a>
+ </div>
+ </article>
</div>
+ </section>
- <div class="col-lg-6">
- <h2>iOS</h2>
- <p>
- {% trans %}The Taler wallet for iOS is available in the
- <a href="https://apps.apple.com/app/taler-wallet/id6463440117" target="_blank" rel="noopener noreferrer">App Store</a>.{% endtrans %}
- </p>
- </p>
+ <section class="wallet-section" aria-labelledby="browser-wallets-heading">
+ <div class="wallet-section-heading">
+ <h2 id="browser-wallets-heading">{% trans %}Browser extensions{% endtrans %}</h2>
+ <p>{% trans %}Use Taler directly in a supported desktop browser.{% endtrans %}</p>
</div>
- <div class="col-lg-12">
- <p class="greenbox" id="box-present" style="display:none">
- {% trans %}Congratulations, the Taler wallet is installed on your device.
- Check out the <a href="https://demo.taler.net/">demonstration</a>.{% endtrans %}
- </p>
- <p class="bluebox" id="box-not-present" style="display:none">
- {% trans %}You don't have a wallet installed yet.{% endtrans %}
- </p>
+ <div class="wallet-grid">
+ <article class="wallet-card">
+ <div>
+ <p class="wallet-platform-label">{% trans %}Browser extension{% endtrans %}</p>
+ <h3>{% trans %}Chrome and Chromium{% endtrans %}</h3>
+ <p>{% trans %}Install the extension from the Chrome Web Store.{% endtrans %}</p>
+ </div>
+ <div class="wallet-actions">
+ <a class="wallet-button wallet-button-primary"
+ href="https://chromewebstore.google.com/detail/gnu-taler-wallet-web-ui/millncjiddlpgdmkklmhfadpacifaonc">
+ {% trans %}Add to Chrome{% endtrans %}
+ </a>
+ </div>
+ </article>
+
+ <article class="wallet-card">
+ <div>
+ <p class="wallet-platform-label">{% trans %}Browser extension{% endtrans %}</p>
+ <h3>{% trans %}Firefox{% endtrans %}</h3>
+ <p>{% trans %}Install the extension from Firefox Browser Add-ons.{% endtrans %}</p>
+ </div>
+ <div class="wallet-actions">
+ <a class="wallet-button wallet-button-primary"
+ href="https://addons.mozilla.org/en-US/firefox/addon/taler-wallet/">
+ {% trans %}Add to Firefox{% endtrans %}
+ </a>
+ </div>
+ </article>
</div>
- </div>
-
- <div class="row extension">
- <div class="col-lg-6">
- <h2><a href="https://chrome.google.com/webstore/detail/gnu-taler-wallet/millncjiddlpgdmkklmhfadpacifaonc" target="_blank" rel="noopener noreferrer">
- {% trans %}Google Chrome / Chromium 51+{% endtrans %}</a></h2>
- <div id="inline-install-chrome">
- <form target="_blank" action="https://chrome.google.com/webstore/detail/gnu-taler-wallet/millncjiddlpgdmkklmhfadpacifaonc">
- <button action="submit" class="install-button">
- {% trans %}Install wallet{% endtrans %}
- </button>
- </form>
- <noscript>
- <em style="color:darkred;">
- {% trans %}JavaScript is disabled, the installation won't work.{% endtrans %}
- </em>
- </noscript>
- <div id="install-result"></div>
- </div>
- <p id="error-chrome" class="error">
- {% trans %}<a href="https://www.google.com/chrome" target="_blank" rel="noopener noreferrer">Google Chrome</a> or
- <a href="https://www.chromium.org/" target="_blank" rel="noopener noreferrer">Chromium</a>
- is required, but it appears you don't have it installed.{% endtrans %}
- </p>
- <p id="error-chrome-version" class="error">
- {% trans %}<a href="https://www.google.com/chrome" target="_blank" rel="noopener noreferrer">Google Chrome</a> or
- <a href="https://www.chromium.org/" target="_blank" rel="noopener noreferrer">Chromium</a>
- version <span id="chrome-min-version"></span> or newer is required,
- but it appears you have an older version.{% endtrans %}
- </p>
- </div>
-
- <div class="col-lg-6">
- <h2><a href="https://addons.mozilla.org/en-US/firefox/addon/taler-wallet/" target="_blank" rel="noopener noreferrer">
- {% trans %}Mozilla Firefox 57+{% endtrans %}</a></h2>
- <div id="inline-install-chrome">
- <form action="https://addons.mozilla.org/firefox/downloads/latest/taler-wallet/">
- <button action="submit" class="install-button">
- {% trans %}Install wallet{% endtrans %}
- </button>
- </form>
- </div>
+ </section>
- <!--
- <h3>Firefox Beta</h3>
- <ol>
- <li><a href="{{ url('releases/taler-wallet/taler-wallet-stable.xpi', virtual=True) }}">Download the wallet</a> (right click, Save Link As...)</li>
- <li>On the <code>about:debugging</code> page, "Load temporary extension"</li>
- </ol>
-
- <h3>Firefox Developer Edition</h3>
- <p>Either from the <code>about:debugging</code> page like above, or:</p>
- <ol>
- <li>On the <code>about:config</code> page set <code>xpinstall.signatures.required</code> to <code>false</code></li>
- <li><a href="/releases/taler-wallet/taler-wallet-stable.xpi">Install the wallet</a></li>
- </ol>
- -->
+ <section class="wallet-section" aria-labelledby="advanced-wallets-heading">
+ <div class="wallet-section-heading">
+ <h2 id="advanced-wallets-heading">{% trans %}Other and advanced options{% endtrans %}</h2>
+ <p>{% trans %}Alternative installation methods for specialist devices and testing.{% endtrans %}</p>
</div>
- <div class="col-lg-6">
- <h2>{% trans %}Opera 36+{% endtrans %}</h2>
-
- <ol>
- <li>
- {% trans %}Install a Chrome extension for Opera{% endtrans %}
+ <div class="wallet-advanced-options">
+ <details>
+ <summary>{% trans %}Ubuntu Touch{% endtrans %}</summary>
+ <div class="wallet-details-content">
+ <p>
+ {% trans %}Run the Android wallet on Ubuntu Touch by installing <a href="https://waydro.id/">Waydroid</a> with <a href="https://open-store.io/app/waydroidhelper.aaronhafer">Waydroid Helper</a>. The <a href="https://docs.ubports.com/en/latest/userguide/dailyuse/waydroid.html">UBports documentation</a> explains how to set up Android apps.{% endtrans %}
+ </p>
+ <a class="wallet-button wallet-button-secondary"
+ href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/">
+ {% trans %}Get the Android wallet from F-Droid{% endtrans %}
</a>
- </li>
- <li>
- {% trans %}<a href="https://chrome.google.com/webstore/detail/gnu-taler-wallet/millncjiddlpgdmkklmhfadpacifaonc" target="_blank" rel="noopener noreferrer">
- Install the Taler wallet from the Chrome Web Store</a>{% endtrans %}
- </li>
- </ol>
+ </div>
+ </details>
+
+ <details>
+ <summary>{% trans %}Android nightly test build{% endtrans %}</summary>
+ <div class="wallet-details-content">
+ <p class="wallet-warning">
+ {% trans %}For testing only. This automatically built debug version may be unstable. Most users should install the wallet from Google Play or F-Droid.{% endtrans %}
+ </p>
+ <a class="wallet-button wallet-button-secondary"
+ href="https://taler.net/files/wallet/wallet-nightly-debug-latest.apk">
+ {% trans %}Download the nightly debug APK{% endtrans %}
+ </a>
+ </div>
+ </details>
</div>
- </div>
+ </section>
- <div class="row extension">
-
- <div class="col-lg-6">
- <h2>{% trans %}Other browsers{% endtrans %}</h2>
- <p>
- {% trans %}Wallets for other browsers will be provided in the near future.{% endtrans %}
- </p>
- </div>
- <div class="row wallet-teaser-text">
- <div class="col-lg-12">
- <form action="{{ "https://demo.taler.net/" + lang + "/" }}" target="_blank" rel="noopener noreferrer" style="display:inline;">
- <button type="submit" class="btn btn-primary">{{ _("Try Demo!")}}</button></br>
- </form>
- {% trans %}After installing a Taler wallet, you can try out the demonstration on the <a href="https://demo.taler.net">demo page</a>.
- The source code for Taler wallets is provided <a href="https://git-www.taler.net/taler-typescript-core.git" target="_blank" rel="noopener noreferrer">here</a>.{% endtrans %}
- </div>
+ <section class="wallet-demo" aria-labelledby="wallet-demo-heading">
+ <div>
+ <h2 id="wallet-demo-heading">{% trans %}Wallet installed? Try a test payment{% endtrans %}</h2>
+ <p>{% trans %}Explore GNU Taler with KUDOS, an imaginary demo currency. No real money is involved.{% endtrans %}</p>
</div>
- </div>
-</div>
+ <a class="wallet-button wallet-button-primary"
+ href="{{ "https://demo.taler.net/" + lang + "/" }}">
+ {% trans %}Try the demo{% endtrans %}
+ </a>
+ </section>
+
+ <section class="wallet-resources" aria-labelledby="wallet-resources-heading">
+ <h2 id="wallet-resources-heading">{% trans %}Help and project information{% endtrans %}</h2>
+ <ul>
+ <li><a href="https://docs.taler.net/wallet/index.html">{% trans %}Wallet manuals{% endtrans %}</a></li>
+ <li><a href="{{ url_localized('faq.html') }}">{% trans %}Wallet FAQ{% endtrans %}</a></li>
+ <li><a href="{{ url_localized('wallet-privacy-policy.html') }}">{% trans %}Mobile wallet privacy policy{% endtrans %}</a></li>
+ <li><a href="{{ url_localized('wallet-webextension-privacy-policy.html') }}">{% trans %}Browser extension privacy policy{% endtrans %}</a></li>
+ <li><a href="https://bugs.taler.net/">{% trans %}Report a problem{% endtrans %}</a></li>
+ <li><a href="https://git.taler.net/taler/taler-typescript-core/">{% trans %}View the wallet source code{% endtrans %}</a></li>
+ </ul>
+ </section>
+ </div>
+</main>
{% endblock body_content %}