gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (d4710ba70 -> 3ce18d788)


From: gnunet
Subject: [taler-wallet-core] branch master updated (d4710ba70 -> 3ce18d788)
Date: Fri, 09 Dec 2022 13:31:09 +0100

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

sebasjm pushed a change to branch master
in repository wallet-core.

    from d4710ba70 Adapt libeufin test suite to recent API.
     new ced7fa6bb removed storybook ashes
     new 0bd47e107 copyleft header
     new 4ccdcf305 use string-prelude and poheader if it is present
     new e49902e1f using i18n from package
     new 3ce18d788 moving eslint to workspace dependency

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


Summary of changes:
 package.json                                       |    4 +-
 packages/demobank-ui/.gitignore                    |    2 -
 packages/demobank-ui/.storybook/.babelrc           |   25 -
 packages/demobank-ui/.storybook/main.js            |   57 -
 packages/demobank-ui/.storybook/preview.js         |   55 -
 packages/demobank-ui/build-bank-translations.sh    |   32 -
 .../copyleft-header.js                             |    2 +-
 packages/demobank-ui/package.json                  |   24 +-
 .../demobank-ui/src/components/AsyncButton.tsx     |    6 +-
 packages/demobank-ui/src/components/FileButton.tsx |   16 +
 .../demobank-ui/src/components/Notifications.tsx   |    2 +-
 packages/demobank-ui/src/components/QR.tsx         |    2 +-
 packages/demobank-ui/src/components/app.tsx        |   16 +
 .../src/components/fields/DateInput.tsx            |   18 +-
 .../src/components/fields/EmailInput.tsx           |   16 +
 .../src/components/fields/FileInput.tsx            |    2 +-
 .../src/components/fields/ImageInput.tsx           |    8 +-
 .../src/components/fields/NumberInput.tsx          |   16 +
 .../src/components/fields/TextInput.tsx            |   16 +
 .../src/components/menu/LangSelector.tsx           |   11 +-
 .../src/components/menu/NavigationBar.tsx          |    4 +-
 .../demobank-ui/src/components/menu/SideBar.tsx    |    2 +-
 packages/demobank-ui/src/components/menu/index.tsx |    2 +-
 .../src/components/picker/DatePicker.tsx           |    2 +-
 .../components/picker/DurationPicker.stories.tsx   |    4 +-
 .../src/components/picker/DurationPicker.tsx       |    2 +-
 packages/demobank-ui/src/context/backend.ts        |    2 +-
 packages/demobank-ui/src/context/pageState.ts      |    2 +-
 packages/demobank-ui/src/context/translation.ts    |    2 +-
 packages/demobank-ui/src/declaration.d.ts          |   16 +
 packages/demobank-ui/src/hooks/async.ts            |    2 +-
 packages/demobank-ui/src/hooks/backend.ts          |   16 +
 packages/demobank-ui/src/hooks/index.ts            |    2 +-
 packages/demobank-ui/src/i18n/bank.pot             |  365 +++++--
 packages/demobank-ui/src/i18n/de.po                |  362 +++++--
 packages/demobank-ui/src/i18n/en.po                |  418 +++++---
 packages/demobank-ui/src/i18n/es.po                |  430 ++++++++
 packages/demobank-ui/src/i18n/it.po                |  468 ++++++---
 packages/demobank-ui/src/i18n/poheader             |   29 +-
 packages/demobank-ui/src/i18n/strings-prelude      |    2 +-
 packages/demobank-ui/src/i18n/strings.ts           | 1102 ++++++++++++++++----
 packages/demobank-ui/src/index.tsx                 |   16 +
 .../demobank-ui/src/pages/home/PaymentOptions.tsx  |   16 +
 .../demobank-ui/src/pages/home/Transactions.tsx    |   16 +
 .../pages/home/WithdrawalConfirmationQuestion.tsx  |   16 +
 .../src/pages/home/WithdrawalQRCode.tsx            |   16 +
 .../demobank-ui/src/pages/home/index.stories.tsx   |   16 +
 packages/demobank-ui/src/scss/_form.scss           |    2 +-
 packages/demobank-ui/src/settings.ts               |   16 +
 packages/demobank-ui/src/stories.tsx               |   16 +-
 packages/demobank-ui/src/utils.ts                  |   16 +
 packages/pogen/src/po2ts.ts                        |   13 +-
 packages/pogen/src/potextract.ts                   |   48 +-
 pnpm-lock.yaml                                     |  302 +++++-
 54 files changed, 3093 insertions(+), 980 deletions(-)
 delete mode 100644 packages/demobank-ui/.storybook/.babelrc
 delete mode 100644 packages/demobank-ui/.storybook/main.js
 delete mode 100644 packages/demobank-ui/.storybook/preview.js
 delete mode 100755 packages/demobank-ui/build-bank-translations.sh
 copy packages/{taler-wallet-webextension => demobank-ui}/copyleft-header.js 
(99%)
 create mode 100644 packages/demobank-ui/src/i18n/es.po

diff --git a/package.json b/package.json
index 635fc6b72..f534404b0 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,9 @@
     "@linaria/esbuild": "^3.0.0-beta.15",
     "@linaria/shaker": "^3.0.0-beta.15",
     "esbuild": "^0.15.13",
+    "eslint": "^8.29.0",
+    "eslint-config-prettier": "^8.5.0",
     "nx": "15.0.1",
-    "prettier": "^2.5.1"
+    "prettier": "^2.7.1"
   }
 }
diff --git a/packages/demobank-ui/.gitignore b/packages/demobank-ui/.gitignore
index 32d0a5057..7e0633d5e 100644
--- a/packages/demobank-ui/.gitignore
+++ b/packages/demobank-ui/.gitignore
@@ -1,5 +1,3 @@
 node_modules
 /build
 /*.log
-/size-plugin.json
-/storybook-static/
diff --git a/packages/demobank-ui/.storybook/.babelrc 
b/packages/demobank-ui/.storybook/.babelrc
deleted file mode 100644
index 610b6f339..000000000
--- a/packages/demobank-ui/.storybook/.babelrc
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
- /**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
-{
-    "presets": [
-        "preact-cli/babel"
-    ]
-}
\ No newline at end of file
diff --git a/packages/demobank-ui/.storybook/main.js 
b/packages/demobank-ui/.storybook/main.js
deleted file mode 100644
index f8e4bbcc7..000000000
--- a/packages/demobank-ui/.storybook/main.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
-/**
-*
-* @author Sebastian Javier Marchano (sebasjm)
-*/
-
-
-module.exports = {
-  "stories": [
-    "../src/**/*.stories.mdx",
-    "../src/**/*.stories.@(js|jsx|ts|tsx)"
-  ],
-  "addons": [
-    "@storybook/preset-scss",
-    "@storybook/addon-a11y",
-    "@storybook/addon-essentials" //docs, control, actions, viewpot, toolbar, 
background
-  ],
-  // sb does not yet support new jsx transform by default
-  // https://github.com/storybookjs/storybook/issues/12881
-  // https://github.com/storybookjs/storybook/issues/12952
-  babel: async (options) => ({
-    ...options,
-    presets: [
-      ...options.presets,
-      [
-        '@babel/preset-react', {
-          runtime: 'automatic',
-        },
-        'preset-react-jsx-transform' 
-      ],
-    ],
-  }),
-  webpackFinal: (config) => {
-    // should be removed after storybook 6.3
-    // 
https://github.com/storybookjs/storybook/issues/12853#issuecomment-821576113
-    config.resolve.alias = {
-      react: "preact/compat",
-      "react-dom": "preact/compat",
-    };
-    return config;
-  },
-}
\ No newline at end of file
diff --git a/packages/demobank-ui/.storybook/preview.js 
b/packages/demobank-ui/.storybook/preview.js
deleted file mode 100644
index 9ab4d9404..000000000
--- a/packages/demobank-ui/.storybook/preview.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
-import "../src/scss/main.scss"
-import { TranslationProvider } from '../src/context/translation'
-import { h } from 'preact';
-
-
-export const parameters = {
-  controls: { expanded: true },
-  options: {
-    storySort: (a, b) => {
-      return (a[1].args.order ?? 0) - (b[1].args.order ?? 0)
-      // return a[1].kind === b[1].kind ? 0 : a[1].id.localeCompare(b[1].id, 
undefined, { numeric: true })
-    }
-  },
-}
-
-export const globalTypes = {
-  locale: {
-    name: 'Locale',
-    description: 'Internationalization locale',
-    defaultValue: 'en',
-    toolbar: {
-      icon: 'globe',
-      items: [
-        { value: 'en', right: '🇺🇸', title: 'English' },
-        { value: 'es', right: '🇪🇸', title: 'Spanish' },
-      ],
-    },
-  },
-};
-
-export const decorators = [
-  (Story, { globals }) => {
-    document.body.parentElement.classList = "has-aside-left 
has-aside-mobile-transition has-navbar-fixed-top has-aside-expanded"
-    return <Story />
-  },
-  (Story, { globals }) => <TranslationProvider initial='en' 
forceLang={globals.locale}>
-    <Story />
-  </TranslationProvider>,
-];
diff --git a/packages/demobank-ui/build-bank-translations.sh 
b/packages/demobank-ui/build-bank-translations.sh
deleted file mode 100755
index 85c8ad0c1..000000000
--- a/packages/demobank-ui/build-bank-translations.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-set -eu
-
-# NOTE: the <Translate> node somehow didn't get
-# the strings extracted.  Only i18n`` did
-
-function build {
-  POTGEN=node_modules/@gnu-taler/pogen/bin/pogen
-  PACKAGE_NAME=$1
-
-  find src/ \( -type f -name "*.ts" -or -name "*.tsx" \) ! -name "*.d.ts" \
-      | xargs node $POTGEN \
-      | msguniq \
-      | msgmerge src/i18n/poheader - \
-      > src/i18n/$PACKAGE_NAME.pot
-  
-  # merge existing translations: fails when NO .po-files were found.
-  for pofile in $(ls src/i18n/*.po 2> /dev/null || true); do 
-    echo merging $pofile; 
-    msgmerge -o $pofile $pofile src/i18n/$PACKAGE_NAME.pot; 
-  done;
-  
-  # generate .ts file containing all translations
-  cat src/i18n/strings-prelude > src/i18n/strings.ts
-  for pofile in $(ls src/i18n/*.po 2> /dev/null || true); do \
-    echo appending $pofile; \
-    ./contrib/po2ts $pofile >> src/i18n/strings.ts; \
-  done; 
-}
-
-build bank
diff --git a/packages/taler-wallet-webextension/copyleft-header.js 
b/packages/demobank-ui/copyleft-header.js
similarity index 99%
copy from packages/taler-wallet-webextension/copyleft-header.js
copy to packages/demobank-ui/copyleft-header.js
index cb788e5a1..2635717c5 100644
--- a/packages/taler-wallet-webextension/copyleft-header.js
+++ b/packages/demobank-ui/copyleft-header.js
@@ -12,4 +12,4 @@
 
  You should have received a copy of the GNU General Public License along with
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
\ No newline at end of file
+ */
diff --git a/packages/demobank-ui/package.json 
b/packages/demobank-ui/package.json
index 41031977f..0be83c61c 100644
--- a/packages/demobank-ui/package.json
+++ b/packages/demobank-ui/package.json
@@ -7,6 +7,10 @@
     "build": "./build.mjs",
     "check": "tsc",
     "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
+    "i18n:extract": "pogen extract",
+    "i18n:merge": "pogen merge",
+    "i18n:emit": "pogen emit",
+    "i18n": "pnpm i18n:extract && pnpm i18n:merge && pnpm i18n:emit",
     "pretty": "prettier --write src"
   },
   "dependencies": {
@@ -20,6 +24,20 @@
     "qrcode-generator": "^1.4.4",
     "swr": "1.3.0"
   },
+  "eslintConfig": {
+    "plugins": [
+      "header"
+    ],
+    "rules": {
+      "header/header": [
+        2,
+        "copyleft-header.js"
+      ]
+    },
+    "extends": [
+      "prettier"
+    ]
+  },
   "devDependencies": {
     "@creativebulma/bulma-tooltip": "^1.2.0",
     "@gnu-taler/pogen": "^0.0.5",
@@ -30,10 +48,12 @@
     "bulma-checkbox": "^1.1.1",
     "bulma-radio": "^1.1.1",
     "esbuild": "^0.15.12",
-    "eslint": "^8.26.0",
     "eslint-config-preact": "^1.2.0",
     "po2json": "^0.4.5",
     "sass": "1.56.1",
     "typescript": "^4.4.4"
+  },
+  "pogen": {
+    "domain": "bank"
   }
-}
+}
\ No newline at end of file
diff --git a/packages/demobank-ui/src/components/AsyncButton.tsx 
b/packages/demobank-ui/src/components/AsyncButton.tsx
index eec11f4a1..0e1391109 100644
--- a/packages/demobank-ui/src/components/AsyncButton.tsx
+++ b/packages/demobank-ui/src/components/AsyncButton.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -21,9 +21,7 @@
 
 import { ComponentChildren, h, VNode } from "preact";
 import { useLayoutEffect, useRef } from "preact/hooks";
