taler-www

Main taler.net website
Log | Files | Refs | Submodules | README | LICENSE

wallet.html.j2 (11168B)


      1 {% extends "common/base.j2" %}
      2 {% block subtitle %}{{ _("Wallet") }}{% endblock subtitle %}
      3 
      4 {% block body_content %}
      5 <main id="maincontent" class="wallet-page">
      6   <header class="wallet-hero">
      7     <div class="container">
      8       <h1>{% trans %}Get the GNU Taler Wallet{% endtrans %}</h1>
      9       <p class="wallet-lead">
     10         {% trans %}Install the free software wallet to make fast, privacy-friendly payments with GNU Taler. Choose your device or browser below.{% endtrans %}
     11       </p>
     12       <ul class="wallet-highlights">
     13         <li>{% trans %}No registration required{% endtrans %}</li>
     14         <li>{% trans %}Free software{% endtrans %}</li>
     15         <li>{% trans %}Privacy by design{% endtrans %}</li>
     16       </ul>
     17     </div>
     18   </header>
     19 
     20   <div class="container wallet-content">
     21     <section id="wallet-action-notice" class="wallet-action-notice"
     22              aria-labelledby="wallet-action-heading" dir="auto" hidden>
     23       <div>
     24         <h2 id="wallet-action-heading">{% trans %}Continue in your Taler wallet{% endtrans %}</h2>
     25         <p>{% trans %}You opened a Taler wallet action link, but your wallet may not have opened. If you don’t have a wallet yet, install one below, then return here to continue.{% endtrans %}</p>
     26       </div>
     27       <div class="wallet-action-options">
     28         <a id="wallet-action-link" class="wallet-button wallet-button-primary">
     29           {% trans %}Continue in your wallet{% endtrans %}
     30         </a>
     31         <a id="wallet-action-direct-link" class="wallet-action-direct">
     32           {% trans %}Open <bdi>taler://</bdi> link directly{% endtrans %}
     33         </a>
     34       </div>
     35     </section>
     36 
     37     <section class="wallet-section" aria-labelledby="mobile-wallets-heading">
     38       <div class="wallet-section-heading">
     39         <h2 id="mobile-wallets-heading">{% trans %}Mobile wallets{% endtrans %}</h2>
     40         <p>{% trans %}Install Taler from the app store for your phone or tablet.{% endtrans %}</p>
     41       </div>
     42 
     43       <div class="wallet-grid">
     44         <article class="wallet-card">
     45           <div>
     46             <p class="wallet-platform-label">{% trans %}Mobile{% endtrans %}</p>
     47             <h3>{% trans %}Android{% endtrans %}</h3>
     48             <p>{% trans %}Requires Android 7 or later.{% endtrans %}</p>
     49           </div>
     50           <div class="wallet-actions">
     51             <a class="wallet-button wallet-button-primary"
     52                href="https://play.google.com/store/apps/details?id=net.taler.wallet">
     53               {% trans %}Get it on Google Play{% endtrans %}
     54             </a>
     55             <a class="wallet-button wallet-button-secondary"
     56                href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/">
     57               {% trans %}Get it on F-Droid{% endtrans %}
     58             </a>
     59           </div>
     60         </article>
     61 
     62         <article class="wallet-card">
     63           <div>
     64             <p class="wallet-platform-label">{% trans %}Mobile{% endtrans %}</p>
     65             <h3>{% trans %}iPhone and iPad{% endtrans %}</h3>
     66             <p>{% trans %}Install the Taler wallet from Apple&#39;s App Store.{% endtrans %}</p>
     67           </div>
     68           <div class="wallet-actions">
     69             <a class="wallet-button wallet-button-primary"
     70                href="https://apps.apple.com/app/taler-wallet/id6463440117">
     71               {% trans %}Download on the App Store{% endtrans %}
     72             </a>
     73           </div>
     74         </article>
     75       </div>
     76     </section>
     77 
     78     <section class="wallet-section" aria-labelledby="browser-wallets-heading">
     79       <div class="wallet-section-heading">
     80         <h2 id="browser-wallets-heading">{% trans %}Browser extensions{% endtrans %}</h2>
     81         <p>{% trans %}Use Taler directly in a supported desktop browser.{% endtrans %}</p>
     82       </div>
     83 
     84       <div class="wallet-grid">
     85         <article class="wallet-card">
     86           <div>
     87             <p class="wallet-platform-label">{% trans %}Browser extension{% endtrans %}</p>
     88             <h3>{% trans %}Chrome and Chromium{% endtrans %}</h3>
     89             <p>{% trans %}Install the extension from the Chrome Web Store.{% endtrans %}</p>
     90           </div>
     91           <div class="wallet-actions">
     92             <a class="wallet-button wallet-button-primary"
     93                href="https://chromewebstore.google.com/detail/gnu-taler-wallet-web-ui/millncjiddlpgdmkklmhfadpacifaonc">
     94               {% trans %}Add to Chrome{% endtrans %}
     95             </a>
     96           </div>
     97         </article>
     98 
     99         <article class="wallet-card">
    100           <div>
    101             <p class="wallet-platform-label">{% trans %}Browser extension{% endtrans %}</p>
    102             <h3>{% trans %}Firefox{% endtrans %}</h3>
    103             <p>{% trans %}Install the extension from Firefox Browser Add-ons.{% endtrans %}</p>
    104           </div>
    105           <div class="wallet-actions">
    106             <a class="wallet-button wallet-button-primary"
    107                href="https://addons.mozilla.org/en-US/firefox/addon/taler-wallet/">
    108               {% trans %}Add to Firefox{% endtrans %}
    109             </a>
    110           </div>
    111         </article>
    112       </div>
    113     </section>
    114 
    115     <section class="wallet-section" aria-labelledby="advanced-wallets-heading">
    116       <div class="wallet-section-heading">
    117         <h2 id="advanced-wallets-heading">{% trans %}Other and advanced options{% endtrans %}</h2>
    118         <p>{% trans %}Alternative installation methods for specialist devices and testing.{% endtrans %}</p>
    119       </div>
    120 
    121       <div class="wallet-advanced-options">
    122         <details>
    123           <summary>{% trans %}Ubuntu Touch{% endtrans %}</summary>
    124           <div class="wallet-details-content">
    125             <p>
    126               {% 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 %}
    127             </p>
    128             <a class="wallet-button wallet-button-secondary"
    129                href="https://f-droid.org/en/packages/net.taler.wallet.fdroid/">
    130               {% trans %}Get the Android wallet from F-Droid{% endtrans %}
    131             </a>
    132           </div>
    133         </details>
    134 
    135         <details>
    136           <summary>{% trans %}Android nightly test build{% endtrans %}</summary>
    137           <div class="wallet-details-content">
    138             <p class="wallet-warning">
    139               {% 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 %}
    140             </p>
    141             <a class="wallet-button wallet-button-secondary"
    142                href="https://taler.net/files/wallet/wallet-nightly-debug-latest.apk">
    143               {% trans %}Download the nightly debug APK{% endtrans %}
    144             </a>
    145           </div>
    146         </details>
    147       </div>
    148     </section>
    149 
    150     <section class="wallet-demo" aria-labelledby="wallet-demo-heading">
    151       <div>
    152         <h2 id="wallet-demo-heading">{% trans %}Wallet installed? Try a test payment{% endtrans %}</h2>
    153         <p>{% trans %}Explore GNU Taler with KUDOS, an imaginary demo currency. No real money is involved.{% endtrans %}</p>
    154       </div>
    155       <a class="wallet-button wallet-button-primary"
    156          href="{{ "https://demo.taler.net/" + lang + "/" }}">
    157         {% trans %}Try the demo{% endtrans %}
    158       </a>
    159     </section>
    160 
    161     <section class="wallet-resources" aria-labelledby="wallet-resources-heading">
    162       <h2 id="wallet-resources-heading">{% trans %}Help and project information{% endtrans %}</h2>
    163       <ul>
    164         <li><a href="https://docs.taler.net/wallet/index.html">{% trans %}Wallet manuals{% endtrans %}</a></li>
    165         <li><a href="{{ url_localized('faq.html') }}">{% trans %}Wallet FAQ{% endtrans %}</a></li>
    166         <li><a href="{{ url_localized('wallet-privacy-policy.html') }}">{% trans %}Mobile wallet privacy policy{% endtrans %}</a></li>
    167         <li><a href="{{ url_localized('wallet-webextension-privacy-policy.html') }}">{% trans %}Browser extension privacy policy{% endtrans %}</a></li>
    168         <li><a href="https://bugs.taler.net/">{% trans %}Report a problem{% endtrans %}</a></li>
    169         <li><a href="https://git.taler.net/taler/taler-typescript-core/">{% trans %}View the wallet source code{% endtrans %}</a></li>
    170       </ul>
    171     </section>
    172   </div>
    173 </main>
    174 <script>
    175   /*
    176   @licstart  The following is the entire license notice for the
    177   JavaScript code in this page.
    178 
    179   Copyright (C) 2026 Taler Systems SA
    180 
    181   The JavaScript code in this page is free software: you can
    182   redistribute it and/or modify it under the terms of the GNU
    183   General Public License (GNU GPL) as published by the Free Software
    184   Foundation, either version 3 of the License, or (at your option)
    185   any later version.  The code is distributed WITHOUT ANY WARRANTY;
    186   without even the implied warranty of MERCHANTABILITY or FITNESS
    187   FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
    188 
    189   As additional permission under GNU GPL version 3 section 7, you
    190   may distribute non-source (e.g., minimized or compacted) forms of
    191   that code without the copy of the GNU GPL normally required by
    192   section 4, provided you include this license notice and a URL
    193   through which recipients can access the Corresponding Source.
    194 
    195   @licend  The above is the entire license notice
    196   for the JavaScript code in this page.
    197   */
    198   (() => {
    199     const notice = document.getElementById("wallet-action-notice");
    200     const link = document.getElementById("wallet-action-link");
    201     const directLink = document.getElementById("wallet-action-direct-link");
    202     const defaultLabel = {{ _("Continue in your wallet") | tojson }};
    203     const labels = new Map([
    204       ["pay", {{ _("Continue payment") | tojson }}],
    205       ["pay-pull", {{ _("Continue payment") | tojson }}],
    206       ["pay-template", {{ _("Continue payment") | tojson }}],
    207       ["withdraw", {{ _("Continue withdrawal") | tojson }}],
    208       ["withdraw-exchange", {{ _("Continue withdrawal") | tojson }}],
    209       ["refund", {{ _("Continue refund") | tojson }}],
    210       ["pay-push", {{ _("Receive money") | tojson }}],
    211       ["restore", {{ _("Restore your wallet") | tojson }}],
    212     ]);
    213 
    214     function updateAction() {
    215       notice.hidden = true;
    216       link.removeAttribute("href");
    217       directLink.removeAttribute("href");
    218       link.textContent = defaultLabel;
    219 
    220       const fragment = window.location.hash.slice(1);
    221       if (/[\s\u0000-\u001f\u007f-\u009f]/.test(fragment)) {
    222         return;
    223       }
    224 
    225       // DD 103 permits #taler://action/rest, #/action/rest and #action/rest.
    226       // Keep the payload encoded and let the wallet validate its contents.
    227       const match = /^(?:taler:\/\/|\/)?([a-z-]+)\/(.+)$/i.exec(fragment);
    228       if (!match) {
    229         return;
    230       }
    231 
    232       link.href = "https://wallet.taler.net/link#" + fragment;
    233       directLink.href = "taler://" + match[1] + "/" + match[2];
    234       link.textContent = labels.get(match[1].toLowerCase()) || defaultLabel;
    235       notice.hidden = false;
    236     }
    237 
    238     updateAction();
    239     window.addEventListener("hashchange", updateAction);
    240   })();
    241 </script>
    242 {% endblock body_content %}