-// import { LoadingModal } from "../modal";
-import { useAsync } from "../hooks/async";
-// import { Translate } from "../../i18n";
+import { useAsync } from "../hooks/async.js";
 
 type Props = {
   children: ComponentChildren;
diff --git a/packages/demobank-ui/src/components/FileButton.tsx 
b/packages/demobank-ui/src/components/FileButton.tsx
index 61fe0975d..d7ed52f5d 100644
--- a/packages/demobank-ui/src/components/FileButton.tsx
+++ b/packages/demobank-ui/src/components/FileButton.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { h, VNode } from "preact";
 import { useRef, useState } from "preact/hooks";
 
diff --git a/packages/demobank-ui/src/components/Notifications.tsx 
b/packages/demobank-ui/src/components/Notifications.tsx
index e34550386..6dd3a2d50 100644
--- a/packages/demobank-ui/src/components/Notifications.tsx
+++ b/packages/demobank-ui/src/components/Notifications.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/components/QR.tsx 
b/packages/demobank-ui/src/components/QR.tsx
index 4e95137e1..c1c159ef8 100644
--- a/packages/demobank-ui/src/components/QR.tsx
+++ b/packages/demobank-ui/src/components/QR.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/components/app.tsx 
b/packages/demobank-ui/src/components/app.tsx
index 07ac9b8f3..3c3784f19 100644
--- a/packages/demobank-ui/src/components/app.tsx
+++ b/packages/demobank-ui/src/components/app.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import {
   globalLogLevel,
   setGlobalLogLevelFromString,
diff --git a/packages/demobank-ui/src/components/fields/DateInput.tsx 
b/packages/demobank-ui/src/components/fields/DateInput.tsx
index 22a83c93c..0eeb1b2fd 100644
--- a/packages/demobank-ui/src/components/fields/DateInput.tsx
+++ b/packages/demobank-ui/src/components/fields/DateInput.tsx
@@ -1,7 +1,23 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { format, subYears } from "date-fns";
 import { h, VNode } from "preact";
 import { useLayoutEffect, useRef, useState } from "preact/hooks";
-import { DatePicker } from "../picker/DatePicker";
+import { DatePicker } from "../picker/DatePicker.js";
 
 export interface DateInputProps {
   label: string;
diff --git a/packages/demobank-ui/src/components/fields/EmailInput.tsx 
b/packages/demobank-ui/src/components/fields/EmailInput.tsx
index 2a22b26e8..9f6624aa5 100644
--- a/packages/demobank-ui/src/components/fields/EmailInput.tsx
+++ b/packages/demobank-ui/src/components/fields/EmailInput.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { h, VNode } from "preact";
 import { useLayoutEffect, useRef, useState } from "preact/hooks";
 
diff --git a/packages/demobank-ui/src/components/fields/FileInput.tsx 
b/packages/demobank-ui/src/components/fields/FileInput.tsx
index 8c5269039..cc49a632d 100644
--- a/packages/demobank-ui/src/components/fields/FileInput.tsx
+++ b/packages/demobank-ui/src/components/fields/FileInput.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/components/fields/ImageInput.tsx 
b/packages/demobank-ui/src/components/fields/ImageInput.tsx
index c190de9a9..15b25f1c2 100644
--- a/packages/demobank-ui/src/components/fields/ImageInput.tsx
+++ b/packages/demobank-ui/src/components/fields/ImageInput.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -14,14 +14,10 @@
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-/**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
 import { h, VNode } from "preact";
 import { useLayoutEffect, useRef, useState } from "preact/hooks";
 import emptyImage from "../../assets/empty.png";
-import { TextInputProps } from "./TextInput";
+import { TextInputProps } from "./TextInput.js";
 
 const MAX_IMAGE_UPLOAD_SIZE = 1024 * 1024;
 
diff --git a/packages/demobank-ui/src/components/fields/NumberInput.tsx 
b/packages/demobank-ui/src/components/fields/NumberInput.tsx
index 1a54d24b6..69af18c77 100644
--- a/packages/demobank-ui/src/components/fields/NumberInput.tsx
+++ b/packages/demobank-ui/src/components/fields/NumberInput.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { h, VNode } from "preact";
 import { useLayoutEffect, useRef, useState } from "preact/hooks";
 
diff --git a/packages/demobank-ui/src/components/fields/TextInput.tsx 
b/packages/demobank-ui/src/components/fields/TextInput.tsx
index cc7104cf5..5c6fe3157 100644
--- a/packages/demobank-ui/src/components/fields/TextInput.tsx
+++ b/packages/demobank-ui/src/components/fields/TextInput.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { h, VNode } from "preact";
 import { useLayoutEffect, useRef, useState } from "preact/hooks";
 
diff --git a/packages/demobank-ui/src/components/menu/LangSelector.tsx 
b/packages/demobank-ui/src/components/menu/LangSelector.tsx
index 69d6ee64a..1487120e0 100644
--- a/packages/demobank-ui/src/components/menu/LangSelector.tsx
+++ b/packages/demobank-ui/src/components/menu/LangSelector.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -19,11 +19,10 @@
  * @author Sebastian Javier Marchano (sebasjm)
  */
 
-import { h, VNode, Fragment } from "preact";
-import { useCallback, useEffect, useState } from "preact/hooks";
-import langIcon from "../../assets/icons/languageicon.svg";
-import { useTranslationContext } from "../../context/translation";
-import { strings as messages } from "../../i18n/strings";
+import { Fragment, h, VNode } from "preact";
+import { useEffect, useState } from "preact/hooks";
+import { useTranslationContext } from "../../context/translation.js";
+import { strings as messages } from "../../i18n/strings.js";
 
 type LangsNames = {
   [P in keyof typeof messages]: string;
diff --git a/packages/demobank-ui/src/components/menu/NavigationBar.tsx 
b/packages/demobank-ui/src/components/menu/NavigationBar.tsx
index d344875eb..5c57d2c95 100644
--- a/packages/demobank-ui/src/components/menu/NavigationBar.tsx
+++ b/packages/demobank-ui/src/components/menu/NavigationBar.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -20,8 +20,6 @@
  */
 
 import { h, VNode } from "preact";
-import logo from "../../assets/logo.jpeg";
-import { LangSelectorLikePy as LangSelector } from "./LangSelector";
 
 interface Props {
   onMobileMenu: () => void;
diff --git a/packages/demobank-ui/src/components/menu/SideBar.tsx 
b/packages/demobank-ui/src/components/menu/SideBar.tsx
index 7bfba2a75..6acee7b57 100644
--- a/packages/demobank-ui/src/components/menu/SideBar.tsx
+++ b/packages/demobank-ui/src/components/menu/SideBar.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/components/menu/index.tsx 
b/packages/demobank-ui/src/components/menu/index.tsx
index 6c8292a0c..c0a845a62 100644
--- a/packages/demobank-ui/src/components/menu/index.tsx
+++ b/packages/demobank-ui/src/components/menu/index.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/components/picker/DatePicker.tsx 
b/packages/demobank-ui/src/components/picker/DatePicker.tsx
index ba53578ef..0a93144ec 100644
--- a/packages/demobank-ui/src/components/picker/DatePicker.tsx
+++ b/packages/demobank-ui/src/components/picker/DatePicker.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git 
a/packages/demobank-ui/src/components/picker/DurationPicker.stories.tsx 
b/packages/demobank-ui/src/components/picker/DurationPicker.stories.tsx
index 7f96cc15b..db417b949 100644
--- a/packages/demobank-ui/src/components/picker/DurationPicker.stories.tsx
+++ b/packages/demobank-ui/src/components/picker/DurationPicker.stories.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -21,7 +21,7 @@
 
 import { h, FunctionalComponent } from "preact";
 import { useState } from "preact/hooks";
-import { DurationPicker as TestedComponent } from "./DurationPicker";
+import { DurationPicker as TestedComponent } from "./DurationPicker.js";
 
 export default {
   title: "Components/Picker/Duration",
diff --git a/packages/demobank-ui/src/components/picker/DurationPicker.tsx 
b/packages/demobank-ui/src/components/picker/DurationPicker.tsx
index b8a7671c3..677c3ecd7 100644
--- a/packages/demobank-ui/src/components/picker/DurationPicker.tsx
+++ b/packages/demobank-ui/src/components/picker/DurationPicker.tsx
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/context/backend.ts 
b/packages/demobank-ui/src/context/backend.ts
index 1c40506c9..58907e565 100644
--- a/packages/demobank-ui/src/context/backend.ts
+++ b/packages/demobank-ui/src/context/backend.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/context/pageState.ts 
b/packages/demobank-ui/src/context/pageState.ts
index b954ad20e..0537a913a 100644
--- a/packages/demobank-ui/src/context/pageState.ts
+++ b/packages/demobank-ui/src/context/pageState.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/context/translation.ts 
b/packages/demobank-ui/src/context/translation.ts
index 0a7e9429d..12e4eda2b 100644
--- a/packages/demobank-ui/src/context/translation.ts
+++ b/packages/demobank-ui/src/context/translation.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/declaration.d.ts 
b/packages/demobank-ui/src/declaration.d.ts
index 1b56f1358..29538e44a 100644
--- a/packages/demobank-ui/src/declaration.d.ts
+++ b/packages/demobank-ui/src/declaration.d.ts
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 declare module "*.css" {
   const mapping: Record<string, string>;
   export default mapping;
diff --git a/packages/demobank-ui/src/hooks/async.ts 
b/packages/demobank-ui/src/hooks/async.ts
index 090522d30..6492b7729 100644
--- a/packages/demobank-ui/src/hooks/async.ts
+++ b/packages/demobank-ui/src/hooks/async.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/hooks/backend.ts 
b/packages/demobank-ui/src/hooks/backend.ts
index babdcd830..f10696ac4 100644
--- a/packages/demobank-ui/src/hooks/backend.ts
+++ b/packages/demobank-ui/src/hooks/backend.ts
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { hooks } from "@gnu-taler/web-util/lib/index.browser";
 
 /**
diff --git a/packages/demobank-ui/src/hooks/index.ts 
b/packages/demobank-ui/src/hooks/index.ts
index c6e3fe8c1..007061f1a 100644
--- a/packages/demobank-ui/src/hooks/index.ts
+++ b/packages/demobank-ui/src/hooks/index.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/i18n/bank.pot 
b/packages/demobank-ui/src/i18n/bank.pot
index 862aa4d97..a89dd67d2 100644
--- a/packages/demobank-ui/src/i18n/bank.pot
+++ b/packages/demobank-ui/src/i18n/bank.pot
@@ -1,258 +1,401 @@
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:55
+# This file is part of GNU Taler
+# (C) 2022 Taler Systems S.A.
+#
+# GNU Taler is free software; you can redistribute it and/or modify it under 
the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Taler Bank\n"
+"Report-Msgid-Bugs-To: taler@gnu.org\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: src/pages/home/BankFrame.tsx:55
 #, c-format
-msgid "days"
+msgid "Logout"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:65
+#: src/pages/home/BankFrame.tsx:73
 #, c-format
-msgid "hours"
+msgid "Skip to main content"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:76
+#: src/pages/home/BankFrame.tsx:82
 #, c-format
-msgid "minutes"
+msgid ""
+"This part of the demo shows how a bank that supports Taler directly would 
work. "
+"In addition to using your own bank account, you can also see the transaction "
+"history of some %1$s."
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:87
+#: src/pages/home/BankFrame.tsx:94
 #, c-format
-msgid "seconds"
+msgid "Taler logo"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:734
+#: src/pages/home/LoginForm.tsx:41
 #, c-format
-msgid "Clear"
+msgid "Missing username"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:761
+#: src/pages/home/LoginForm.tsx:42
 #, c-format
-msgid "Logout"
+msgid "Missing password"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:782
+#: src/pages/home/LoginForm.tsx:49
 #, c-format
-msgid "Demo Bank"
+msgid "Please login!"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:837
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:840
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1189
+#: src/pages/home/LoginForm.tsx:51
 #, c-format
-msgid "Go back"
+msgid "Username:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:845
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:906
+#: src/pages/home/LoginForm.tsx:71
 #, c-format
-msgid "Wire transfer"
+msgid "Password:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:846
+#: src/pages/home/LoginForm.tsx:100
 #, c-format
-msgid "Transfer money to another account of this bank:"
+msgid "Login"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:897
+#: src/pages/home/LoginForm.tsx:110
 #, c-format
-msgid "Want to try the raw payto://-format?"
+msgid "Register"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:907
+#: src/pages/home/PaytoWireTransferForm.tsx:57
 #, c-format
-msgid "Transfer money via the Payto system:"
+msgid "Missing IBAN"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:916
+#: src/pages/home/PaytoWireTransferForm.tsx:59
 #, c-format
-msgid "payto address"
+msgid "IBAN should have just uppercased letters and numbers"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:926
+#: src/pages/home/PaytoWireTransferForm.tsx:61
 #, c-format
-msgid "Confirm"
+msgid "Missing subject"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:956
+#: src/pages/home/PaytoWireTransferForm.tsx:63
 #, c-format
-msgid "Confirm Withdrawal"
+msgid "Missing amount"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1026
+#: src/pages/home/PaytoWireTransferForm.tsx:65
 #, c-format
-msgid "Waiting the bank to create the operation..."
+msgid "Amount is not valid"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1044
+#: src/pages/home/PaytoWireTransferForm.tsx:67
 #, c-format
-msgid "This withdrawal was aborted!"
+msgid "Should be greater than 0"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1051
+#: src/pages/home/PaytoWireTransferForm.tsx:76
 #, c-format
-msgid "Withdraw to a Taler Wallet"
+msgid "Receiver IBAN:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1052
+#: src/pages/home/PaytoWireTransferForm.tsx:99
 #, c-format
-msgid "You can use this QR code to withdraw to your mobile wallet:"
+msgid "Transfer subject:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1054
+#: src/pages/home/PaytoWireTransferForm.tsx:120
 #, c-format
-msgid "this link"
+msgid "Amount:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1060
+#: src/pages/home/PaytoWireTransferForm.tsx:174
 #, c-format
-msgid "Abort"
+msgid "Field(s) missing."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1084
+#: src/pages/home/PaytoWireTransferForm.tsx:223
 #, c-format
-msgid "Start withdrawal"
+msgid "Want to try the raw payto://-format?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1101
+#: src/pages/home/PaytoWireTransferForm.tsx:231
 #, c-format
-msgid "Withdraw Money into a Taler wallet"
+msgid "Missing payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1105
+#: src/pages/home/PaytoWireTransferForm.tsx:233
 #, c-format
-msgid "Amount to withdraw"
+msgid "Payto does not follow the pattern"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1137
+#: src/pages/home/PaytoWireTransferForm.tsx:239
 #, c-format
-msgid "Please login!"
+msgid "Transfer money to account identified by payto:// URI:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1169
+#: src/pages/home/PaytoWireTransferForm.tsx:242
 #, c-format
-msgid "Login"
+msgid "payto URI:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1184
+#: src/pages/home/PaytoWireTransferForm.tsx:251
 #, c-format
-msgid "Register to the euFin bank!"
+msgid "payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1194
+#: src/pages/home/PaytoWireTransferForm.tsx:275
 #, c-format
-msgid "Registration form"
+msgid "Send"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1232
+#: src/pages/home/PaytoWireTransferForm.tsx:309
 #, c-format
-msgid "Register"
+msgid "Use wire-transfer form?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1272
+#: src/pages/home/WalletWithdrawForm.tsx:47
+#, c-format
+msgid "Amount to withdraw:"
+msgstr ""
+
+#: src/pages/home/WalletWithdrawForm.tsx:81
+#, c-format
+msgid "Withdraw"
+msgstr ""
+
+#: src/pages/home/PaymentOptions.tsx:44
+#, c-format
+msgid "Obtain digital cash"
+msgstr ""
+
+#: src/pages/home/PaymentOptions.tsx:52
+#, c-format
+msgid "Transfer to bank account"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:69
 #, c-format
 msgid "Date"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1273
+#: src/pages/home/Transactions.tsx:70
 #, c-format
 msgid "Amount"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1274
+#: src/pages/home/Transactions.tsx:71
 #, c-format
 msgid "Counterpart"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1275
+#: src/pages/home/Transactions.tsx:72
 #, c-format
 msgid "Subject"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1343
+#: src/pages/home/QrCodeSection.tsx:41
+#, c-format
+msgid "Transfer to Taler Wallet"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:44
+#, c-format
+msgid "Use this QR code to withdraw to your mobile wallet:"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:48
+#, c-format
+msgid "this link"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
+#, c-format
+msgid "Confirm Withdrawal"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
+#, c-format
+msgid "Authorize withdrawal by solving challenge"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
+#, c-format
+msgid "What is"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
+#, c-format
+msgid "Answer is wrong."
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
+#, c-format
+msgid ""
+"A this point, a %1$s bank would ask for an additional authentication proof "
+"(PIN/TAN, one time password, ..), instead of a simple calculation."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:54
+#, c-format
+msgid "Abort"
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:74
+#, c-format
+msgid "withdrawal (%1$s) was never (correctly) created at the bank..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:88
+#, c-format
+msgid "Waiting the bank to create the operation..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:102
+#, c-format
+msgid "This withdrawal was aborted!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:40
+#, c-format
+msgid "Welcome to %1$s!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:133
 #, c-format
 msgid "Username or account label '%1$s' not found.  Won't login."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1365
+#: src/pages/home/AccountPage.tsx:159
 #, c-format
 msgid "Wrong credentials given."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1374
+#: src/pages/home/AccountPage.tsx:169
 #, c-format
 msgid "Account information could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1394
+#: src/pages/home/AccountPage.tsx:210
 #, c-format
-msgid "Close wire transfer"
+msgid "Welcome, %1$s !"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1412
+#: src/pages/home/AccountPage.tsx:221
 #, c-format
-msgid "Close Taler withdrawal"
+msgid "Bank account balance"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1457
+#: src/pages/home/AccountPage.tsx:237
 #, c-format
-msgid "Bank account balance:"
+msgid "Payments"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1469
+#: src/pages/home/AccountPage.tsx:243
 #, c-format
 msgid "Latest transactions:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1474
-#, c-format
-msgid "Transfer money manually"
-msgstr ""
-
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1543
+#: src/pages/home/PublicHistoriesPage.tsx:83
 #, c-format
 msgid "List of public accounts was not found."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1552
+#: src/pages/home/PublicHistoriesPage.tsx:95
 #, c-format
 msgid "List of public accounts could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1584
+#: src/pages/home/PublicHistoriesPage.tsx:143
 #, c-format
 msgid "History of public accounts"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1643
+#: src/pages/home/RegistrationPage.tsx:36
 #, c-format
-msgid "Page has a problem: logged in but backend state is lost."
+msgid "Currently, the bank is not accepting new registrations!"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1667
+#: src/pages/home/RegistrationPage.tsx:65
 #, c-format
-msgid "Welcome to the euFin bank!"
+msgid "Use only letter and numbers starting with a lower case letter"
 msgstr ""
 
-#  This file is part of GNU Taler
-#  (C) 2021 Taler Systems S.A.
-#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 3, or (at your option) any later version.
-#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#  You should have received a copy of the GNU General Public License along with
-#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
+#: src/pages/home/RegistrationPage.tsx:75
+#, c-format
+msgid "Password don't match"
 msgstr ""
-"Project-Id-Version: Taler Wallet\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-23 00:00+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"
-"Language: \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"
+
+#: src/pages/home/RegistrationPage.tsx:86
+#, c-format
+msgid "Please register!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:123
+#, c-format
+msgid "Repeat Password:"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:53
+#, c-format
+msgid "Bank menu"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:59
+#, c-format
+msgid "Select option1"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:66
+#, c-format
+msgid "Select option2"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:55
+#, c-format
+msgid "days"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:65
+#, c-format
+msgid "hours"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:76
+#, c-format
+msgid "minutes"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:87
+#, c-format
+msgid "seconds"
+msgstr ""
+
diff --git a/packages/demobank-ui/src/i18n/de.po 
b/packages/demobank-ui/src/i18n/de.po
index bd4158037..174b15ba3 100644
--- a/packages/demobank-ui/src/i18n/de.po
+++ b/packages/demobank-ui/src/i18n/de.po
@@ -1,257 +1,399 @@
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:55
+#  This file is part of GNU Taler
+#  (C) 2021 Taler Systems S.A.
+#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 3, or (at your option) any later version.
+#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#  You should have received a copy of the GNU General Public License along with
+#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Taler Wallet\n"
+"Report-Msgid-Bugs-To: taler@gnu.org\n"
+"POT-Creation-Date: 2016-11-23 00:00+0100\n"
+"PO-Revision-Date: 2022-01-08 09:57+0100\n"
+"Last-Translator:  <translate@taler.net>\n"
+"Language-Team: German\n"
+"Language: de\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"
+
+#: src/pages/home/BankFrame.tsx:55
 #, c-format
-msgid "days"
+msgid "Logout"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:65
+#: src/pages/home/BankFrame.tsx:73
 #, c-format
-msgid "hours"
+msgid "Skip to main content"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:76
+#: src/pages/home/BankFrame.tsx:82
 #, c-format
-msgid "minutes"
+msgid ""
+"This part of the demo shows how a bank that supports Taler directly would "
+"work. In addition to using your own bank account, you can also see the "
+"transaction history of some %1$s."
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:87
+#: src/pages/home/BankFrame.tsx:94
 #, c-format
-msgid "seconds"
+msgid "Taler logo"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:734
+#: src/pages/home/LoginForm.tsx:41
 #, c-format
-msgid "Clear"
+msgid "Missing username"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:761
+#: src/pages/home/LoginForm.tsx:42
 #, c-format
-msgid "Logout"
+msgid "Missing password"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:782
+#: src/pages/home/LoginForm.tsx:49
 #, c-format
-msgid "Demo Bank"
+msgid "Please login!"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:837
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:840
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1189
+#: src/pages/home/LoginForm.tsx:51
 #, c-format
-msgid "Go back"
+msgid "Username:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:845
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:906
+#: src/pages/home/LoginForm.tsx:71
 #, c-format
-msgid "Wire transfer"
+msgid "Password:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:846
+#: src/pages/home/LoginForm.tsx:100
 #, c-format
-msgid "Transfer money to another account of this bank:"
+msgid "Login"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:897
+#: src/pages/home/LoginForm.tsx:110
 #, c-format
-msgid "Want to try the raw payto://-format?"
+msgid "Register"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:907
+#: src/pages/home/PaytoWireTransferForm.tsx:57
 #, c-format
-msgid "Transfer money via the Payto system:"
+msgid "Missing IBAN"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:916
+#: src/pages/home/PaytoWireTransferForm.tsx:59
 #, c-format
-msgid "payto address"
+msgid "IBAN should have just uppercased letters and numbers"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:926
+#: src/pages/home/PaytoWireTransferForm.tsx:61
 #, c-format
-msgid "Confirm"
+msgid "Missing subject"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:956
+#: src/pages/home/PaytoWireTransferForm.tsx:63
 #, c-format
-msgid "Confirm Withdrawal"
+msgid "Missing amount"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1026
+#: src/pages/home/PaytoWireTransferForm.tsx:65
 #, c-format
-msgid "Waiting the bank to create the operaion..."
+msgid "Amount is not valid"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1044
+#: src/pages/home/PaytoWireTransferForm.tsx:67
 #, c-format
-msgid "This withdrawal was aborted!"
+msgid "Should be greater than 0"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1051
+#: src/pages/home/PaytoWireTransferForm.tsx:76
 #, c-format
-msgid "Withdraw to a Taler Wallet"
+msgid "Receiver IBAN:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1052
+#: src/pages/home/PaytoWireTransferForm.tsx:99
 #, c-format
-msgid "You can use this QR code to withdraw to your mobile wallet:"
+msgid "Transfer subject:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1054
+#: src/pages/home/PaytoWireTransferForm.tsx:120
 #, c-format
-msgid "this link"
+msgid "Amount:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1060
+#: src/pages/home/PaytoWireTransferForm.tsx:174
 #, c-format
-msgid "Abort"
+msgid "Field(s) missing."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1084
+#: src/pages/home/PaytoWireTransferForm.tsx:223
 #, c-format
-msgid "Start withdrawal"
+msgid "Want to try the raw payto://-format?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1101
+#: src/pages/home/PaytoWireTransferForm.tsx:231
 #, c-format
-msgid "Withdraw Money into a Taler wallet"
+msgid "Missing payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1105
+#: src/pages/home/PaytoWireTransferForm.tsx:233
 #, c-format
-msgid "Amount to withdraw"
+msgid "Payto does not follow the pattern"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1137
+#: src/pages/home/PaytoWireTransferForm.tsx:239
 #, c-format
-msgid "Please login!"
+msgid "Transfer money to account identified by payto:// URI:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1169
+#: src/pages/home/PaytoWireTransferForm.tsx:242
 #, c-format
-msgid "Login"
+msgid "payto URI:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1184
+#: src/pages/home/PaytoWireTransferForm.tsx:251
 #, c-format
-msgid "Register to the euFin bank!"
+msgid "payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1194
+#: src/pages/home/PaytoWireTransferForm.tsx:275
 #, c-format
-msgid "Registration form"
+msgid "Send"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1232
+#: src/pages/home/PaytoWireTransferForm.tsx:309
 #, c-format
-msgid "Register"
+msgid "Use wire-transfer form?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1272
+#: src/pages/home/WalletWithdrawForm.tsx:47
+#, c-format
+msgid "Amount to withdraw:"
+msgstr ""
+
+#: src/pages/home/WalletWithdrawForm.tsx:81
+#, c-format
+msgid "Withdraw"
+msgstr ""
+
+#: src/pages/home/PaymentOptions.tsx:44
+#, c-format
+msgid "Obtain digital cash"
+msgstr ""
+
+#: src/pages/home/PaymentOptions.tsx:52
+#, c-format
+msgid "Transfer to bank account"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:69
 #, c-format
 msgid "Date"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1273
+#: src/pages/home/Transactions.tsx:70
 #, c-format
 msgid "Amount"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1274
+#: src/pages/home/Transactions.tsx:71
 #, c-format
 msgid "Counterpart"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1275
+#: src/pages/home/Transactions.tsx:72
 #, c-format
 msgid "Subject"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1343
+#: src/pages/home/QrCodeSection.tsx:41
+#, c-format
+msgid "Transfer to Taler Wallet"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:44
+#, c-format
+msgid "Use this QR code to withdraw to your mobile wallet:"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:48
+#, c-format
+msgid "this link"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
+#, c-format
+msgid "Confirm Withdrawal"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
+#, c-format
+msgid "Authorize withdrawal by solving challenge"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
+#, c-format
+msgid "What is"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
+#, c-format
+msgid "Answer is wrong."
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
+#, c-format
+msgid ""
+"A this point, a %1$s bank would ask for an additional authentication proof "
+"(PIN/TAN, one time password, ..), instead of a simple calculation."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:54
+#, c-format
+msgid "Abort"
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:74
+#, c-format
+msgid "withdrawal (%1$s) was never (correctly) created at the bank..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:88
+#, c-format
+msgid "Waiting the bank to create the operation..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:102
+#, c-format
+msgid "This withdrawal was aborted!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:40
+#, c-format
+msgid "Welcome to %1$s!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:133
 #, c-format
 msgid "Username or account label '%1$s' not found.  Won't login."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1365
+#: src/pages/home/AccountPage.tsx:159
 #, c-format
 msgid "Wrong credentials given."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1374
+#: src/pages/home/AccountPage.tsx:169
 #, c-format
 msgid "Account information could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1394
+#: src/pages/home/AccountPage.tsx:210
 #, c-format
-msgid "Close wire transfer"
+msgid "Welcome, %1$s !"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1412
+#: src/pages/home/AccountPage.tsx:221
 #, c-format
-msgid "Close Taler withdrawal"
+msgid "Bank account balance"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1457
+#: src/pages/home/AccountPage.tsx:237
 #, c-format
-msgid "Bank account balance:"
+msgid "Payments"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1469
+#: src/pages/home/AccountPage.tsx:243
 #, c-format
 msgid "Latest transactions:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1474
-#, c-format
-msgid "Transfer money manually"
-msgstr ""
-
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1543
+#: src/pages/home/PublicHistoriesPage.tsx:83
 #, c-format
 msgid "List of public accounts was not found."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1552
+#: src/pages/home/PublicHistoriesPage.tsx:95
 #, c-format
 msgid "List of public accounts could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1584
+#: src/pages/home/PublicHistoriesPage.tsx:143
 #, c-format
 msgid "History of public accounts"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1643
+#: src/pages/home/RegistrationPage.tsx:36
 #, c-format
-msgid "Page has a problem: logged in but backend state is lost."
+msgid "Currently, the bank is not accepting new registrations!"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1667
+#: src/pages/home/RegistrationPage.tsx:65
 #, c-format
-msgid "Welcome to the euFin bank!"
+msgid "Use only letter and numbers starting with a lower case letter"
 msgstr ""
 
-#  This file is part of GNU Taler
-#  (C) 2021 Taler Systems S.A.
-#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 3, or (at your option) any later version.
-#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#  You should have received a copy of the GNU General Public License along with
-#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-#
-msgid ""
+#: src/pages/home/RegistrationPage.tsx:75
+#, c-format
+msgid "Password don't match"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:86
+#, c-format
+msgid "Please register!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:123
+#, c-format
+msgid "Repeat Password:"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:53
+#, c-format
+msgid "Bank menu"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:59
+#, c-format
+msgid "Select option1"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:66
+#, c-format
+msgid "Select option2"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:55
+#, c-format
+msgid "days"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:65
+#, c-format
+msgid "hours"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:76
+#, c-format
+msgid "minutes"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:87
+#, c-format
+msgid "seconds"
 msgstr ""
-"Project-Id-Version: Taler Wallet\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-23 00:00+0100\n"
-"PO-Revision-Date: 2022-01-08 09:57+0100\n"
-"Last-Translator:  <translate@taler.net>\n"
-"Language-Team: German\n"
-"Language: de\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"
diff --git a/packages/demobank-ui/src/i18n/en.po 
b/packages/demobank-ui/src/i18n/en.po
index 4cbc9e74c..a45f65ab5 100644
--- a/packages/demobank-ui/src/i18n/en.po
+++ b/packages/demobank-ui/src/i18n/en.po
@@ -1,260 +1,424 @@
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:55
+#  This file is part of GNU Taler
+#  (C) 2021 Taler Systems S.A.
+#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 3, or (at your option) any later version.
+#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#  You should have received a copy of the GNU General Public License along with
+#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Taler Wallet\n"
+"Report-Msgid-Bugs-To: taler@gnu.org\n"
+"POT-Creation-Date: 2016-11-23 00:00+0100\n"
+"PO-Revision-Date: 2022-01-08 09:57+0100\n"
+"Last-Translator:  <translate@taler.net>\n"
+"Language-Team: English\n"
+"Language: en\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"
+
+#: src/pages/home/BankFrame.tsx:55
 #, c-format
-msgid "days"
-msgstr "days"
+msgid "Logout"
+msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:65
+#: src/pages/home/BankFrame.tsx:73
 #, c-format
-msgid "hours"
-msgstr "hours"
+msgid "Skip to main content"
+msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:76
+#: src/pages/home/BankFrame.tsx:82
 #, c-format
-msgid "minutes"
-msgstr "minutes"
+msgid ""
+"This part of the demo shows how a bank that supports Taler directly would "
+"work. In addition to using your own bank account, you can also see the "
+"transaction history of some %1$s."
+msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:87
+#: src/pages/home/BankFrame.tsx:94
 #, c-format
-msgid "seconds"
-msgstr "seconds"
+msgid "Taler logo"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:734
+#: src/pages/home/LoginForm.tsx:41
 #, c-format
-msgid "Clear"
+msgid "Missing username"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:761
+#: src/pages/home/LoginForm.tsx:42
 #, c-format
-msgid "Logout"
+msgid "Missing password"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:782
+#: src/pages/home/LoginForm.tsx:49
 #, c-format
-msgid "Demo Bank"
+msgid "Please login!"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:51
+#, c-format
+msgid "Username:"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:71
+#, c-format
+msgid "Password:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:837
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:840
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1189
+#: src/pages/home/LoginForm.tsx:100
 #, c-format
-msgid "Go back"
-msgstr "Go back"
+msgid "Login"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:845
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:906
+#: src/pages/home/LoginForm.tsx:110
 #, c-format
-msgid "Wire transfer"
+msgid "Register"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:846
+#: src/pages/home/PaytoWireTransferForm.tsx:57
 #, c-format
-msgid "Transfer money to another account of this bank:"
+msgid "Missing IBAN"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:897
+#: src/pages/home/PaytoWireTransferForm.tsx:59
+#, c-format
+msgid "IBAN should have just uppercased letters and numbers"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:61
+#, c-format
+msgid "Missing subject"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:63
+#, c-format
+msgid "Missing amount"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:65
+#, c-format
+msgid "Amount is not valid"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:67
+#, c-format
+msgid "Should be greater than 0"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:76
+#, c-format
+msgid "Receiver IBAN:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:99
+#, c-format
+msgid "Transfer subject:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:120
+#, c-format
+msgid "Amount:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:174
+#, c-format
+msgid "Field(s) missing."
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:223
 #, c-format
 msgid "Want to try the raw payto://-format?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:907
+#: src/pages/home/PaytoWireTransferForm.tsx:231
 #, c-format
-msgid "Transfer money via the Payto system:"
+msgid "Missing payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:916
+#: src/pages/home/PaytoWireTransferForm.tsx:233
+#, c-format
+msgid "Payto does not follow the pattern"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:239
+#, c-format
+msgid "Transfer money to account identified by payto:// URI:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:242
+#, c-format
+msgid "payto URI:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:251
 #, c-format
 msgid "payto address"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:926
+#: src/pages/home/PaytoWireTransferForm.tsx:275
 #, c-format
-msgid "Confirm"
+msgid "Send"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:309
+#, c-format
+msgid "Use wire-transfer form?"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:956
+#: src/pages/home/WalletWithdrawForm.tsx:47
 #, fuzzy, c-format
-msgid "Confirm Withdrawal"
+msgid "Amount to withdraw:"
+msgstr "Amount to withdraw"
+
+#: src/pages/home/WalletWithdrawForm.tsx:81
+#, fuzzy, c-format
+msgid "Withdraw"
 msgstr "Confirm withdrawal"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1026
+#: src/pages/home/PaymentOptions.tsx:44
 #, c-format
-msgid "Waiting the bank to create the operaion..."
+msgid "Obtain digital cash"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1044
+#: src/pages/home/PaymentOptions.tsx:52
 #, c-format
-msgid "This withdrawal was aborted!"
+msgid "Transfer to bank account"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1051
-#, fuzzy, c-format
-msgid "Withdraw to a Taler Wallet"
-msgstr "Charge Taler wallet"
-
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1052
+#: src/pages/home/Transactions.tsx:69
 #, c-format
-msgid "You can use this QR code to withdraw to your mobile wallet:"
+msgid "Date"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1054
+#: src/pages/home/Transactions.tsx:70
 #, c-format
-msgid "this link"
+msgid "Amount"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1060
+#: src/pages/home/Transactions.tsx:71
 #, c-format
-msgid "Abort"
+msgid "Counterpart"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1084
-#, fuzzy, c-format
-msgid "Start withdrawal"
-msgstr "Start withdrawal"
+#: src/pages/home/Transactions.tsx:72
+#, c-format
+msgid "Subject"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1101
+#: src/pages/home/QrCodeSection.tsx:41
 #, fuzzy, c-format
-msgid "Withdraw Money into a Taler wallet"
+msgid "Transfer to Taler Wallet"
 msgstr "Charge Taler wallet"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1105
+#: src/pages/home/QrCodeSection.tsx:44
+#, c-format
+msgid "Use this QR code to withdraw to your mobile wallet:"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:48
+#, c-format
+msgid "this link"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
 #, fuzzy, c-format
-msgid "Amount to withdraw"
-msgstr "Amount to withdraw"
+msgid "Confirm Withdrawal"
+msgstr "Confirm withdrawal"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1137
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
 #, c-format
-msgid "Please login!"
+msgid "Authorize withdrawal by solving challenge"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1169
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
 #, c-format
-msgid "Login"
+msgid "What is"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1184
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
 #, c-format
-msgid "Register to the euFin bank!"
+msgid "Answer is wrong."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1194
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
 #, c-format
-msgid "Registration form"
+msgid "Confirm"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1232
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
 #, c-format
-msgid "Register"
+msgid "Cancel"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1272
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
 #, c-format
-msgid "Date"
+msgid ""
+"A this point, a %1$s bank would ask for an additional authentication proof "
+"(PIN/TAN, one time password, ..), instead of a simple calculation."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1273
+#: src/pages/home/WithdrawalQRCode.tsx:54
 #, c-format
-msgid "Amount"
+msgid "Abort"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1274
+#: src/pages/home/WithdrawalQRCode.tsx:74
 #, c-format
-msgid "Counterpart"
+msgid "withdrawal (%1$s) was never (correctly) created at the bank..."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1275
+#: src/pages/home/WithdrawalQRCode.tsx:88
 #, c-format
-msgid "Subject"
+msgid "Waiting the bank to create the operation..."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1343
+#: src/pages/home/WithdrawalQRCode.tsx:102
+#, c-format
+msgid "This withdrawal was aborted!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:40
+#, c-format
+msgid "Welcome to %1$s!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:133
 #, c-format
 msgid "Username or account label '%1$s' not found.  Won't login."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1365
+#: src/pages/home/AccountPage.tsx:159
 #, c-format
 msgid "Wrong credentials given."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1374
+#: src/pages/home/AccountPage.tsx:169
 #, c-format
 msgid "Account information could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1394
+#: src/pages/home/AccountPage.tsx:210
 #, c-format
-msgid "Close wire transfer"
+msgid "Welcome, %1$s !"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1412
-#, fuzzy, c-format
-msgid "Close Taler withdrawal"
-msgstr "Close Taler withdrawal"
-
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1457
+#: src/pages/home/AccountPage.tsx:221
 #, c-format
-msgid "Bank account balance:"
+msgid "Bank account balance"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1469
+#: src/pages/home/AccountPage.tsx:237
 #, c-format
-msgid "Latest transactions:"
+msgid "Payments"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1474
+#: src/pages/home/AccountPage.tsx:243
 #, c-format
-msgid "Transfer money manually"
+msgid "Latest transactions:"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1543
+#: src/pages/home/PublicHistoriesPage.tsx:83
 #, c-format
 msgid "List of public accounts was not found."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1552
+#: src/pages/home/PublicHistoriesPage.tsx:95
 #, c-format
 msgid "List of public accounts could not be retrieved."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1584
+#: src/pages/home/PublicHistoriesPage.tsx:143
 #, c-format
 msgid "History of public accounts"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1643
+#: src/pages/home/RegistrationPage.tsx:36
 #, c-format
-msgid "Page has a problem: logged in but backend state is lost."
-msgstr "Page has a problem: logged in but backend state is lost."
+msgid "Currently, the bank is not accepting new registrations!"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1667
-#, fuzzy, c-format
-msgid "Welcome to the euFin bank!"
-msgstr "Welcome to euFin bank: Taler+IBAN now possible!"
+#: src/pages/home/RegistrationPage.tsx:65
+#, c-format
+msgid "Use only letter and numbers starting with a lower case letter"
+msgstr ""
 
-#  This file is part of GNU Taler
-#  (C) 2021 Taler Systems S.A.
-#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 3, or (at your option) any later version.
-#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#  You should have received a copy of the GNU General Public License along with
-#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-#
-msgid ""
+#: src/pages/home/RegistrationPage.tsx:75
+#, c-format
+msgid "Password don't match"
 msgstr ""
-"Project-Id-Version: Taler Wallet\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-23 00:00+0100\n"
-"PO-Revision-Date: 2022-01-08 09:57+0100\n"
-"Last-Translator:  <translate@taler.net>\n"
-"Language-Team: English\n"
-"Language: en\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"
+
+#: src/pages/home/RegistrationPage.tsx:86
+#, c-format
+msgid "Please register!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:123
+#, c-format
+msgid "Repeat Password:"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:53
+#, c-format
+msgid "Bank menu"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:59
+#, c-format
+msgid "Select option1"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:66
+#, c-format
+msgid "Select option2"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:55
+#, c-format
+msgid "days"
+msgstr "days"
+
+#: src/components/picker/DurationPicker.tsx:65
+#, c-format
+msgid "hours"
+msgstr "hours"
+
+#: src/components/picker/DurationPicker.tsx:76
+#, c-format
+msgid "minutes"
+msgstr "minutes"
+
+#: src/components/picker/DurationPicker.tsx:87
+#, c-format
+msgid "seconds"
+msgstr "seconds"
+
+#~ msgid "Go back"
+#~ msgstr "Go back"
+
+#, fuzzy
+#~ msgid "Start withdrawal"
+#~ msgstr "Start withdrawal"
+
+#, fuzzy
+#~ msgid "Withdraw Money into a Taler wallet"
+#~ msgstr "Charge Taler wallet"
+
+#, fuzzy
+#~ msgid "Close Taler withdrawal"
+#~ msgstr "Close Taler withdrawal"
+
+#~ msgid "Page has a problem: logged in but backend state is lost."
+#~ msgstr "Page has a problem: logged in but backend state is lost."
+
+#, fuzzy
+#~ msgid "Welcome to the euFin bank!"
+#~ msgstr "Welcome to euFin bank: Taler+IBAN now possible!"
 
 #~ msgid "Page has a problem:"
 #~ msgstr "Page has a problem:"
diff --git a/packages/demobank-ui/src/i18n/es.po 
b/packages/demobank-ui/src/i18n/es.po
new file mode 100644
index 000000000..a45f65ab5
--- /dev/null
+++ b/packages/demobank-ui/src/i18n/es.po
@@ -0,0 +1,430 @@
+#  This file is part of GNU Taler
+#  (C) 2021 Taler Systems S.A.
+#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 3, or (at your option) any later version.
+#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#  You should have received a copy of the GNU General Public License along with
+#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Taler Wallet\n"
+"Report-Msgid-Bugs-To: taler@gnu.org\n"
+"POT-Creation-Date: 2016-11-23 00:00+0100\n"
+"PO-Revision-Date: 2022-01-08 09:57+0100\n"
+"Last-Translator:  <translate@taler.net>\n"
+"Language-Team: English\n"
+"Language: en\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"
+
+#: src/pages/home/BankFrame.tsx:55
+#, c-format
+msgid "Logout"
+msgstr ""
+
+#: src/pages/home/BankFrame.tsx:73
+#, c-format
+msgid "Skip to main content"
+msgstr ""
+
+#: src/pages/home/BankFrame.tsx:82
+#, c-format
+msgid ""
+"This part of the demo shows how a bank that supports Taler directly would "
+"work. In addition to using your own bank account, you can also see the "
+"transaction history of some %1$s."
+msgstr ""
+
+#: src/pages/home/BankFrame.tsx:94
+#, c-format
+msgid "Taler logo"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:41
+#, c-format
+msgid "Missing username"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:42
+#, c-format
+msgid "Missing password"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:49
+#, c-format
+msgid "Please login!"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:51
+#, c-format
+msgid "Username:"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:71
+#, c-format
+msgid "Password:"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:100
+#, c-format
+msgid "Login"
+msgstr ""
+
+#: src/pages/home/LoginForm.tsx:110
+#, c-format
+msgid "Register"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:57
+#, c-format
+msgid "Missing IBAN"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:59
+#, c-format
+msgid "IBAN should have just uppercased letters and numbers"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:61
+#, c-format
+msgid "Missing subject"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:63
+#, c-format
+msgid "Missing amount"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:65
+#, c-format
+msgid "Amount is not valid"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:67
+#, c-format
+msgid "Should be greater than 0"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:76
+#, c-format
+msgid "Receiver IBAN:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:99
+#, c-format
+msgid "Transfer subject:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:120
+#, c-format
+msgid "Amount:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:174
+#, c-format
+msgid "Field(s) missing."
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:223
+#, c-format
+msgid "Want to try the raw payto://-format?"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:231
+#, c-format
+msgid "Missing payto address"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:233
+#, c-format
+msgid "Payto does not follow the pattern"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:239
+#, c-format
+msgid "Transfer money to account identified by payto:// URI:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:242
+#, c-format
+msgid "payto URI:"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:251
+#, c-format
+msgid "payto address"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:275
+#, c-format
+msgid "Send"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:309
+#, c-format
+msgid "Use wire-transfer form?"
+msgstr ""
+
+#: src/pages/home/WalletWithdrawForm.tsx:47
+#, fuzzy, c-format
+msgid "Amount to withdraw:"
+msgstr "Amount to withdraw"
+
+#: src/pages/home/WalletWithdrawForm.tsx:81
+#, fuzzy, c-format
+msgid "Withdraw"
+msgstr "Confirm withdrawal"
+
+#: src/pages/home/PaymentOptions.tsx:44
+#, c-format
+msgid "Obtain digital cash"
+msgstr ""
+
+#: src/pages/home/PaymentOptions.tsx:52
+#, c-format
+msgid "Transfer to bank account"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:69
+#, c-format
+msgid "Date"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:70
+#, c-format
+msgid "Amount"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:71
+#, c-format
+msgid "Counterpart"
+msgstr ""
+
+#: src/pages/home/Transactions.tsx:72
+#, c-format
+msgid "Subject"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:41
+#, fuzzy, c-format
+msgid "Transfer to Taler Wallet"
+msgstr "Charge Taler wallet"
+
+#: src/pages/home/QrCodeSection.tsx:44
+#, c-format
+msgid "Use this QR code to withdraw to your mobile wallet:"
+msgstr ""
+
+#: src/pages/home/QrCodeSection.tsx:48
+#, c-format
+msgid "this link"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
+#, fuzzy, c-format
+msgid "Confirm Withdrawal"
+msgstr "Confirm withdrawal"
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
+#, c-format
+msgid "Authorize withdrawal by solving challenge"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
+#, c-format
+msgid "What is"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
+#, c-format
+msgid "Answer is wrong."
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
+#, c-format
+msgid ""
+"A this point, a %1$s bank would ask for an additional authentication proof "
+"(PIN/TAN, one time password, ..), instead of a simple calculation."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:54
+#, c-format
+msgid "Abort"
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:74
+#, c-format
+msgid "withdrawal (%1$s) was never (correctly) created at the bank..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:88
+#, c-format
+msgid "Waiting the bank to create the operation..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:102
+#, c-format
+msgid "This withdrawal was aborted!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:40
+#, c-format
+msgid "Welcome to %1$s!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:133
+#, c-format
+msgid "Username or account label '%1$s' not found.  Won't login."
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:159
+#, c-format
+msgid "Wrong credentials given."
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:169
+#, c-format
+msgid "Account information could not be retrieved."
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:210
+#, c-format
+msgid "Welcome, %1$s !"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:221
+#, c-format
+msgid "Bank account balance"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:237
+#, c-format
+msgid "Payments"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:243
+#, c-format
+msgid "Latest transactions:"
+msgstr ""
+
+#: src/pages/home/PublicHistoriesPage.tsx:83
+#, c-format
+msgid "List of public accounts was not found."
+msgstr ""
+
+#: src/pages/home/PublicHistoriesPage.tsx:95
+#, c-format
+msgid "List of public accounts could not be retrieved."
+msgstr ""
+
+#: src/pages/home/PublicHistoriesPage.tsx:143
+#, c-format
+msgid "History of public accounts"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:36
+#, c-format
+msgid "Currently, the bank is not accepting new registrations!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:65
+#, c-format
+msgid "Use only letter and numbers starting with a lower case letter"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:75
+#, c-format
+msgid "Password don't match"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:86
+#, c-format
+msgid "Please register!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:123
+#, c-format
+msgid "Repeat Password:"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:53
+#, c-format
+msgid "Bank menu"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:59
+#, c-format
+msgid "Select option1"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:66
+#, c-format
+msgid "Select option2"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:55
+#, c-format
+msgid "days"
+msgstr "days"
+
+#: src/components/picker/DurationPicker.tsx:65
+#, c-format
+msgid "hours"
+msgstr "hours"
+
+#: src/components/picker/DurationPicker.tsx:76
+#, c-format
+msgid "minutes"
+msgstr "minutes"
+
+#: src/components/picker/DurationPicker.tsx:87
+#, c-format
+msgid "seconds"
+msgstr "seconds"
+
+#~ msgid "Go back"
+#~ msgstr "Go back"
+
+#, fuzzy
+#~ msgid "Start withdrawal"
+#~ msgstr "Start withdrawal"
+
+#, fuzzy
+#~ msgid "Withdraw Money into a Taler wallet"
+#~ msgstr "Charge Taler wallet"
+
+#, fuzzy
+#~ msgid "Close Taler withdrawal"
+#~ msgstr "Close Taler withdrawal"
+
+#~ msgid "Page has a problem: logged in but backend state is lost."
+#~ msgstr "Page has a problem: logged in but backend state is lost."
+
+#, fuzzy
+#~ msgid "Welcome to the euFin bank!"
+#~ msgstr "Welcome to euFin bank: Taler+IBAN now possible!"
+
+#~ msgid "Page has a problem:"
+#~ msgstr "Page has a problem:"
+
+#~ msgid "Close"
+#~ msgstr "Close"
+
+#~ msgid "Sign in"
+#~ msgstr "Sign in"
diff --git a/packages/demobank-ui/src/i18n/it.po 
b/packages/demobank-ui/src/i18n/it.po
index 91a30b947..2e667e39a 100644
--- a/packages/demobank-ui/src/i18n/it.po
+++ b/packages/demobank-ui/src/i18n/it.po
@@ -1,258 +1,440 @@
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:55
-#, c-format
-msgid "days"
+#  This file is part of GNU Taler
+#  (C) 2021 Taler Systems S.A.
+#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 3, or (at your option) any later version.
+#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#  You should have received a copy of the GNU General Public License along with
+#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+#
+msgid ""
 msgstr ""
+"Project-Id-Version: Taler Wallet\n"
+"Report-Msgid-Bugs-To: taler@gnu.org\n"
+"POT-Creation-Date: 2016-11-23 00:00+0100\n"
+"PO-Revision-Date: 2022-01-08 10:05+0100\n"
+"Last-Translator:  <translate@taler.net>\n"
+"Language-Team: Italian\n"
+"Language: it\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"
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:65
+#: src/pages/home/BankFrame.tsx:55
 #, c-format
-msgid "hours"
+msgid "Logout"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:76
+#: src/pages/home/BankFrame.tsx:73
 #, c-format
-msgid "minutes"
+msgid "Skip to main content"
 msgstr ""
 
-#: 
/home/job/backoffice/packages/bank/src/components/picker/DurationPicker.tsx:87
+#: src/pages/home/BankFrame.tsx:82
 #, c-format
-msgid "seconds"
+msgid ""
+"This part of the demo shows how a bank that supports Taler directly would "
+"work. In addition to using your own bank account, you can also see the "
+"transaction history of some %1$s."
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:734
+#: src/pages/home/BankFrame.tsx:94
 #, c-format
-msgid "Clear"
-msgstr "Cancella"
+msgid "Taler logo"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:761
+#: src/pages/home/LoginForm.tsx:41
 #, c-format
-msgid "Logout"
+msgid "Missing username"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:782
+#: src/pages/home/LoginForm.tsx:42
 #, c-format
-msgid "Demo Bank"
-msgstr "Banca 'demo'"
+msgid "Missing password"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:837
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:840
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1189
+#: src/pages/home/LoginForm.tsx:49
 #, c-format
-msgid "Go back"
-msgstr "Indietro"
+msgid "Please login!"
+msgstr "Accedi!"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:845
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:906
+#: src/pages/home/LoginForm.tsx:51
 #, c-format
-msgid "Wire transfer"
-msgstr "Bonifico"
+msgid "Username:"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:846
+#: src/pages/home/LoginForm.tsx:71
 #, c-format
-msgid "Transfer money to another account of this bank:"
-msgstr "Trasferisci fondi a un altro conto di questa banca:"
+msgid "Password:"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:897
+#: src/pages/home/LoginForm.tsx:100
 #, c-format
-msgid "Want to try the raw payto://-format?"
-msgstr "Prova il trasferimento tramite il formato Payto!"
+msgid "Login"
+msgstr "Accedi"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:907
+#: src/pages/home/LoginForm.tsx:110
 #, c-format
-msgid "Transfer money via the Payto system:"
-msgstr "Effettua un bonifico tramite il sistema Payto:"
+msgid "Register"
+msgstr "Registrati"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:916
+#: src/pages/home/PaytoWireTransferForm.tsx:57
 #, c-format
-msgid "payto address"
-msgstr "indirizzo Payto"
+msgid "Missing IBAN"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:926
+#: src/pages/home/PaytoWireTransferForm.tsx:59
 #, c-format
-msgid "Confirm"
-msgstr "Conferma"
+msgid "IBAN should have just uppercased letters and numbers"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:956
+#: src/pages/home/PaytoWireTransferForm.tsx:61
 #, c-format
-msgid "Confirm Withdrawal"
-msgstr "Conferma il ritiro"
+msgid "Missing subject"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1026
+#: src/pages/home/PaytoWireTransferForm.tsx:63
 #, c-format
-msgid "Waiting the bank to create the operaion..."
-msgstr "La banca sta creando l'operazione..."
+msgid "Missing amount"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1044
+#: src/pages/home/PaytoWireTransferForm.tsx:65
 #, c-format
-msgid "This withdrawal was aborted!"
-msgstr "Questo ritiro è stato annullato!"
+msgid "Amount is not valid"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1051
+#: src/pages/home/PaytoWireTransferForm.tsx:67
 #, c-format
-msgid "Withdraw to a Taler Wallet"
-msgstr "Ritira contante nel portafoglio Taler"
+msgid "Should be greater than 0"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1052
+#: src/pages/home/PaytoWireTransferForm.tsx:76
 #, c-format
-msgid "You can use this QR code to withdraw to your mobile wallet:"
-msgstr "Usa questo codice QR per ritirare contante nel tuo wallet:"
+msgid "Receiver IBAN:"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1054
+#: src/pages/home/PaytoWireTransferForm.tsx:99
 #, c-format
-msgid "this link"
-msgstr "questo link"
+msgid "Transfer subject:"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1060
-#, c-format
-msgid "Abort"
-msgstr "Annulla"
+#: src/pages/home/PaytoWireTransferForm.tsx:120
+#, fuzzy, c-format
+msgid "Amount:"
+msgstr "Somma"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1084
+#: src/pages/home/PaytoWireTransferForm.tsx:174
 #, c-format
-msgid "Start withdrawal"
-msgstr "Ritira contante"
+msgid "Field(s) missing."
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1101
+#: src/pages/home/PaytoWireTransferForm.tsx:223
 #, c-format
-msgid "Withdraw Money into a Taler wallet"
-msgstr "Ritira contante nel portafoglio Taler"
+msgid "Want to try the raw payto://-format?"
+msgstr "Prova il trasferimento tramite il formato Payto!"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1105
-#, c-format
-msgid "Amount to withdraw"
-msgstr "Somma da ritirare"
+#: src/pages/home/PaytoWireTransferForm.tsx:231
+#, fuzzy, c-format
+msgid "Missing payto address"
+msgstr "indirizzo Payto"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1137
+#: src/pages/home/PaytoWireTransferForm.tsx:233
 #, c-format
-msgid "Please login!"
-msgstr "Accedi!"
+msgid "Payto does not follow the pattern"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1169
+#: src/pages/home/PaytoWireTransferForm.tsx:239
+#, fuzzy, c-format
+msgid "Transfer money to account identified by payto:// URI:"
+msgstr "Trasferisci fondi a un altro conto di questa banca:"
+
+#: src/pages/home/PaytoWireTransferForm.tsx:242
 #, c-format
-msgid "Login"
-msgstr "Accedi"
+msgid "payto URI:"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1184
+#: src/pages/home/PaytoWireTransferForm.tsx:251
 #, c-format
-msgid "Register to the euFin bank!"
-msgstr "Apri un conto in banca euFin!"
+msgid "payto address"
+msgstr "indirizzo Payto"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1194
+#: src/pages/home/PaytoWireTransferForm.tsx:275
 #, c-format
-msgid "Registration form"
-msgstr "Registrazione"
+msgid "Send"
+msgstr ""
+
+#: src/pages/home/PaytoWireTransferForm.tsx:309
+#, fuzzy, c-format
+msgid "Use wire-transfer form?"
+msgstr "Chiudi il bonifico"
+
+#: src/pages/home/WalletWithdrawForm.tsx:47
+#, fuzzy, c-format
+msgid "Amount to withdraw:"
+msgstr "Somma da ritirare"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1232
+#: src/pages/home/WalletWithdrawForm.tsx:81
+#, fuzzy, c-format
+msgid "Withdraw"
+msgstr "Conferma il ritiro"
+
+#: src/pages/home/PaymentOptions.tsx:44
 #, c-format
-msgid "Register"
-msgstr "Registrati"
+msgid "Obtain digital cash"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1272
+#: src/pages/home/PaymentOptions.tsx:52
+#, fuzzy, c-format
+msgid "Transfer to bank account"
+msgstr "Trasferisci fondi a un altro conto di questa banca:"
+
+#: src/pages/home/Transactions.tsx:69
 #, c-format
 msgid "Date"
 msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1273
+#: src/pages/home/Transactions.tsx:70
 #, c-format
 msgid "Amount"
 msgstr "Somma"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1274
+#: src/pages/home/Transactions.tsx:71
 #, c-format
 msgid "Counterpart"
 msgstr "Controparte"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1275
+#: src/pages/home/Transactions.tsx:72
 #, c-format
 msgid "Subject"
 msgstr "Causale"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1343
+#: src/pages/home/QrCodeSection.tsx:41
+#, fuzzy, c-format
+msgid "Transfer to Taler Wallet"
+msgstr "Ritira contante nel portafoglio Taler"
+
+#: src/pages/home/QrCodeSection.tsx:44
+#, fuzzy, c-format
+msgid "Use this QR code to withdraw to your mobile wallet:"
+msgstr "Usa questo codice QR per ritirare contante nel tuo wallet:"
+
+#: src/pages/home/QrCodeSection.tsx:48
+#, c-format
+msgid "this link"
+msgstr "questo link"
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:44
+#, c-format
+msgid "Confirm Withdrawal"
+msgstr "Conferma il ritiro"
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:49
+#, c-format
+msgid "Authorize withdrawal by solving challenge"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:52
+#, c-format
+msgid "What is"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:90
+#, c-format
+msgid "Answer is wrong."
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:95
+#, c-format
+msgid "Confirm"
+msgstr "Conferma"
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:108
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/pages/home/WithdrawalConfirmationQuestion.tsx:115
+#, c-format
+msgid ""
+"A this point, a %1$s bank would ask for an additional authentication proof "
+"(PIN/TAN, one time password, ..), instead of a simple calculation."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:54
+#, c-format
+msgid "Abort"
+msgstr "Annulla"
+
+#: src/pages/home/WithdrawalQRCode.tsx:74
+#, c-format
+msgid "withdrawal (%1$s) was never (correctly) created at the bank..."
+msgstr ""
+
+#: src/pages/home/WithdrawalQRCode.tsx:88
+#, fuzzy, c-format
+msgid "Waiting the bank to create the operation..."
+msgstr "La banca sta creando l'operazione..."
+
+#: src/pages/home/WithdrawalQRCode.tsx:102
+#, c-format
+msgid "This withdrawal was aborted!"
+msgstr "Questo ritiro è stato annullato!"
+
+#: src/pages/home/AccountPage.tsx:40
+#, c-format
+msgid "Welcome to %1$s!"
+msgstr ""
+
+#: src/pages/home/AccountPage.tsx:133
 #, c-format
 msgid "Username or account label '%1$s' not found.  Won't login."
 msgstr "L'utente '%1$s' non esiste.  Login impossibile"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1365
+#: src/pages/home/AccountPage.tsx:159
 #, c-format
 msgid "Wrong credentials given."
 msgstr "Credenziali invalide."
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1374
+#: src/pages/home/AccountPage.tsx:169
 #, c-format
 msgid "Account information could not be retrieved."
 msgstr "Impossibile ricevere le informazioni relative al conto."
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1394
+#: src/pages/home/AccountPage.tsx:210
 #, c-format
-msgid "Close wire transfer"
-msgstr "Chiudi il bonifico"
+msgid "Welcome, %1$s !"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1412
-#, c-format
-msgid "Close Taler withdrawal"
-msgstr "Chiudi il ritiro Taler"
+#: src/pages/home/AccountPage.tsx:221
+#, fuzzy, c-format
+msgid "Bank account balance"
+msgstr "Bilancio:"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1457
+#: src/pages/home/AccountPage.tsx:237
 #, c-format
-msgid "Bank account balance:"
-msgstr "Bilancio:"
+msgid "Payments"
+msgstr ""
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1469
+#: src/pages/home/AccountPage.tsx:243
 #, c-format
 msgid "Latest transactions:"
 msgstr "Ultime transazioni:"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1474
-#, c-format
-msgid "Transfer money manually"
-msgstr "Effettua un bonifico"
-
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1543
+#: src/pages/home/PublicHistoriesPage.tsx:83
 #, c-format
 msgid "List of public accounts was not found."
 msgstr "Lista conti pubblici non trovata."
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1552
+#: src/pages/home/PublicHistoriesPage.tsx:95
 #, c-format
 msgid "List of public accounts could not be retrieved."
 msgstr "Lista conti pubblici non pervenuta."
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1584
+#: src/pages/home/PublicHistoriesPage.tsx:143
 #, c-format
 msgid "History of public accounts"
 msgstr "Storico dei conti pubblici"
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1643
+#: src/pages/home/RegistrationPage.tsx:36
+#, c-format
+msgid "Currently, the bank is not accepting new registrations!"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:65
 #, c-format
-msgid "Page has a problem: logged in but backend state is lost."
+msgid "Use only letter and numbers starting with a lower case letter"
 msgstr ""
-"Stato inconsistente: accesso utente effettuato ma stato con server perso."
 
-#: /home/job/backoffice/packages/bank/src/pages/home/index.tsx:1667
+#: src/pages/home/RegistrationPage.tsx:75
+#, c-format
+msgid "Password don't match"
+msgstr ""
+
+#: src/pages/home/RegistrationPage.tsx:86
 #, fuzzy, c-format
-msgid "Welcome to the euFin bank!"
-msgstr "Benvenuti in banca euFin!"
+msgid "Please register!"
+msgstr "Accedi!"
 
-#  This file is part of GNU Taler
-#  (C) 2021 Taler Systems S.A.
-#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 3, or (at your option) any later version.
-#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#  You should have received a copy of the GNU General Public License along with
-#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-#
-msgid ""
+#: src/pages/home/RegistrationPage.tsx:123
+#, c-format
+msgid "Repeat Password:"
 msgstr ""
-"Project-Id-Version: Taler Wallet\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-23 00:00+0100\n"
-"PO-Revision-Date: 2022-01-08 10:05+0100\n"
-"Last-Translator:  <translate@taler.net>\n"
-"Language-Team: Italian\n"
-"Language: it\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"
+
+#: src/components/menu/SideBar.tsx:53
+#, c-format
+msgid "Bank menu"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:59
+#, c-format
+msgid "Select option1"
+msgstr ""
+
+#: src/components/menu/SideBar.tsx:66
+#, c-format
+msgid "Select option2"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:55
+#, c-format
+msgid "days"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:65
+#, c-format
+msgid "hours"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:76
+#, c-format
+msgid "minutes"
+msgstr ""
+
+#: src/components/picker/DurationPicker.tsx:87
+#, c-format
+msgid "seconds"
+msgstr ""
+
+#~ msgid "Clear"
+#~ msgstr "Cancella"
+
+#~ msgid "Demo Bank"
+#~ msgstr "Banca 'demo'"
+
+#~ msgid "Go back"
+#~ msgstr "Indietro"
+
+#~ msgid "Wire transfer"
+#~ msgstr "Bonifico"
+
+#~ msgid "Transfer money via the Payto system:"
+#~ msgstr "Effettua un bonifico tramite il sistema Payto:"
+
+#~ msgid "Start withdrawal"
+#~ msgstr "Ritira contante"
+
+#~ msgid "Withdraw Money into a Taler wallet"
+#~ msgstr "Ritira contante nel portafoglio Taler"
+
+#~ msgid "Register to the euFin bank!"
+#~ msgstr "Apri un conto in banca euFin!"
+
+#~ msgid "Registration form"
+#~ msgstr "Registrazione"
+
+#~ msgid "Close Taler withdrawal"
+#~ msgstr "Chiudi il ritiro Taler"
+
+#~ msgid "Transfer money manually"
+#~ msgstr "Effettua un bonifico"
+
+#~ msgid "Page has a problem: logged in but backend state is lost."
+#~ msgstr ""
+#~ "Stato inconsistente: accesso utente effettuato ma stato con server perso."
+
+#, fuzzy
+#~ msgid "Welcome to the euFin bank!"
+#~ msgstr "Benvenuti in banca euFin!"
diff --git a/packages/demobank-ui/src/i18n/poheader 
b/packages/demobank-ui/src/i18n/poheader
index ee3fcd7be..a251e9584 100644
--- a/packages/demobank-ui/src/i18n/poheader
+++ b/packages/demobank-ui/src/i18n/poheader
@@ -1,22 +1,21 @@
-#  This file is part of GNU Taler
-#  (C) 2021 Taler Systems S.A.
-
-#  GNU Taler is free software; you can redistribute it and/or modify it under 
the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 3, or (at your option) any later version.
-
-#  GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-#  You should have received a copy of the GNU General Public License along with
-#  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-
+# This file is part of GNU Taler
+# (C) 2022 Taler Systems S.A.
+#
+# GNU Taler is free software; you can redistribute it and/or modify it under 
the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Taler Wallet\n"
+"Project-Id-Version: Taler Bank\n"
 "Report-Msgid-Bugs-To: taler@gnu.org\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/packages/demobank-ui/src/i18n/strings-prelude 
b/packages/demobank-ui/src/i18n/strings-prelude
index cca13afad..a0aeb8268 100644
--- a/packages/demobank-ui/src/i18n/strings-prelude
+++ b/packages/demobank-ui/src/i18n/strings-prelude
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/i18n/strings.ts 
b/packages/demobank-ui/src/i18n/strings.ts
index d9af71657..79c87009d 100644
--- a/packages/demobank-ui/src/i18n/strings.ts
+++ b/packages/demobank-ui/src/i18n/strings.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -15,207 +15,945 @@
  */
 
 /*eslint quote-props: ["error", "consistent"]*/
-export const strings: { [s: string]: any } = {};
+export const strings: {[s: string]: any} = {};
 
-strings["de"] = {
-  domain: "messages",
-  locale_data: {
-    messages: {
-      days: [""],
-      hours: [""],
-      minutes: [""],
-      seconds: [""],
-      Clear: [""],
-      Logout: [""],
-      "Demo Bank": [""],
-      "Go back": [""],
-      "Wire transfer": [""],
-      "Transfer money to another account of this bank:": [""],
-      "Want to try the raw payto://-format?": [""],
-      "Transfer money via the Payto system:": [""],
-      "payto address": [""],
-      Confirm: [""],
-      "Confirm Withdrawal": [""],
-      "Waiting the bank to create the operaion...": [""],
-      "This withdrawal was aborted!": [""],
-      "Withdraw to a Taler Wallet": [""],
-      "You can use this QR code to withdraw to your mobile wallet:": [""],
-      "this link": [""],
-      Abort: [""],
-      "Start withdrawal": [""],
-      "Withdraw Money into a Taler wallet": [""],
-      "Amount to withdraw": [""],
-      "Please login!": [""],
-      Login: [""],
-      "Register to the euFin bank!": [""],
-      "Registration form": [""],
-      Register: [""],
-      Date: [""],
-      Amount: [""],
-      Counterpart: [""],
-      Subject: [""],
-      "Username or account label '%1$s' not found.  Won't login.": [""],
-      "Wrong credentials given.": [""],
-      "Account information could not be retrieved.": [""],
-      "Close wire transfer": [""],
-      "Close Taler withdrawal": [""],
-      "Bank account balance:": [""],
-      "Latest transactions:": [""],
-      "Transfer money manually": [""],
-      "List of public accounts was not found.": [""],
-      "List of public accounts could not be retrieved.": [""],
-      "History of public accounts": [""],
-      "Page has a problem: logged in but backend state is lost.": [""],
-      "Welcome to the euFin bank!": [""],
+strings['de'] = {
+  "domain": "messages",
+  "locale_data": {
+    "messages": {
       "": {
-        domain: "messages",
-        plural_forms: "nplurals=2; plural=(n != 1);",
-        lang: "de",
+        "domain": "messages",
+        "plural_forms": "nplurals=2; plural=(n != 1);",
+        "lang": "de"
       },
-    },
-  },
+      "Logout": [
+        ""
+      ],
+      "Skip to main content": [
+        ""
+      ],
+      "This part of the demo shows how a bank that supports Taler directly 
would work. In addition to using your own bank account, you can also see the 
transaction history of some %1$s.": [
+        ""
+      ],
+      "Taler logo": [
+        ""
+      ],
+      "Missing username": [
+        ""
+      ],
+      "Missing password": [
+        ""
+      ],
+      "Please login!": [
+        ""
+      ],
+      "Username:": [
+        ""
+      ],
+      "Password:": [
+        ""
+      ],
+      "Login": [
+        ""
+      ],
+      "Register": [
+        ""
+      ],
+      "Missing IBAN": [
+        ""
+      ],
+      "IBAN should have just uppercased letters and numbers": [
+        ""
+      ],
+      "Missing subject": [
+        ""
+      ],
+      "Missing amount": [
+        ""
+      ],
+      "Amount is not valid": [
+        ""
+      ],
+      "Should be greater than 0": [
+        ""
+      ],
+      "Receiver IBAN:": [
+        ""
+      ],
+      "Transfer subject:": [
+        ""
+      ],
+      "Amount:": [
+        ""
+      ],
+      "Field(s) missing.": [
+        ""
+      ],
+      "Want to try the raw payto://-format?": [
+        ""
+      ],
+      "Missing payto address": [
+        ""
+      ],
+      "Payto does not follow the pattern": [
+        ""
+      ],
+      "Transfer money to account identified by payto:// URI:": [
+        ""
+      ],
+      "payto URI:": [
+        ""
+      ],
+      "payto address": [
+        ""
+      ],
+      "Send": [
+        ""
+      ],
+      "Use wire-transfer form?": [
+        ""
+      ],
+      "Amount to withdraw:": [
+        ""
+      ],
+      "Withdraw": [
+        ""
+      ],
+      "Obtain digital cash": [
+        ""
+      ],
+      "Transfer to bank account": [
+        ""
+      ],
+      "Date": [
+        ""
+      ],
+      "Amount": [
+        ""
+      ],
+      "Counterpart": [
+        ""
+      ],
+      "Subject": [
+        ""
+      ],
+      "Transfer to Taler Wallet": [
+        ""
+      ],
+      "Use this QR code to withdraw to your mobile wallet:": [
+        ""
+      ],
+      "this link": [
+        ""
+      ],
+      "Confirm Withdrawal": [
+        ""
+      ],
+      "Authorize withdrawal by solving challenge": [
+        ""
+      ],
+      "What is": [
+        ""
+      ],
+      "Answer is wrong.": [
+        ""
+      ],
+      "Confirm": [
+        ""
+      ],
+      "Cancel": [
+        ""
+      ],
+      "A this point, a %1$s bank would ask for an additional authentication 
proof (PIN/TAN, one time password, ..), instead of a simple calculation.": [
+        ""
+      ],
+      "Abort": [
+        ""
+      ],
+      "withdrawal (%1$s) was never (correctly) created at the bank...": [
+        ""
+      ],
+      "Waiting the bank to create the operation...": [
+        ""
+      ],
+      "This withdrawal was aborted!": [
+        ""
+      ],
+      "Welcome to %1$s!": [
+        ""
+      ],
+      "Username or account label '%1$s' not found.  Won't login.": [
+        ""
+      ],
+      "Wrong credentials given.": [
+        ""
+      ],
+      "Account information could not be retrieved.": [
+        ""
+      ],
+      "Welcome, %1$s !": [
+        ""
+      ],
+      "Bank account balance": [
+        ""
+      ],
+      "Payments": [
+        ""
+      ],
+      "Latest transactions:": [
+        ""
+      ],
+      "List of public accounts was not found.": [
+        ""
+      ],
+      "List of public accounts could not be retrieved.": [
+        ""
+      ],
+      "History of public accounts": [
+        ""
+      ],
+      "Currently, the bank is not accepting new registrations!": [
+        ""
+      ],
+      "Use only letter and numbers starting with a lower case letter": [
+        ""
+      ],
+      "Password don't match": [
+        ""
+      ],
+      "Please register!": [
+        ""
+      ],
+      "Repeat Password:": [
+        ""
+      ],
+      "Bank menu": [
+        ""
+      ],
+      "Select option1": [
+        ""
+      ],
+      "Select option2": [
+        ""
+      ],
+      "days": [
+        ""
+      ],
+      "hours": [
+        ""
+      ],
+      "minutes": [
+        ""
+      ],
+      "seconds": [
+        ""
+      ]
+    }
+  }
 };
 
-strings["en"] = {
-  domain: "messages",
-  locale_data: {
-    messages: {
-      days: ["days"],
-      hours: ["hours"],
-      minutes: ["minutes"],
-      seconds: ["seconds"],
-      Clear: [""],
-      Logout: [""],
-      "Demo Bank": [""],
-      "Go back": ["Go back"],
-      "Wire transfer": [""],
-      "Transfer money to another account of this bank:": [""],
-      "Want to try the raw payto://-format?": [""],
-      "Transfer money via the Payto system:": [""],
-      "payto address": [""],
-      Confirm: [""],
-      "Confirm Withdrawal": ["Confirm withdrawal"],
-      "Waiting the bank to create the operaion...": [""],
-      "This withdrawal was aborted!": [""],
-      "Withdraw to a Taler Wallet": ["Charge Taler wallet"],
-      "You can use this QR code to withdraw to your mobile wallet:": [""],
-      "this link": [""],
-      Abort: [""],
-      "Start withdrawal": ["Start withdrawal"],
-      "Withdraw Money into a Taler wallet": ["Charge Taler wallet"],
-      "Amount to withdraw": ["Amount to withdraw"],
-      "Please login!": [""],
-      Login: [""],
-      "Register to the euFin bank!": [""],
-      "Registration form": [""],
-      Register: [""],
-      Date: [""],
-      Amount: [""],
-      Counterpart: [""],
-      Subject: [""],
-      "Username or account label '%1$s' not found.  Won't login.": [""],
-      "Wrong credentials given.": [""],
-      "Account information could not be retrieved.": [""],
-      "Close wire transfer": [""],
-      "Close Taler withdrawal": ["Close Taler withdrawal"],
-      "Bank account balance:": [""],
-      "Latest transactions:": [""],
-      "Transfer money manually": [""],
-      "List of public accounts was not found.": [""],
-      "List of public accounts could not be retrieved.": [""],
-      "History of public accounts": [""],
-      "Page has a problem: logged in but backend state is lost.": [
-        "Page has a problem: logged in but backend state is lost.",
-      ],
-      "Welcome to the euFin bank!": [
-        "Welcome to euFin bank: Taler+IBAN now possible!",
-      ],
+strings['en'] = {
+  "domain": "messages",
+  "locale_data": {
+    "messages": {
       "": {
-        domain: "messages",
-        plural_forms: "nplurals=2; plural=(n != 1);",
-        lang: "en",
+        "domain": "messages",
+        "plural_forms": "nplurals=2; plural=(n != 1);",
+        "lang": "en"
       },
-    },
-  },
+      "Logout": [
+        ""
+      ],
+      "Skip to main content": [
+        ""
+      ],
+      "This part of the demo shows how a bank that supports Taler directly 
would work. In addition to using your own bank account, you can also see the 
transaction history of some %1$s.": [
+        ""
+      ],
+      "Taler logo": [
+        ""
+      ],
+      "Missing username": [
+        ""
+      ],
+      "Missing password": [
+        ""
+      ],
+      "Please login!": [
+        ""
+      ],
+      "Username:": [
+        ""
+      ],
+      "Password:": [
+        ""
+      ],
+      "Login": [
+        ""
+      ],
+      "Register": [
+        ""
+      ],
+      "Missing IBAN": [
+        ""
+      ],
+      "IBAN should have just uppercased letters and numbers": [
+        ""
+      ],
+      "Missing subject": [
+        ""
+      ],
+      "Missing amount": [
+        ""
+      ],
+      "Amount is not valid": [
+        ""
+      ],
+      "Should be greater than 0": [
+        ""
+      ],
+      "Receiver IBAN:": [
+        ""
+      ],
+      "Transfer subject:": [
+        ""
+      ],
+      "Amount:": [
+        ""
+      ],
+      "Field(s) missing.": [
+        ""
+      ],
+      "Want to try the raw payto://-format?": [
+        ""
+      ],
+      "Missing payto address": [
+        ""
+      ],
+      "Payto does not follow the pattern": [
+        ""
+      ],
+      "Transfer money to account identified by payto:// URI:": [
+        ""
+      ],
+      "payto URI:": [
+        ""
+      ],
+      "payto address": [
+        ""
+      ],
+      "Send": [
+        ""
+      ],
+      "Use wire-transfer form?": [
+        ""
+      ],
+      "Amount to withdraw:": [
+        "Amount to withdraw"
+      ],
+      "Withdraw": [
+        "Confirm withdrawal"
+      ],
+      "Obtain digital cash": [
+        ""
+      ],
+      "Transfer to bank account": [
+        ""
+      ],
+      "Date": [
+        ""
+      ],
+      "Amount": [
+        ""
+      ],
+      "Counterpart": [
+        ""
+      ],
+      "Subject": [
+        ""
+      ],
+      "Transfer to Taler Wallet": [
+        "Charge Taler wallet"
+      ],
+      "Use this QR code to withdraw to your mobile wallet:": [
+        ""
+      ],
+      "this link": [
+        ""
+      ],
+      "Confirm Withdrawal": [
+        "Confirm withdrawal"
+      ],
+      "Authorize withdrawal by solving challenge": [
+        ""
+      ],
+      "What is": [
+        ""
+      ],
+      "Answer is wrong.": [
+        ""
+      ],
+      "Confirm": [
+        ""
+      ],
+      "Cancel": [
+        ""
+      ],
+      "A this point, a %1$s bank would ask for an additional authentication 
proof (PIN/TAN, one time password, ..), instead of a simple calculation.": [
+        ""
+      ],
+      "Abort": [
+        ""
+      ],
+      "withdrawal (%1$s) was never (correctly) created at the bank...": [
+        ""
+      ],
+      "Waiting the bank to create the operation...": [
+        ""
+      ],
+      "This withdrawal was aborted!": [
+        ""
+      ],
+      "Welcome to %1$s!": [
+        ""
+      ],
+      "Username or account label '%1$s' not found.  Won't login.": [
+        ""
+      ],
+      "Wrong credentials given.": [
+        ""
+      ],
+      "Account information could not be retrieved.": [
+        ""
+      ],
+      "Welcome, %1$s !": [
+        ""
+      ],
+      "Bank account balance": [
+        ""
+      ],
+      "Payments": [
+        ""
+      ],
+      "Latest transactions:": [
+        ""
+      ],
+      "List of public accounts was not found.": [
+        ""
+      ],
+      "List of public accounts could not be retrieved.": [
+        ""
+      ],
+      "History of public accounts": [
+        ""
+      ],
+      "Currently, the bank is not accepting new registrations!": [
+        ""
+      ],
+      "Use only letter and numbers starting with a lower case letter": [
+        ""
+      ],
+      "Password don't match": [
+        ""
+      ],
+      "Please register!": [
+        ""
+      ],
+      "Repeat Password:": [
+        ""
+      ],
+      "Bank menu": [
+        ""
+      ],
+      "Select option1": [
+        ""
+      ],
+      "Select option2": [
+        ""
+      ],
+      "days": [
+        "days"
+      ],
+      "hours": [
+        "hours"
+      ],
+      "minutes": [
+        "minutes"
+      ],
+      "seconds": [
+        "seconds"
+      ]
+    }
+  }
 };
 
-strings["it"] = {
-  domain: "messages",
-  locale_data: {
-    messages: {
-      days: [""],
-      hours: [""],
-      minutes: [""],
-      seconds: [""],
-      Clear: ["Cancella"],
-      Logout: [""],
-      "Demo Bank": ["Banca 'demo'"],
-      "Go back": ["Indietro"],
-      "Wire transfer": ["Bonifico"],
-      "Transfer money to another account of this bank:": [
-        "Trasferisci fondi a un altro conto di questa banca:",
+strings['es'] = {
+  "domain": "messages",
+  "locale_data": {
+    "messages": {
+      "": {
+        "domain": "messages",
+        "plural_forms": "nplurals=2; plural=(n != 1);",
+        "lang": "en"
+      },
+      "Logout": [
+        ""
+      ],
+      "Skip to main content": [
+        ""
+      ],
+      "This part of the demo shows how a bank that supports Taler directly 
would work. In addition to using your own bank account, you can also see the 
transaction history of some %1$s.": [
+        ""
+      ],
+      "Taler logo": [
+        ""
+      ],
+      "Missing username": [
+        ""
+      ],
+      "Missing password": [
+        ""
+      ],
+      "Please login!": [
+        ""
+      ],
+      "Username:": [
+        ""
+      ],
+      "Password:": [
+        ""
+      ],
+      "Login": [
+        ""
+      ],
+      "Register": [
+        ""
+      ],
+      "Missing IBAN": [
+        ""
+      ],
+      "IBAN should have just uppercased letters and numbers": [
+        ""
+      ],
+      "Missing subject": [
+        ""
+      ],
+      "Missing amount": [
+        ""
+      ],
+      "Amount is not valid": [
+        ""
+      ],
+      "Should be greater than 0": [
+        ""
+      ],
+      "Receiver IBAN:": [
+        ""
+      ],
+      "Transfer subject:": [
+        ""
+      ],
+      "Amount:": [
+        ""
+      ],
+      "Field(s) missing.": [
+        ""
       ],
       "Want to try the raw payto://-format?": [
-        "Prova il trasferimento tramite il formato Payto!",
-      ],
-      "Transfer money via the Payto system:": [
-        "Effettua un bonifico tramite il sistema Payto:",
-      ],
-      "payto address": ["indirizzo Payto"],
-      Confirm: ["Conferma"],
-      "Confirm Withdrawal": ["Conferma il ritiro"],
-      "Waiting the bank to create the operaion...": [
-        "La banca sta creando l'operazione...",
-      ],
-      "This withdrawal was aborted!": ["Questo ritiro è stato annullato!"],
-      "Withdraw to a Taler Wallet": ["Ritira contante nel portafoglio Taler"],
-      "You can use this QR code to withdraw to your mobile wallet:": [
-        "Usa questo codice QR per ritirare contante nel tuo wallet:",
-      ],
-      "this link": ["questo link"],
-      Abort: ["Annulla"],
-      "Start withdrawal": ["Ritira contante"],
-      "Withdraw Money into a Taler wallet": [
-        "Ritira contante nel portafoglio Taler",
-      ],
-      "Amount to withdraw": ["Somma da ritirare"],
-      "Please login!": ["Accedi!"],
-      Login: ["Accedi"],
-      "Register to the euFin bank!": ["Apri un conto in banca euFin!"],
-      "Registration form": ["Registrazione"],
-      Register: ["Registrati"],
-      Date: [""],
-      Amount: ["Somma"],
-      Counterpart: ["Controparte"],
-      Subject: ["Causale"],
+        ""
+      ],
+      "Missing payto address": [
+        ""
+      ],
+      "Payto does not follow the pattern": [
+        ""
+      ],
+      "Transfer money to account identified by payto:// URI:": [
+        ""
+      ],
+      "payto URI:": [
+        ""
+      ],
+      "payto address": [
+        ""
+      ],
+      "Send": [
+        ""
+      ],
+      "Use wire-transfer form?": [
+        ""
+      ],
+      "Amount to withdraw:": [
+        "Amount to withdraw"
+      ],
+      "Withdraw": [
+        "Confirm withdrawal"
+      ],
+      "Obtain digital cash": [
+        ""
+      ],
+      "Transfer to bank account": [
+        ""
+      ],
+      "Date": [
+        ""
+      ],
+      "Amount": [
+        ""
+      ],
+      "Counterpart": [
+        ""
+      ],
+      "Subject": [
+        ""
+      ],
+      "Transfer to Taler Wallet": [
+        "Charge Taler wallet"
+      ],
+      "Use this QR code to withdraw to your mobile wallet:": [
+        ""
+      ],
+      "this link": [
+        ""
+      ],
+      "Confirm Withdrawal": [
+        "Confirm withdrawal"
+      ],
+      "Authorize withdrawal by solving challenge": [
+        ""
+      ],
+      "What is": [
+        ""
+      ],
+      "Answer is wrong.": [
+        ""
+      ],
+      "Confirm": [
+        ""
+      ],
+      "Cancel": [
+        ""
+      ],
+      "A this point, a %1$s bank would ask for an additional authentication 
proof (PIN/TAN, one time password, ..), instead of a simple calculation.": [
+        ""
+      ],
+      "Abort": [
+        ""
+      ],
+      "withdrawal (%1$s) was never (correctly) created at the bank...": [
+        ""
+      ],
+      "Waiting the bank to create the operation...": [
+        ""
+      ],
+      "This withdrawal was aborted!": [
+        ""
+      ],
+      "Welcome to %1$s!": [
+        ""
+      ],
       "Username or account label '%1$s' not found.  Won't login.": [
-        "L'utente '%1$s' non esiste.  Login impossibile",
+        ""
+      ],
+      "Wrong credentials given.": [
+        ""
       ],
-      "Wrong credentials given.": ["Credenziali invalide."],
       "Account information could not be retrieved.": [
-        "Impossibile ricevere le informazioni relative al conto.",
+        ""
+      ],
+      "Welcome, %1$s !": [
+        ""
+      ],
+      "Bank account balance": [
+        ""
+      ],
+      "Payments": [
+        ""
+      ],
+      "Latest transactions:": [
+        ""
       ],
-      "Close wire transfer": ["Chiudi il bonifico"],
-      "Close Taler withdrawal": ["Chiudi il ritiro Taler"],
-      "Bank account balance:": ["Bilancio:"],
-      "Latest transactions:": ["Ultime transazioni:"],
-      "Transfer money manually": ["Effettua un bonifico"],
       "List of public accounts was not found.": [
-        "Lista conti pubblici non trovata.",
+        ""
       ],
       "List of public accounts could not be retrieved.": [
-        "Lista conti pubblici non pervenuta.",
+        ""
+      ],
+      "History of public accounts": [
+        ""
+      ],
+      "Currently, the bank is not accepting new registrations!": [
+        ""
+      ],
+      "Use only letter and numbers starting with a lower case letter": [
+        ""
+      ],
+      "Password don't match": [
+        ""
+      ],
+      "Please register!": [
+        ""
+      ],
+      "Repeat Password:": [
+        ""
+      ],
+      "Bank menu": [
+        ""
       ],
-      "History of public accounts": ["Storico dei conti pubblici"],
-      "Page has a problem: logged in but backend state is lost.": [
-        "Stato inconsistente: accesso utente effettuato ma stato con server 
perso.",
+      "Select option1": [
+        ""
       ],
-      "Welcome to the euFin bank!": ["Benvenuti in banca euFin!"],
+      "Select option2": [
+        ""
+      ],
+      "days": [
+        "days"
+      ],
+      "hours": [
+        "hours"
+      ],
+      "minutes": [
+        "minutes"
+      ],
+      "seconds": [
+        "seconds"
+      ]
+    }
+  }
+};
+
+strings['it'] = {
+  "domain": "messages",
+  "locale_data": {
+    "messages": {
       "": {
-        domain: "messages",
-        plural_forms: "nplurals=2; plural=(n != 1);",
-        lang: "it",
+        "domain": "messages",
+        "plural_forms": "nplurals=2; plural=(n != 1);",
+        "lang": "it"
       },
-    },
-  },
+      "Logout": [
+        ""
+      ],
+      "Skip to main content": [
+        ""
+      ],
+      "This part of the demo shows how a bank that supports Taler directly 
would work. In addition to using your own bank account, you can also see the 
transaction history of some %1$s.": [
+        ""
+      ],
+      "Taler logo": [
+        ""
+      ],
+      "Missing username": [
+        ""
+      ],
+      "Missing password": [
+        ""
+      ],
+      "Please login!": [
+        "Accedi!"
+      ],
+      "Username:": [
+        ""
+      ],
+      "Password:": [
+        ""
+      ],
+      "Login": [
+        "Accedi"
+      ],
+      "Register": [
+        "Registrati"
+      ],
+      "Missing IBAN": [
+        ""
+      ],
+      "IBAN should have just uppercased letters and numbers": [
+        ""
+      ],
+      "Missing subject": [
+        ""
+      ],
+      "Missing amount": [
+        ""
+      ],
+      "Amount is not valid": [
+        ""
+      ],
+      "Should be greater than 0": [
+        ""
+      ],
+      "Receiver IBAN:": [
+        ""
+      ],
+      "Transfer subject:": [
+        ""
+      ],
+      "Amount:": [
+        "Somma"
+      ],
+      "Field(s) missing.": [
+        ""
+      ],
+      "Want to try the raw payto://-format?": [
+        "Prova il trasferimento tramite il formato Payto!"
+      ],
+      "Missing payto address": [
+        "indirizzo Payto"
+      ],
+      "Payto does not follow the pattern": [
+        ""
+      ],
+      "Transfer money to account identified by payto:// URI:": [
+        "Trasferisci fondi a un altro conto di questa banca:"
+      ],
+      "payto URI:": [
+        ""
+      ],
+      "payto address": [
+        "indirizzo Payto"
+      ],
+      "Send": [
+        ""
+      ],
+      "Use wire-transfer form?": [
+        "Chiudi il bonifico"
+      ],
+      "Amount to withdraw:": [
+        "Somma da ritirare"
+      ],
+      "Withdraw": [
+        "Conferma il ritiro"
+      ],
+      "Obtain digital cash": [
+        ""
+      ],
+      "Transfer to bank account": [
+        "Trasferisci fondi a un altro conto di questa banca:"
+      ],
+      "Date": [
+        ""
+      ],
+      "Amount": [
+        "Somma"
+      ],
+      "Counterpart": [
+        "Controparte"
+      ],
+      "Subject": [
+        "Causale"
+      ],
+      "Transfer to Taler Wallet": [
+        "Ritira contante nel portafoglio Taler"
+      ],
+      "Use this QR code to withdraw to your mobile wallet:": [
+        "Usa questo codice QR per ritirare contante nel tuo wallet:"
+      ],
+      "this link": [
+        "questo link"
+      ],
+      "Confirm Withdrawal": [
+        "Conferma il ritiro"
+      ],
+      "Authorize withdrawal by solving challenge": [
+        ""
+      ],
+      "What is": [
+        ""
+      ],
+      "Answer is wrong.": [
+        ""
+      ],
+      "Confirm": [
+        "Conferma"
+      ],
+      "Cancel": [
+        ""
+      ],
+      "A this point, a %1$s bank would ask for an additional authentication 
proof (PIN/TAN, one time password, ..), instead of a simple calculation.": [
+        ""
+      ],
+      "Abort": [
+        "Annulla"
+      ],
+      "withdrawal (%1$s) was never (correctly) created at the bank...": [
+        ""
+      ],
+      "Waiting the bank to create the operation...": [
+        "La banca sta creando l'operazione..."
+      ],
+      "This withdrawal was aborted!": [
+        "Questo ritiro è stato annullato!"
+      ],
+      "Welcome to %1$s!": [
+        ""
+      ],
+      "Username or account label '%1$s' not found.  Won't login.": [
+        "L'utente '%1$s' non esiste.  Login impossibile"
+      ],
+      "Wrong credentials given.": [
+        "Credenziali invalide."
+      ],
+      "Account information could not be retrieved.": [
+        "Impossibile ricevere le informazioni relative al conto."
+      ],
+      "Welcome, %1$s !": [
+        ""
+      ],
+      "Bank account balance": [
+        "Bilancio:"
+      ],
+      "Payments": [
+        ""
+      ],
+      "Latest transactions:": [
+        "Ultime transazioni:"
+      ],
+      "List of public accounts was not found.": [
+        "Lista conti pubblici non trovata."
+      ],
+      "List of public accounts could not be retrieved.": [
+        "Lista conti pubblici non pervenuta."
+      ],
+      "History of public accounts": [
+        "Storico dei conti pubblici"
+      ],
+      "Currently, the bank is not accepting new registrations!": [
+        ""
+      ],
+      "Use only letter and numbers starting with a lower case letter": [
+        ""
+      ],
+      "Password don't match": [
+        ""
+      ],
+      "Please register!": [
+        "Accedi!"
+      ],
+      "Repeat Password:": [
+        ""
+      ],
+      "Bank menu": [
+        ""
+      ],
+      "Select option1": [
+        ""
+      ],
+      "Select option2": [
+        ""
+      ],
+      "days": [
+        ""
+      ],
+      "hours": [
+        ""
+      ],
+      "minutes": [
+        ""
+      ],
+      "seconds": [
+        ""
+      ]
+    }
+  }
 };
+
diff --git a/packages/demobank-ui/src/index.tsx 
b/packages/demobank-ui/src/index.tsx
index 0b88b0393..97f68f18f 100644
--- a/packages/demobank-ui/src/index.tsx
+++ b/packages/demobank-ui/src/index.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import App from "./components/app.js";
 export default App;
 import { render, h } from "preact";
diff --git a/packages/demobank-ui/src/pages/home/PaymentOptions.tsx 
b/packages/demobank-ui/src/pages/home/PaymentOptions.tsx
index 69c8d383e..e442ac2a3 100644
--- a/packages/demobank-ui/src/pages/home/PaymentOptions.tsx
+++ b/packages/demobank-ui/src/pages/home/PaymentOptions.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { h, VNode } from "preact";
 import { useState } from "preact/hooks";
 import { useTranslationContext } from "../../context/translation.js";
diff --git a/packages/demobank-ui/src/pages/home/Transactions.tsx 
b/packages/demobank-ui/src/pages/home/Transactions.tsx
index 295bfe0e6..a00046648 100644
--- a/packages/demobank-ui/src/pages/home/Transactions.tsx
+++ b/packages/demobank-ui/src/pages/home/Transactions.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { Logger } from "@gnu-taler/taler-util";
 import { h, VNode } from "preact";
 import { useEffect } from "preact/hooks";
diff --git 
a/packages/demobank-ui/src/pages/home/WithdrawalConfirmationQuestion.tsx 
b/packages/demobank-ui/src/pages/home/WithdrawalConfirmationQuestion.tsx
index 3dbe8708e..26c3b22fd 100644
--- a/packages/demobank-ui/src/pages/home/WithdrawalConfirmationQuestion.tsx
+++ b/packages/demobank-ui/src/pages/home/WithdrawalConfirmationQuestion.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { Logger } from "@gnu-taler/taler-util";
 import { Fragment, h, VNode } from "preact";
 import { StateUpdater } from "preact/hooks";
diff --git a/packages/demobank-ui/src/pages/home/WithdrawalQRCode.tsx 
b/packages/demobank-ui/src/pages/home/WithdrawalQRCode.tsx
index d5b8794d3..f7b059816 100644
--- a/packages/demobank-ui/src/pages/home/WithdrawalQRCode.tsx
+++ b/packages/demobank-ui/src/pages/home/WithdrawalQRCode.tsx
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { Logger } from "@gnu-taler/taler-util";
 import { Fragment, h, VNode } from "preact";
 import useSWR from "swr";
diff --git a/packages/demobank-ui/src/pages/home/index.stories.tsx 
b/packages/demobank-ui/src/pages/home/index.stories.tsx
index e9ac00a76..1c4c64cdb 100644
--- a/packages/demobank-ui/src/pages/home/index.stories.tsx
+++ b/packages/demobank-ui/src/pages/home/index.stories.tsx
@@ -1 +1,17 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 export * as qr from "./QrCodeSection.stories.js";
diff --git a/packages/demobank-ui/src/scss/_form.scss 
b/packages/demobank-ui/src/scss/_form.scss
index 786044eff..9d93477fd 100644
--- a/packages/demobank-ui/src/scss/_form.scss
+++ b/packages/demobank-ui/src/scss/_form.scss
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2021 Taler Systems S.A.
+ (C) 2022 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
diff --git a/packages/demobank-ui/src/settings.ts 
b/packages/demobank-ui/src/settings.ts
index a63ce347e..ec4cee27c 100644
--- a/packages/demobank-ui/src/settings.ts
+++ b/packages/demobank-ui/src/settings.ts
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 export interface BankUiSettings {
   allowRegistrations: boolean;
   showDemoNav: boolean;
diff --git a/packages/demobank-ui/src/stories.tsx 
b/packages/demobank-ui/src/stories.tsx
index 52d42577d..aab93a749 100644
--- a/packages/demobank-ui/src/stories.tsx
+++ b/packages/demobank-ui/src/stories.tsx
@@ -1,17 +1,17 @@
 /*
- This file is part of GNU Anastasis
- (C) 2021-2022 Anastasis SARL
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
 
- GNU Anastasis is free software; you can redistribute it and/or modify it 
under the
- terms of the GNU Affero General Public License as published by the Free 
Software
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
  Foundation; either version 3, or (at your option) any later version.
 
- GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT 
ANY
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
- You should have received a copy of the GNU Affero General Public License 
along with
- GNU Anastasis; see the file COPYING.  If not, see 
<http://www.gnu.org/licenses/>
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
 /**
diff --git a/packages/demobank-ui/src/utils.ts 
b/packages/demobank-ui/src/utils.ts
index f769bca9a..e1d35a2b5 100644
--- a/packages/demobank-ui/src/utils.ts
+++ b/packages/demobank-ui/src/utils.ts
@@ -1,3 +1,19 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
 import { canonicalizeBaseUrl } from "@gnu-taler/taler-util";
 
 /**
diff --git a/packages/pogen/src/po2ts.ts b/packages/pogen/src/po2ts.ts
index 7e831e6f8..d37bdb902 100644
--- a/packages/pogen/src/po2ts.ts
+++ b/packages/pogen/src/po2ts.ts
@@ -24,6 +24,8 @@ import * as fs from "fs";
 import * as path from "path";
 import glob = require("glob");
 
+const DEFAULT_STRING_PRELUDE = "export const strings: any = {};\n\n"
+
 export function po2ts(): void {
   const files = glob.sync("src/i18n/*.po");
 
@@ -34,9 +36,14 @@ export function po2ts(): void {
 
   console.log(files);
 
-  const chunks: string[] = [
-    "export const strings: any = {};\n\n"
-  ];
+  let prelude: string;
+  try {
+    prelude = fs.readFileSync("src/i18n/strings-prelude", "utf-8")
+  } catch (e) {
+    prelude = DEFAULT_STRING_PRELUDE
+  }
+
+  const chunks = [prelude];
 
   for (const filename of files) {
     const m = filename.match(/([a-zA-Z0-9-_]+).po/);
diff --git a/packages/pogen/src/potextract.ts b/packages/pogen/src/potextract.ts
index 8961c8da0..e75c17d55 100644
--- a/packages/pogen/src/potextract.ts
+++ b/packages/pogen/src/potextract.ts
@@ -21,6 +21,26 @@ import * as ts from "typescript";
 import * as fs from "fs";
 import * as path from "path"
 
+const DEFAULT_PO_HEADER = `# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\\n"
+"Report-Msgid-Bugs-To: \\n"
+"POT-Creation-Date: 2016-11-23 00:00+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"
+"Language: \\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"\n\n`
+
+
 function wordwrap(str: string, width: number = 80): string[] {
   var regex = ".{1," + width + "}(\\s|$)|\\S+(\\s|$)";
   return str.match(RegExp(regex, "g"));
@@ -417,28 +437,14 @@ export function potextract() {
       !prog.isSourceFileDefaultLibrary(x),
   );
 
-  // console.log(ownFiles.map((x) => x.fileName));
-
-  const chunks = [];
+  let header: string
+  try {
+    header = fs.readFileSync("src/i18n/poheader", "utf-8")
+  } catch (e) {
+    header = DEFAULT_PO_HEADER
+  }
 
-  chunks.push(`# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\\n"
-"Report-Msgid-Bugs-To: \\n"
-"POT-Creation-Date: 2016-11-23 00:00+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"
-"Language: \\n"
-"MIME-Version: 1.0\\n"
-"Content-Type: text/plain; charset=UTF-8\\n"
-"Content-Transfer-Encoding: 8bit\\n"\n\n`);
+  const chunks = [header];
 
   const knownMessageIds = new Set<string>();
 
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 541130e78..daf339e8d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,13 +8,17 @@ importers:
       '@linaria/esbuild': ^3.0.0-beta.15
       '@linaria/shaker': ^3.0.0-beta.15
       esbuild: ^0.15.13
+      eslint: ^8.29.0
+      eslint-config-prettier: ^8.5.0
       nx: 15.0.1
-      prettier: ^2.5.1
+      prettier: ^2.7.1
     devDependencies:
       '@babel/core': 7.13.16
       '@linaria/esbuild': 3.0.0-beta.23
       '@linaria/shaker': 3.0.0-beta.23
       esbuild: 0.15.13
+      eslint: 8.29.0
+      eslint-config-prettier: 8.5.0_eslint@8.29.0
       nx: 15.0.1
       prettier: 2.7.1
 
@@ -100,7 +104,6 @@ importers:
       bulma-radio: ^1.1.1
       date-fns: 2.29.3
       esbuild: ^0.15.12
-      eslint: ^8.26.0
       eslint-config-preact: ^1.2.0
       history: 4.10.1
       jed: 1.1.1
@@ -125,14 +128,13 @@ importers:
       '@creativebulma/bulma-tooltip': 1.2.0
       '@gnu-taler/pogen': link:../pogen
       '@types/history': 4.7.11
-      '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou
-      '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m
+      '@typescript-eslint/eslint-plugin': 5.41.0_2dmizcyfdgb4npqs6z4fehioli
+      '@typescript-eslint/parser': 5.41.0_typescript@4.8.4
       bulma: 0.9.4
       bulma-checkbox: 1.2.1
       bulma-radio: 1.2.0
       esbuild: 0.15.12
-      eslint: 8.26.0
-      eslint-config-preact: 1.3.0_fy74h4y2g2kkrxhvsefhiowl74
+      eslint-config-preact: 1.3.0_qqbgcrpnpybc6dh47gt272vyy4
       po2json: 0.4.5
       sass: 1.56.1
       typescript: 4.8.4
@@ -861,7 +863,7 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/eslint-parser/7.19.1_cjip4hokpjhf4bbkea6jsnplgy:
+  /@babel/eslint-parser/7.19.1_@babel+core@7.18.9:
     resolution: {integrity: 
sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
     engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
     peerDependencies:
@@ -870,7 +872,6 @@ packages:
     dependencies:
       '@babel/core': 7.18.9
       '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
-      eslint: 8.26.0
       eslint-visitor-keys: 2.1.0
       semver: 6.3.0
     dev: true
@@ -4049,6 +4050,7 @@ packages:
   /@npmcli/move-file/1.1.2:
     resolution: {integrity: 
sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==}
     engines: {node: '>=10'}
+    deprecated: This functionality has been moved to @npmcli/fs
     dependencies:
       mkdirp: 1.0.4
       rimraf: 3.0.2
@@ -4229,6 +4231,23 @@ packages:
       rollup: 2.79.1
     dev: true
 
+  /@rollup/plugin-babel/5.3.1_vyv4jbhmcriklval33ak5sngky:
+    resolution: {integrity: 
sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
+    engines: {node: '>= 10.0.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+      '@types/babel__core': ^7.1.9
+      rollup: ^1.20.0||^2.0.0
+    peerDependenciesMeta:
+      '@types/babel__core':
+        optional: true
+    dependencies:
+      '@babel/core': 7.19.6
+      '@babel/helper-module-imports': 7.18.6
+      '@rollup/pluginutils': 3.1.0_rollup@2.79.1
+      rollup: 2.79.1
+    dev: true
+
   /@rollup/plugin-commonjs/20.0.0_rollup@2.79.1:
     resolution: {integrity: 
sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==}
     engines: {node: '>= 8.0.0'}
@@ -7443,6 +7462,31 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/eslint-plugin/5.41.0_2dmizcyfdgb4npqs6z4fehioli:
+    resolution: {integrity: 
sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      '@typescript-eslint/parser': ^5.0.0
+      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/parser': 5.41.0_typescript@4.8.4
+      '@typescript-eslint/scope-manager': 5.41.0
+      '@typescript-eslint/type-utils': 5.41.0_typescript@4.8.4
+      '@typescript-eslint/utils': 5.41.0_typescript@4.8.4
+      debug: 4.3.4
+      ignore: 5.2.0
+      regexpp: 3.2.0
+      semver: 7.3.8
+      tsutils: 3.21.0_typescript@4.8.4
+      typescript: 4.8.4
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/eslint-plugin/5.41.0_huremdigmcnkianavgfk3x6iou:
     resolution: {integrity: 
sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -7518,27 +7562,26 @@ packages:
       - typescript
     dev: true
 
-  /@typescript-eslint/experimental-utils/5.41.0_wnilx7boviscikmvsfkd6ljepe:
+  /@typescript-eslint/experimental-utils/5.41.0_typescript@4.8.4:
     resolution: {integrity: 
sha512-/qxT2Kd2q/A22JVIllvws4rvc00/3AT4rAo/0YgEN28y+HPhbJbk6X4+MAHEoZzpNyAOugIT7D/OLnKBW8FfhA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      '@typescript-eslint/utils': 5.41.0_wnilx7boviscikmvsfkd6ljepe
-      eslint: 7.32.0
+      '@typescript-eslint/utils': 5.41.0_typescript@4.8.4
     transitivePeerDependencies:
       - supports-color
       - typescript
     dev: true
 
-  /@typescript-eslint/experimental-utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m:
+  /@typescript-eslint/experimental-utils/5.41.0_wnilx7boviscikmvsfkd6ljepe:
     resolution: {integrity: 
sha512-/qxT2Kd2q/A22JVIllvws4rvc00/3AT4rAo/0YgEN28y+HPhbJbk6X4+MAHEoZzpNyAOugIT7D/OLnKBW8FfhA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m
-      eslint: 8.26.0
+      '@typescript-eslint/utils': 5.41.0_wnilx7boviscikmvsfkd6ljepe
+      eslint: 7.32.0
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -7584,6 +7627,25 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/parser/5.41.0_typescript@4.8.4:
+    resolution: {integrity: 
sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/scope-manager': 5.41.0
+      '@typescript-eslint/types': 5.41.0
+      '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4
+      debug: 4.3.4
+      typescript: 4.8.4
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/parser/5.41.0_wyqvi574yv7oiwfeinomdzmc3m:
     resolution: {integrity: 
sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -7620,6 +7682,25 @@ packages:
       '@typescript-eslint/visitor-keys': 5.41.0
     dev: true
 
+  /@typescript-eslint/type-utils/5.41.0_typescript@4.8.4:
+    resolution: {integrity: 
sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: '*'
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4
+      '@typescript-eslint/utils': 5.41.0_typescript@4.8.4
+      debug: 4.3.4
+      tsutils: 3.21.0_typescript@4.8.4
+      typescript: 4.8.4
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/type-utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m:
     resolution: {integrity: 
sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -7754,6 +7835,25 @@ packages:
       - typescript
     dev: true
 
+  /@typescript-eslint/utils/5.41.0_typescript@4.8.4:
+    resolution: {integrity: 
sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+    dependencies:
+      '@types/json-schema': 7.0.11
+      '@types/semver': 7.3.12
+      '@typescript-eslint/scope-manager': 5.41.0
+      '@typescript-eslint/types': 5.41.0
+      '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4
+      eslint-scope: 5.1.1
+      eslint-utils: 3.0.0
+      semver: 7.3.8
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+    dev: true
+
   /@typescript-eslint/utils/5.41.0_wnilx7boviscikmvsfkd6ljepe:
     resolution: {integrity: 
sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -9188,7 +9288,7 @@ packages:
     dev: true
 
   /batch/0.6.1:
-    resolution: {integrity: sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=}
+    resolution: {integrity: 
sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
     dev: true
 
   /bcrypt-pbkdf/1.0.2:
@@ -12408,21 +12508,21 @@ packages:
       - typescript
     dev: true
 
-  /eslint-config-preact/1.3.0_fy74h4y2g2kkrxhvsefhiowl74:
+  /eslint-config-preact/1.3.0_nxlzr75jbqkso2fds5zjovs2ii:
     resolution: {integrity: 
sha512-yHYXg5qNzEJd3D/30AmsIW0W8MuY858KpApXp7xxBF08IYUljSKCOqMx+dVucXHQnAm7+11wOnMkgVHIBAechw==}
     peerDependencies:
       eslint: 6.x || 7.x || 8.x
     dependencies:
       '@babel/core': 7.18.9
-      '@babel/eslint-parser': 7.19.1_cjip4hokpjhf4bbkea6jsnplgy
+      '@babel/eslint-parser': 7.19.1_o5peei4wpze5egwf42u76kwdva
       '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.18.9
       '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.18.9
       '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.9
-      eslint: 8.26.0
-      eslint-plugin-compat: 4.0.2_eslint@8.26.0
-      eslint-plugin-jest: 25.7.0_fy74h4y2g2kkrxhvsefhiowl74
-      eslint-plugin-react: 7.31.10_eslint@8.26.0
-      eslint-plugin-react-hooks: 4.6.0_eslint@8.26.0
+      eslint: 7.32.0
+      eslint-plugin-compat: 4.0.2_eslint@7.32.0
+      eslint-plugin-jest: 25.7.0_nxlzr75jbqkso2fds5zjovs2ii
+      eslint-plugin-react: 7.31.10_eslint@7.32.0
+      eslint-plugin-react-hooks: 4.6.0_eslint@7.32.0
     transitivePeerDependencies:
       - '@typescript-eslint/eslint-plugin'
       - jest
@@ -12430,21 +12530,20 @@ packages:
       - typescript
     dev: true
 
-  /eslint-config-preact/1.3.0_nxlzr75jbqkso2fds5zjovs2ii:
+  /eslint-config-preact/1.3.0_qqbgcrpnpybc6dh47gt272vyy4:
     resolution: {integrity: 
sha512-yHYXg5qNzEJd3D/30AmsIW0W8MuY858KpApXp7xxBF08IYUljSKCOqMx+dVucXHQnAm7+11wOnMkgVHIBAechw==}
     peerDependencies:
       eslint: 6.x || 7.x || 8.x
     dependencies:
       '@babel/core': 7.18.9
-      '@babel/eslint-parser': 7.19.1_o5peei4wpze5egwf42u76kwdva
+      '@babel/eslint-parser': 7.19.1_@babel+core@7.18.9
       '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.18.9
       '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.18.9
       '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.9
-      eslint: 7.32.0
-      eslint-plugin-compat: 4.0.2_eslint@7.32.0
-      eslint-plugin-jest: 25.7.0_nxlzr75jbqkso2fds5zjovs2ii
-      eslint-plugin-react: 7.31.10_eslint@7.32.0
-      eslint-plugin-react-hooks: 4.6.0_eslint@7.32.0
+      eslint-plugin-compat: 4.0.2
+      eslint-plugin-jest: 25.7.0_qqbgcrpnpybc6dh47gt272vyy4
+      eslint-plugin-react: 7.31.10
+      eslint-plugin-react-hooks: 4.6.0
     transitivePeerDependencies:
       - '@typescript-eslint/eslint-plugin'
       - jest
@@ -12452,6 +12551,15 @@ packages:
       - typescript
     dev: true
 
+  /eslint-config-prettier/8.5.0_eslint@8.29.0:
+    resolution: {integrity: 
sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
+    hasBin: true
+    peerDependencies:
+      eslint: '>=7.0.0'
+    dependencies:
+      eslint: 8.29.0
+    dev: true
+
   /eslint-import-resolver-node/0.3.6:
     resolution: {integrity: 
sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
     dependencies:
@@ -12490,7 +12598,7 @@ packages:
       - supports-color
     dev: true
 
-  /eslint-plugin-compat/4.0.2_eslint@7.32.0:
+  /eslint-plugin-compat/4.0.2:
     resolution: {integrity: 
sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==}
     engines: {node: '>=9.x'}
     peerDependencies:
@@ -12501,13 +12609,12 @@ packages:
       browserslist: 4.21.4
       caniuse-lite: 1.0.30001425
       core-js: 3.26.0
-      eslint: 7.32.0
       find-up: 5.0.0
       lodash.memoize: 4.1.2
       semver: 7.3.5
     dev: true
 
-  /eslint-plugin-compat/4.0.2_eslint@8.26.0:
+  /eslint-plugin-compat/4.0.2_eslint@7.32.0:
     resolution: {integrity: 
sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==}
     engines: {node: '>=9.x'}
     peerDependencies:
@@ -12518,7 +12625,7 @@ packages:
       browserslist: 4.21.4
       caniuse-lite: 1.0.30001425
       core-js: 3.26.0
-      eslint: 8.26.0
+      eslint: 7.32.0
       find-up: 5.0.0
       lodash.memoize: 4.1.2
       semver: 7.3.5
@@ -12585,7 +12692,7 @@ packages:
       - typescript
     dev: true
 
-  /eslint-plugin-jest/25.7.0_fy74h4y2g2kkrxhvsefhiowl74:
+  /eslint-plugin-jest/25.7.0_nxlzr75jbqkso2fds5zjovs2ii:
     resolution: {integrity: 
sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
     engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     peerDependencies:
@@ -12598,15 +12705,16 @@ packages:
       jest:
         optional: true
     dependencies:
-      '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou
-      '@typescript-eslint/experimental-utils': 
5.41.0_wyqvi574yv7oiwfeinomdzmc3m
-      eslint: 8.26.0
+      '@typescript-eslint/eslint-plugin': 4.33.0_k4l66av2tbo6kxzw52jzgbfzii
+      '@typescript-eslint/experimental-utils': 
5.41.0_3rubbgt5ekhqrcgx4uwls3neim
+      eslint: 7.32.0
+      jest: 26.6.3
     transitivePeerDependencies:
       - supports-color
       - typescript
     dev: true
 
-  /eslint-plugin-jest/25.7.0_nxlzr75jbqkso2fds5zjovs2ii:
+  /eslint-plugin-jest/25.7.0_qqbgcrpnpybc6dh47gt272vyy4:
     resolution: {integrity: 
sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
     engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
     peerDependencies:
@@ -12619,10 +12727,8 @@ packages:
       jest:
         optional: true
     dependencies:
-      '@typescript-eslint/eslint-plugin': 4.33.0_k4l66av2tbo6kxzw52jzgbfzii
-      '@typescript-eslint/experimental-utils': 
5.41.0_3rubbgt5ekhqrcgx4uwls3neim
-      eslint: 7.32.0
-      jest: 26.6.3
+      '@typescript-eslint/eslint-plugin': 5.41.0_2dmizcyfdgb4npqs6z4fehioli
+      '@typescript-eslint/experimental-utils': 5.41.0_typescript@4.8.4
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -12650,6 +12756,13 @@ packages:
       semver: 6.3.0
     dev: true
 
+  /eslint-plugin-react-hooks/4.6.0:
+    resolution: {integrity: 
sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
+    engines: {node: '>=10'}
+    peerDependencies:
+      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+    dev: true
+
   /eslint-plugin-react-hooks/4.6.0_eslint@7.32.0:
     resolution: {integrity: 
sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
     engines: {node: '>=10'}
@@ -12668,6 +12781,28 @@ packages:
       eslint: 8.26.0
     dev: true
 
+  /eslint-plugin-react/7.31.10:
+    resolution: {integrity: 
sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==}
+    engines: {node: '>=4'}
+    peerDependencies:
+      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+    dependencies:
+      array-includes: 3.1.5
+      array.prototype.flatmap: 1.3.0
+      doctrine: 2.1.0
+      estraverse: 5.3.0
+      jsx-ast-utils: 3.3.3
+      minimatch: 3.1.2
+      object.entries: 1.1.5
+      object.fromentries: 2.0.5
+      object.hasown: 1.1.1
+      object.values: 1.1.5
+      prop-types: 15.8.1
+      resolve: 2.0.0-next.4
+      semver: 6.3.0
+      string.prototype.matchall: 4.0.7
+    dev: true
+
   /eslint-plugin-react/7.31.10_eslint@7.32.0:
     resolution: {integrity: 
sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==}
     engines: {node: '>=4'}
@@ -12745,6 +12880,15 @@ packages:
       eslint-visitor-keys: 1.3.0
     dev: true
 
+  /eslint-utils/3.0.0:
+    resolution: {integrity: 
sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+    peerDependencies:
+      eslint: '>=5'
+    dependencies:
+      eslint-visitor-keys: 2.1.0
+    dev: true
+
   /eslint-utils/3.0.0_eslint@7.32.0:
     resolution: {integrity: 
sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
     engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
@@ -12765,6 +12909,16 @@ packages:
       eslint-visitor-keys: 2.1.0
     dev: true
 
+  /eslint-utils/3.0.0_eslint@8.29.0:
+    resolution: {integrity: 
sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+    peerDependencies:
+      eslint: '>=5'
+    dependencies:
+      eslint: 8.29.0
+      eslint-visitor-keys: 2.1.0
+    dev: true
+
   /eslint-visitor-keys/1.3.0:
     resolution: {integrity: 
sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
     engines: {node: '>=4'}
@@ -12877,6 +13031,54 @@ packages:
       - supports-color
     dev: true
 
+  /eslint/8.29.0:
+    resolution: {integrity: 
sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    hasBin: true
+    dependencies:
+      '@eslint/eslintrc': 1.3.3
+      '@humanwhocodes/config-array': 0.11.6
+      '@humanwhocodes/module-importer': 1.0.1
+      '@nodelib/fs.walk': 1.2.8
+      ajv: 6.12.6
+      chalk: 4.1.2
+      cross-spawn: 7.0.3
+      debug: 4.3.4
+      doctrine: 3.0.0
+      escape-string-regexp: 4.0.0
+      eslint-scope: 7.1.1
+      eslint-utils: 3.0.0_eslint@8.29.0
+      eslint-visitor-keys: 3.3.0
+      espree: 9.4.0
+      esquery: 1.4.0
+      esutils: 2.0.3
+      fast-deep-equal: 3.1.3
+      file-entry-cache: 6.0.1
+      find-up: 5.0.0
+      glob-parent: 6.0.2
+      globals: 13.17.0
+      grapheme-splitter: 1.0.4
+      ignore: 5.2.0
+      import-fresh: 3.3.0
+      imurmurhash: 0.1.4
+      is-glob: 4.0.3
+      is-path-inside: 3.0.3
+      js-sdsl: 4.1.5
+      js-yaml: 4.1.0
+      json-stable-stringify-without-jsonify: 1.0.1
+      levn: 0.4.1
+      lodash.merge: 4.6.2
+      minimatch: 3.1.2
+      natural-compare: 1.4.0
+      optionator: 0.9.1
+      regexpp: 3.2.0
+      strip-ansi: 6.0.1
+      strip-json-comments: 3.1.1
+      text-table: 0.2.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /esm/3.2.25:
     resolution: {integrity: 
sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
     engines: {node: '>=6'}
@@ -16126,7 +16328,7 @@ packages:
     dev: true
 
   /json-buffer/3.0.0:
-    resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=}
+    resolution: {integrity: 
sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
     dev: true
 
   /json-parse-better-errors/1.0.2:
@@ -20225,6 +20427,7 @@ packages:
 
   /rollup-plugin-terser/7.0.2_rollup@2.79.1:
     resolution: {integrity: 
sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
+    deprecated: This package has been deprecated and is no longer maintained. 
Please use @rollup/plugin-terser
     peerDependencies:
       rollup: ^2.0.0
     dependencies:
@@ -20904,6 +21107,7 @@ packages:
 
   /sourcemap-codec/1.4.8:
     resolution: {integrity: 
sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+    deprecated: Please use @jridgewell/sourcemap-codec instead
     dev: true
 
   /space-separated-tokens/1.1.5:
@@ -21016,7 +21220,7 @@ packages:
     dev: true
 
   /stack-trace/0.0.10:
-    resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=}
+    resolution: {integrity: 
sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
     dev: true
 
   /stack-utils/2.0.5:
@@ -21900,7 +22104,7 @@ packages:
     dev: true
 
   /tty-browserify/0.0.0:
-    resolution: {integrity: sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=}
+    resolution: {integrity: 
sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==}
     dev: true
 
   /tunnel-agent/0.6.0:
@@ -22465,7 +22669,7 @@ packages:
     dev: true
 
   /verror/1.10.0:
-    resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=}
+    resolution: {integrity: 
sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
     engines: {'0': node >=0.6.0}
     dependencies:
       assert-plus: 1.0.0
@@ -22978,10 +23182,10 @@ packages:
     engines: {node: '>=10.0.0'}
     dependencies:
       '@apideck/better-ajv-errors': 0.3.6_ajv@8.11.0
-      '@babel/core': 7.18.9
-      '@babel/preset-env': 7.19.4_@babel+core@7.18.9
+      '@babel/core': 7.19.6
+      '@babel/preset-env': 7.19.4_@babel+core@7.19.6
       '@babel/runtime': 7.19.4
-      '@rollup/plugin-babel': 5.3.1_cwbsg774jzhqoll5t2xfwyzz54
+      '@rollup/plugin-babel': 5.3.1_vyv4jbhmcriklval33ak5sngky
       '@rollup/plugin-node-resolve': 11.2.1_rollup@2.79.1
       '@rollup/plugin-replace': 2.4.2_rollup@2.79.1
       '@surma/rollup-plugin-off-main-thread': 2.2.3

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