aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backend-ui
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-03-02 13:51:03 -0300
committerSebastian <sebasjm@gmail.com>2023-03-02 13:51:03 -0300
commit2d5fbb22cdf6cde10004cea174fc90e71668746b (patch)
tree21be3694b459fa59f110d87346160dd048d2a280 /packages/merchant-backend-ui
parentf446a5921487c7196904f9aab00fc189ac6a9e3b (diff)
downloadwallet-core-2d5fbb22cdf6cde10004cea174fc90e71668746b.tar.xz
fix #7714
Diffstat (limited to 'packages/merchant-backend-ui')
-rw-r--r--packages/merchant-backend-ui/babel.config-linaria.json (renamed from packages/merchant-backend-ui/src/i18n/strings-prelude)18
-rwxr-xr-xpackages/merchant-backend-ui/build.mjs151
-rw-r--r--packages/merchant-backend-ui/package.json25
-rw-r--r--packages/merchant-backend-ui/rollup.config.js116
-rw-r--r--packages/merchant-backend-ui/src/context/backend.ts82
-rw-r--r--packages/merchant-backend-ui/src/context/config.ts32
-rw-r--r--packages/merchant-backend-ui/src/context/fetch.ts40
-rw-r--r--packages/merchant-backend-ui/src/context/instance.ts35
-rw-r--r--packages/merchant-backend-ui/src/context/listener.ts35
-rw-r--r--packages/merchant-backend-ui/src/context/translation.ts59
-rw-r--r--packages/merchant-backend-ui/src/hooks/async.ts76
-rw-r--r--packages/merchant-backend-ui/src/hooks/backend.ts264
-rw-r--r--packages/merchant-backend-ui/src/hooks/index.ts110
-rw-r--r--packages/merchant-backend-ui/src/hooks/instance.ts187
-rw-r--r--packages/merchant-backend-ui/src/hooks/listener.ts68
-rw-r--r--packages/merchant-backend-ui/src/hooks/notification.ts43
-rw-r--r--packages/merchant-backend-ui/src/hooks/notifications.ts48
-rw-r--r--packages/merchant-backend-ui/src/hooks/order.ts217
-rw-r--r--packages/merchant-backend-ui/src/hooks/product.ts223
-rw-r--r--packages/merchant-backend-ui/src/hooks/tips.ts159
-rw-r--r--packages/merchant-backend-ui/src/hooks/transfer.ts150
-rw-r--r--packages/merchant-backend-ui/src/i18n/de.po1057
-rw-r--r--packages/merchant-backend-ui/src/i18n/en.po1057
-rw-r--r--packages/merchant-backend-ui/src/i18n/es.po1065
-rw-r--r--packages/merchant-backend-ui/src/i18n/fr.po1057
-rw-r--r--packages/merchant-backend-ui/src/i18n/index.tsx203
-rw-r--r--packages/merchant-backend-ui/src/i18n/it.po1057
-rw-r--r--packages/merchant-backend-ui/src/i18n/poheader27
-rw-r--r--packages/merchant-backend-ui/src/i18n/strings.ts3445
-rw-r--r--packages/merchant-backend-ui/src/i18n/sv.po1057
-rw-r--r--packages/merchant-backend-ui/src/i18n/taler-merchant-backoffice.pot1054
-rw-r--r--packages/merchant-backend-ui/src/index.tsx51
-rw-r--r--packages/merchant-backend-ui/src/utils/amount.ts69
-rw-r--r--packages/merchant-backend-ui/src/utils/constants.ts47
-rw-r--r--packages/merchant-backend-ui/src/utils/table.ts37
-rw-r--r--packages/merchant-backend-ui/src/utils/types.ts31
-rw-r--r--packages/merchant-backend-ui/trim-extension.cjs23
37 files changed, 189 insertions, 13286 deletions
diff --git a/packages/merchant-backend-ui/src/i18n/strings-prelude b/packages/merchant-backend-ui/babel.config-linaria.json
index cca13afad..6192b62fe 100644
--- a/packages/merchant-backend-ui/src/i18n/strings-prelude
+++ b/packages/merchant-backend-ui/babel.config-linaria.json
@@ -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
@@ -13,7 +13,15 @@
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/>
*/
-
-/*eslint quote-props: ["error", "consistent"]*/
-export const strings: {[s: string]: any} = {};
-
+/**
+ *
+ * @author Sebastian Javier Marchano (sebasjm)
+ */
+/*
+ * Linaria need pre-process typscript files into javascript before running.
+ * We choose to use the default preact-cli config.
+ * This file should be used from @linaria/rollup plugin only
+ */
+{
+ "plugins": ["./trim-extension.cjs"],
+}
diff --git a/packages/merchant-backend-ui/build.mjs b/packages/merchant-backend-ui/build.mjs
new file mode 100755
index 000000000..21c4068a4
--- /dev/null
+++ b/packages/merchant-backend-ui/build.mjs
@@ -0,0 +1,151 @@
+#!/usr/bin/env node
+/*
+ This file is part of GNU Taler
+ (C) 2021-2023 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 esbuild from "esbuild";
+import path from "path";
+import fs from "fs";
+import linaria from '@linaria/esbuild'
+
+// eslint-disable-next-line no-undef
+const BASE = process.cwd();
+
+const preact = path.join(
+ BASE,
+ "node_modules",
+ "preact",
+ "compat",
+ "dist",
+ "compat.module.js",
+);
+
+const preactCompatPlugin = {
+ name: "preact-compat",
+ setup(build) {
+ build.onResolve({ filter: /^(react-dom|react)$/ }, (args) => {
+ //console.log("onresolve", JSON.stringify(args, undefined, 2));
+ return {
+ path: preact,
+ };
+ });
+ },
+};
+
+const pages = ["OfferTip","OfferRefund","DepletedTip","RequestPayment","ShowOrderDetails"]
+const entryPoints = pages.map(p => `src/pages/${p}.tsx`);
+
+let GIT_ROOT = BASE;
+while (!fs.existsSync(path.join(GIT_ROOT, ".git")) && GIT_ROOT !== "/") {
+ GIT_ROOT = path.join(GIT_ROOT, "../");
+}
+if (GIT_ROOT === "/") {
+ // eslint-disable-next-line no-undef
+ console.log("not found");
+ // eslint-disable-next-line no-undef
+ process.exit(1);
+}
+const GIT_HASH = GIT_ROOT === "/" ? undefined : git_hash();
+
+let _package = JSON.parse(fs.readFileSync(path.join(BASE, "package.json")));
+
+function git_hash() {
+ const rev = fs
+ .readFileSync(path.join(GIT_ROOT, ".git", "HEAD"))
+ .toString()
+ .trim()
+ .split(/.*[: ]/)
+ .slice(-1)[0];
+ if (rev.indexOf("/") === -1) {
+ return rev;
+ } else {
+ return fs.readFileSync(path.join(GIT_ROOT, ".git", rev)).toString().trim();
+ }
+}
+
+function templatePlugin(options) {
+ return {
+ name: "template-backend",
+ setup(build) {
+ build.onEnd(() => {
+ for (const page of options.pages) {
+ const css = fs.readFileSync(path.join(build.initialOptions.outdir, `${page}.css`),"utf8").toString()
+ const js = fs.readFileSync(path.join(build.initialOptions.outdir, `${page}.js`),"utf8").toString()
+ const scripts = `<script>${js}</script>`
+ const style = `<style>${css}</style>`
+ const render = new Function(`${js}; return page.buildTimeRendering();`)()
+ const html = `
+ <!doctype html>
+ <html>
+ <head>
+ ${render.head}
+ ${style}
+ </head>
+ <script id="built_time_data">
+ </script>
+ <body>
+ ${render.body}
+ ${scripts}
+ <script>page.mount()</script>
+ </body>
+ </html>`
+ fs.writeFileSync(path.join(build.initialOptions.outdir, `${page}.html`), html);
+ }
+ });
+ },
+ };
+}
+
+
+
+export const buildConfig = {
+ entryPoints: [...entryPoints],
+ bundle: true,
+ outdir: "dist/pages",
+ minify: true,
+ loader: {
+ ".svg": "file",
+ ".png": "dataurl",
+ ".jpeg": "dataurl",
+ '.ttf': 'file',
+ '.woff': 'file',
+ '.woff2': 'file',
+ '.eot': 'file',
+ },
+ target: ["es6"],
+ format: "iife",
+ platform: "browser",
+ sourcemap: false,
+ globalName: "page",
+ jsxFactory: "h",
+ jsxFragment: "Fragment",
+ define: {
+ __VERSION__: `"${_package.version}"`,
+ __GIT_HASH__: `"${GIT_HASH}"`,
+ },
+ plugins: [
+ linaria.default({
+ babelOptions: {
+ babelrc: false,
+ configFile: './babel.config-linaria.json',
+ },
+ sourceMap: true,
+ }),
+ preactCompatPlugin,
+ templatePlugin({pages})
+ ],
+};
+
+await esbuild.build(buildConfig)
diff --git a/packages/merchant-backend-ui/package.json b/packages/merchant-backend-ui/package.json
index ddba985aa..810aee7f2 100644
--- a/packages/merchant-backend-ui/package.json
+++ b/packages/merchant-backend-ui/package.json
@@ -38,36 +38,18 @@
]
},
"dependencies": {
- "@gnu-taler/taler-util": "workspace:*",
- "axios": "^0.21.1",
"date-fns": "^2.21.1",
- "history": "4.10.1",
- "jed": "^1.1.1",
"preact": "10.11.3",
- "preact-router": "3.2.1",
- "qrcode-generator": "^1.4.4",
- "swr": "^0.5.5",
- "yup": "^0.32.9"
+ "qrcode-generator": "^1.4.4"
},
"devDependencies": {
"@babel/core": "7.18.9",
- "@creativebulma/bulma-tooltip": "^1.2.0",
"@gnu-taler/pogen": "^0.0.5",
"@linaria/babel-preset": "3.0.0-beta.22",
"@linaria/core": "3.0.0-beta.22",
"@linaria/react": "3.0.0-beta.22",
- "@linaria/rollup": "3.0.0-beta.22",
"@linaria/shaker": "3.0.0-beta.22",
"@linaria/webpack-loader": "3.0.0-beta.22",
- "@rollup/plugin-alias": "^3.1.5",
- "@rollup/plugin-babel": "^5.3.0",
- "@rollup/plugin-commonjs": "^20.0.0",
- "@rollup/plugin-html": "^0.2.3",
- "@rollup/plugin-image": "^2.1.1",
- "@rollup/plugin-json": "^4.1.0",
- "@rollup/plugin-replace": "^3.0.0",
- "@rollup/plugin-typescript": "11",
- "@types/history": "^4.7.8",
"@types/mocha": "^8.2.2",
"@types/mustache": "^4.1.2",
"@typescript-eslint/eslint-plugin": "^4.22.0",
@@ -81,11 +63,8 @@
"po2json": "^0.4.5",
"preact-render-to-string": "^5.1.19",
"rimraf": "^3.0.2",
- "rollup": "^2.56.3",
- "rollup-plugin-bundle-html": "^0.2.2",
- "rollup-plugin-css-only": "^3.1.0",
- "script-ext-html-webpack-plugin": "^2.1.5",
"sirv-cli": "^1.0.11",
+ "ts-node": "^10.9.1",
"tslib": "2.4.0",
"typescript": "4.9.4"
}
diff --git a/packages/merchant-backend-ui/rollup.config.js b/packages/merchant-backend-ui/rollup.config.js
deleted file mode 100644
index 18d72e56b..000000000
--- a/packages/merchant-backend-ui/rollup.config.js
+++ /dev/null
@@ -1,116 +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/>
- */
-
-// rollup.config.js
-import linaria from '@linaria/rollup';
-import nodeResolve from "@rollup/plugin-node-resolve";
-import alias from "@rollup/plugin-alias";
-import image from '@rollup/plugin-image';
-import json from "@rollup/plugin-json";
-import ts from "@rollup/plugin-typescript";
-import replace from "@rollup/plugin-replace";
-import css from 'rollup-plugin-css-only';
-import html from '@rollup/plugin-html';
-import commonjs from "@rollup/plugin-commonjs";
-
-const template = async ({
- files,
-}) => {
- const scripts = (files.js || []).map(({ code }) => `<script>${code}</script>`).join('\n');
- const css = (files.css || []).map(({ source }) => `<style>${source}</style>`).join('\n');
- const ssr = (files.js || []).map(({ code }) => code).join('\n');
- const page = new Function(`${ssr}; return page.buildTimeRendering();`)()
- return `
-<!doctype html>
-<html>
- <head>
- ${page.head}
- ${css}
- </head>
- <script id="built_time_data">
- </script>
- <body>
- ${page.body}
- ${scripts}
- <script>page.mount()</script>
- </body>
-</html>`;
-};
-
-const makePlugins = (name) => [
- alias({
- entries: [
- { find: 'react', replacement: 'preact/compat' },
- { find: 'react-dom', replacement: 'preact/compat' }
- ]
- }),
-
- replace({
- "process.env.NODE_ENV": JSON.stringify("production"),
- preventAssignment: true,
- }),
-
- commonjs({
- include: [/node_modules/, /dist/],
- extensions: [".js"],
- ignoreGlobal: true,
- sourceMap: true,
- }),
-
- nodeResolve({
- browser: true,
- preferBuiltins: true,
- }),
-
- json(),
- image(),
-
- linaria({
- sourceMap: process.env.NODE_ENV !== 'production',
- }),
- css(),
- ts({
- sourceMap: false,
- outputToFilesystem: false,
- }),
- html({ template, fileName: name }),
-];
-
-function formatHtmlName(name) {
- return name
- .replace(/^[A-Z]/, letter => `${letter.toLowerCase()}`) //first letter lowercase
- .replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`) //snake case
- .concat(".en.html"); //extension
-}
-
-const pageDefinition = (name) => ({
- input: `src/pages/${name}.tsx`,
- output: {
- file: `dist/pages/${name}.js`,
- format: "iife",
- exports: 'named',
- name: 'page',
- },
- plugins: makePlugins(formatHtmlName(name)),
-});
-
-export default [
- pageDefinition("OfferTip"),
- pageDefinition("OfferRefund"),
- pageDefinition("DepletedTip"),
- pageDefinition("RequestPayment"),
- pageDefinition("ShowOrderDetails"),
-]
diff --git a/packages/merchant-backend-ui/src/context/backend.ts b/packages/merchant-backend-ui/src/context/backend.ts
deleted file mode 100644
index a920d6ffc..000000000
--- a/packages/merchant-backend-ui/src/context/backend.ts
+++ /dev/null
@@ -1,82 +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)
-*/
-
-import { createContext, h, VNode } from 'preact'
-import { useCallback, useContext, useState } from 'preact/hooks'
-import { useBackendDefaultToken, useBackendURL } from '../hooks';
-
-interface BackendContextType {
- url: string;
- token?: string;
- triedToLog: boolean;
- resetBackend: () => void;
- clearAllTokens: () => void;
- addTokenCleaner: (c: () => void) => void;
- updateLoginStatus: (url: string, token?: string) => void;
-}
-
-const BackendContext = createContext<BackendContextType>({
- url: '',
- token: undefined,
- triedToLog: false,
- resetBackend: () => null,
- clearAllTokens: () => null,
- addTokenCleaner: () => null,
- updateLoginStatus: () => null,
-})
-
-function useBackendContextState(defaultUrl?: string): BackendContextType {
- const [url, triedToLog, changeBackend, resetBackend] = useBackendURL(defaultUrl);
- const [token, _updateToken] = useBackendDefaultToken();
- const updateToken = (t?: string) => {
- _updateToken(t)
- }
-
- const tokenCleaner = useCallback(() => { updateToken(undefined) }, [])
- const [cleaners, setCleaners] = useState([tokenCleaner])
- const addTokenCleaner = (c: () => void) => setCleaners(cs => [...cs, c])
- const addTokenCleanerMemo = useCallback((c: () => void) => { addTokenCleaner(c) }, [tokenCleaner])
-
- const clearAllTokens = () => {
- cleaners.forEach(c => c())
- for (let i = 0; i < localStorage.length; i++) {
- const k = localStorage.key(i)
- if (k && /^backend-token/.test(k)) localStorage.removeItem(k)
- }
- resetBackend()
- }
-
- const updateLoginStatus = (url: string, token?: string) => {
- changeBackend(url);
- if (token) updateToken(token);
- };
-
-
- return { url, token, triedToLog, updateLoginStatus, resetBackend, clearAllTokens, addTokenCleaner: addTokenCleanerMemo }
-}
-
-export const BackendContextProvider = ({ children, defaultUrl }: { children: any, defaultUrl?: string }): VNode => {
- const value = useBackendContextState(defaultUrl)
-
- return h(BackendContext.Provider, { value, children });
-}
-
-export const useBackendContext = (): BackendContextType => useContext(BackendContext);
diff --git a/packages/merchant-backend-ui/src/context/config.ts b/packages/merchant-backend-ui/src/context/config.ts
deleted file mode 100644
index 5cd772380..000000000
--- a/packages/merchant-backend-ui/src/context/config.ts
+++ /dev/null
@@ -1,32 +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)
-*/
-
-import { createContext } from 'preact'
-import { useContext } from 'preact/hooks'
-
-interface Type {
- currency: string;
- version: string;
-}
-const Context = createContext<Type>(null!)
-
-export const ConfigContextProvider = Context.Provider
-export const useConfigContext = (): Type => useContext(Context);
diff --git a/packages/merchant-backend-ui/src/context/fetch.ts b/packages/merchant-backend-ui/src/context/fetch.ts
deleted file mode 100644
index 52a4f9c8d..000000000
--- a/packages/merchant-backend-ui/src/context/fetch.ts
+++ /dev/null
@@ -1,40 +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)
-*/
-
-import { h, createContext, VNode, ComponentChildren } from 'preact'
-import { useContext } from 'preact/hooks'
-import useSWR, { trigger, useSWRInfinite, cache, mutate } from 'swr';
-
-interface Type {
- useSWR: typeof useSWR,
- useSWRInfinite: typeof useSWRInfinite,
-}
-
-const Context = createContext<Type>({} as any)
-
-export const useFetchContext = (): Type => useContext(Context);
-export const FetchContextProvider = ({ children }: { children: ComponentChildren }): VNode => {
- return h(Context.Provider, { value: { useSWR, useSWRInfinite }, children });
-}
-
-export const FetchContextProviderTesting = ({ children, data }: { children: ComponentChildren, data:any }): VNode => {
- return h(Context.Provider, { value: { useSWR: () => data, useSWRInfinite }, children });
-}
diff --git a/packages/merchant-backend-ui/src/context/instance.ts b/packages/merchant-backend-ui/src/context/instance.ts
deleted file mode 100644
index fecf36426..000000000
--- a/packages/merchant-backend-ui/src/context/instance.ts
+++ /dev/null
@@ -1,35 +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)
-*/
-
-import { createContext } from 'preact'
-import { useContext } from 'preact/hooks'
-
-interface Type {
- id: string;
- token?: string;
- admin?: boolean;
- changeToken: (t?:string) => void;
-}
-
-const Context = createContext<Type>({} as any)
-
-export const InstanceContextProvider = Context.Provider
-export const useInstanceContext = (): Type => useContext(Context);
diff --git a/packages/merchant-backend-ui/src/context/listener.ts b/packages/merchant-backend-ui/src/context/listener.ts
deleted file mode 100644
index 659db0a03..000000000
--- a/packages/merchant-backend-ui/src/context/listener.ts
+++ /dev/null
@@ -1,35 +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)
-*/
-
-import { createContext } from 'preact'
-import { useContext } from 'preact/hooks'
-
-interface Type {
- id: string;
- token?: string;
- admin?: boolean;
- changeToken: (t?:string) => void;
-}
-
-const Context = createContext<Type>({} as any)
-
-export const ListenerContextProvider = Context.Provider
-export const useListenerContext = (): Type => useContext(Context);
diff --git a/packages/merchant-backend-ui/src/context/translation.ts b/packages/merchant-backend-ui/src/context/translation.ts
deleted file mode 100644
index 952a1e325..000000000
--- a/packages/merchant-backend-ui/src/context/translation.ts
+++ /dev/null
@@ -1,59 +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)
-*/
-
-import { createContext, h, VNode } from 'preact'
-import { useContext, useEffect } from 'preact/hooks'
-import { useLang } from '../hooks'
-import * as jedLib from "jed";
-import { strings } from "../i18n/strings";
-
-interface Type {
- lang: string;
- handler: any;
- changeLanguage: (l: string) => void;
-}
-const initial = {
- lang: 'en',
- handler: null,
- changeLanguage: () => {
- // do not change anything
- }
-}
-const Context = createContext<Type>(initial)
-
-interface Props {
- initial?: string,
- children: any,
- forceLang?: string
-}
-
-export const TranslationProvider = ({ initial, children, forceLang }: Props): VNode => {
- const [lang, changeLanguage] = useLang(initial)
- useEffect(() => {
- if (forceLang) {
- changeLanguage(forceLang)
- }
- })
- const handler = new jedLib.Jed(strings[lang]);
- return h(Context.Provider, { value: { lang, handler, changeLanguage }, children });
-}
-
-export const useTranslationContext = (): Type => useContext(Context); \ No newline at end of file
diff --git a/packages/merchant-backend-ui/src/hooks/async.ts b/packages/merchant-backend-ui/src/hooks/async.ts
deleted file mode 100644
index fd550043b..000000000
--- a/packages/merchant-backend-ui/src/hooks/async.ts
+++ /dev/null
@@ -1,76 +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)
-*/
-import { useState } from "preact/hooks";
-import { cancelPendingRequest } from "./backend";
-
-export interface Options {
- slowTolerance: number,
-}
-
-export interface AsyncOperationApi<T> {
- request: (...a: any) => void,
- cancel: () => void,
- data: T | undefined,
- isSlow: boolean,
- isLoading: boolean,
- error: string | undefined
-}
-
-export function useAsync<T>(fn?: (...args: any) => Promise<T>, { slowTolerance: tooLong }: Options = { slowTolerance: 1000 }): AsyncOperationApi<T> {
- const [data, setData] = useState<T | undefined>(undefined);
- const [isLoading, setLoading] = useState<boolean>(false);
- const [error, setError] = useState<any>(undefined);
- const [isSlow, setSlow] = useState(false)
-
- const request = async (...args: any) => {
- if (!fn) return;
- setLoading(true);
-
- const handler = setTimeout(() => {
- setSlow(true)
- }, tooLong)
-
- try {
- const result = await fn(...args);
- setData(result);
- } catch (error) {
- setError(error);
- }
- setLoading(false);
- setSlow(false)
- clearTimeout(handler)
- };
-
- function cancel() {
- cancelPendingRequest()
- setLoading(false);
- setSlow(false)
- }
-
- return {
- request,
- cancel,
- data,
- isSlow,
- isLoading,
- error
- };
-}
diff --git a/packages/merchant-backend-ui/src/hooks/backend.ts b/packages/merchant-backend-ui/src/hooks/backend.ts
deleted file mode 100644
index 044344d5d..000000000
--- a/packages/merchant-backend-ui/src/hooks/backend.ts
+++ /dev/null
@@ -1,264 +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)
-*/
-
-import { mutate, cache } from 'swr';
-import axios, { AxiosError, AxiosResponse } from 'axios'
-import { MerchantBackend } from '../declaration';
-import { useBackendContext } from '../context/backend';
-import { useEffect, useState } from 'preact/hooks';
-import { DEFAULT_REQUEST_TIMEOUT } from '../utils/constants';
-
-export function mutateAll(re: RegExp, value?: unknown): Array<Promise<any>> {
- return cache.keys().filter(key => {
- return re.test(key)
- }).map(key => {
- return mutate(key, value)
- })
-}
-
-export type HttpResponse<T> = HttpResponseOk<T> | HttpResponseLoading<T> | HttpError;
-export type HttpResponsePaginated<T> = HttpResponseOkPaginated<T> | HttpResponseLoading<T> | HttpError;
-
-export interface RequestInfo {
- url: string;
- hasToken: boolean;
- params: unknown;
- data: unknown;
-}
-
-interface HttpResponseLoading<T> {
- ok?: false;
- loading: true;
- clientError?: false;
- serverError?: false;
-
- data?: T;
-}
-export interface HttpResponseOk<T> {
- ok: true;
- loading?: false;
- clientError?: false;
- serverError?: false;
-
- data: T;
- info?: RequestInfo;
-}
-
-export type HttpResponseOkPaginated<T> = HttpResponseOk<T> & WithPagination
-
-export interface WithPagination {
- loadMore: () => void;
- loadMorePrev: () => void;
- isReachingEnd?: boolean;
- isReachingStart?: boolean;
-}
-
-export type HttpError = HttpResponseClientError | HttpResponseServerError | HttpResponseUnexpectedError;
-export interface SwrError {
- info: unknown,
- status: number,
- message: string,
-}
-export interface HttpResponseServerError {
- ok?: false;
- loading?: false;
- clientError?: false;
- serverError: true;
-
- error?: MerchantBackend.ErrorDetail;
- status: number;
- message: string;
- info?: RequestInfo;
-}
-interface HttpResponseClientError {
- ok?: false;
- loading?: false;
- clientError: true;
- serverError?: false;
-
- info?: RequestInfo;
- isUnauthorized: boolean;
- isNotfound: boolean;
- status: number;
- error?: MerchantBackend.ErrorDetail;
- message: string;
-
-}
-
-interface HttpResponseUnexpectedError {
- ok?: false;
- loading?: false;
- clientError?: false;
- serverError?: false;
-
- info?: RequestInfo;
- status?: number;
- error: unknown;
- message: string;
-}
-
-type Methods = 'get' | 'post' | 'patch' | 'delete' | 'put';
-
-interface RequestOptions {
- method?: Methods;
- token?: string;
- data?: unknown;
- params?: unknown;
-}
-
-function buildRequestOk<T>(res: AxiosResponse<T>, url: string, hasToken: boolean): HttpResponseOk<T> {
- return {
- ok: true, data: res.data, info: {
- params: res.config.params,
- data: res.config.data,
- url,
- hasToken,
- }
- }
-}
-
-// function buildResponse<T>(data?: T, error?: MerchantBackend.ErrorDetail, isValidating?: boolean): HttpResponse<T> {
-// if (isValidating) return {loading: true}
-// if (error) return buildRequestFailed()
-// }
-
-function buildRequestFailed(ex: AxiosError<MerchantBackend.ErrorDetail>, url: string, hasToken: boolean): HttpResponseClientError | HttpResponseServerError | HttpResponseUnexpectedError {
- const status = ex.response?.status
-
- const info: RequestInfo = {
- data: ex.request?.data,
- params: ex.request?.params,
- url,
- hasToken,
- };
-
- if (status && status >= 400 && status < 500) {
- const error: HttpResponseClientError = {
- clientError: true,
- isNotfound: status === 404,
- isUnauthorized: status === 401,
- status,
- info,
- message: ex.response?.data?.hint || ex.message,
- error: ex.response?.data
- }
- return error
- }
- if (status && status >= 500 && status < 600) {
- const error: HttpResponseServerError = {
- serverError: true,
- status,
- info,
- message: `${ex.response?.data?.hint} (code ${ex.response?.data?.code})` || ex.message,
- error: ex.response?.data
- }
- return error;
- }
-
- const error: HttpResponseUnexpectedError = {
- info,
- status,
- error: ex,
- message: ex.message
- }
-
- return error
-}
-
-
-const CancelToken = axios.CancelToken;
-let source = CancelToken.source();
-
-export function cancelPendingRequest() {
- source.cancel('canceled by the user')
- source = CancelToken.source()
-}
-
-let removeAxiosCancelToken = false
-/**
- * Jest mocking seems to break when using the cancelToken property.
- * Using this workaround when testing while finding the correct solution
- */
-export function setAxiosRequestAsTestingEnvironment() {
- removeAxiosCancelToken = true
-}
-
-export async function request<T>(url: string, options: RequestOptions = {}): Promise<HttpResponseOk<T>> {
- const headers = options.token ? { Authorization: `Bearer ${options.token}` } : undefined
-
- try {
- const res = await axios({
- url,
- responseType: 'json',
- headers,
- cancelToken: !removeAxiosCancelToken ? source.token : undefined,
- method: options.method || 'get',
- data: options.data,
- params: options.params,
- timeout: DEFAULT_REQUEST_TIMEOUT * 1000,
- })
- return buildRequestOk<T>(res, url, !!options.token)
- } catch (e) {
- if (axios.isAxiosError(e)) {
- throw buildRequestFailed(e, url, !!options.token)
- }
- throw e
- }
-
-}
-
-export function fetcher<T>(url: string, token: string, backend: string): Promise<HttpResponseOk<T>> {
- return request<T>(`${backend}${url}`, { token })
-}
-
-export function useBackendInstancesTestForAdmin(): HttpResponse<MerchantBackend.Instances.InstancesResponse> {
- const { url, token } = useBackendContext()
-
- type Type = MerchantBackend.Instances.InstancesResponse;
-
- const [result, setResult] = useState<HttpResponse<Type>>({ loading: true })
-
- useEffect(() => {
- request<Type>(`${url}/management/instances`, { token })
- .then(data => setResult(data))
- .catch(error => setResult(error))
- }, [url, token])
-
-
- return result
-}
-
-
-export function useBackendConfig(): HttpResponse<MerchantBackend.VersionResponse> {
- const { url, token } = useBackendContext()
-
- type Type = MerchantBackend.VersionResponse;
-
- const [result, setResult] = useState<HttpResponse<Type>>({ loading: true })
-
- useEffect(() => {
- request<Type>(`${url}/config`, { token })
- .then(data => setResult(data))
- .catch(error => setResult(error))
- }, [url, token])
-
- return result
-}
diff --git a/packages/merchant-backend-ui/src/hooks/index.ts b/packages/merchant-backend-ui/src/hooks/index.ts
deleted file mode 100644
index 19d672ad3..000000000
--- a/packages/merchant-backend-ui/src/hooks/index.ts
+++ /dev/null
@@ -1,110 +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)
-*/
-
-import { StateUpdater, useCallback, useState } from "preact/hooks";
-import { ValueOrFunction } from '../utils/types';
-
-
-const calculateRootPath = () => {
- const rootPath = typeof window !== undefined ? window.location.origin + window.location.pathname : '/'
- return rootPath
-}
-
-export function useBackendURL(url?: string): [string, boolean, StateUpdater<string>, () => void] {
- const [value, setter] = useNotNullLocalStorage('backend-url', url || calculateRootPath())
- const [triedToLog, setTriedToLog] = useLocalStorage('tried-login')
-
- const checkedSetter = (v: ValueOrFunction<string>) => {
- setTriedToLog('yes')
- return setter(p => (v instanceof Function ? v(p) : v).replace(/\/$/, ''))
- }
-
- const resetBackend = () => {
- setTriedToLog(undefined)
- }
- return [value, !!triedToLog, checkedSetter, resetBackend]
-}
-
-export function useBackendDefaultToken(): [string | undefined, StateUpdater<string | undefined>] {
- return useLocalStorage('backend-token')
-}
-
-export function useBackendInstanceToken(id: string): [string | undefined, StateUpdater<string | undefined>] {
- const [token, setToken] = useLocalStorage(`backend-token-${id}`)
- const [defaultToken, defaultSetToken] = useBackendDefaultToken()
-
- // instance named 'default' use the default token
- if (id === 'default') {
- return [defaultToken, defaultSetToken]
- }
-
- return [token, setToken]
-}
-
-export function useLang(initial?: string): [string, StateUpdater<string>] {
- const browserLang = typeof window !== "undefined" ? navigator.language || (navigator as any).userLanguage : undefined;
- const defaultLang = (browserLang || initial || 'en').substring(0, 2)
- return useNotNullLocalStorage('lang-preference', defaultLang)
-}
-
-export function useLocalStorage(key: string, initialValue?: string): [string | undefined, StateUpdater<string | undefined>] {
- const [storedValue, setStoredValue] = useState<string | undefined>((): string | undefined => {
- return typeof window !== "undefined" ? window.localStorage.getItem(key) || initialValue : initialValue;
- });
-
- const setValue = (value?: string | ((val?: string) => string | undefined)) => {
- setStoredValue(p => {
- const toStore = value instanceof Function ? value(p) : value
- if (typeof window !== "undefined") {
- if (!toStore) {
- window.localStorage.removeItem(key)
- } else {
- window.localStorage.setItem(key, toStore);
- }
- }
- return toStore
- })
- };
-
- return [storedValue, setValue];
-}
-
-export function useNotNullLocalStorage(key: string, initialValue: string): [string, StateUpdater<string>] {
- const [storedValue, setStoredValue] = useState<string>((): string => {
- return typeof window !== "undefined" ? window.localStorage.getItem(key) || initialValue : initialValue;
- });
-
- const setValue = (value: string | ((val: string) => string)) => {
- const valueToStore = value instanceof Function ? value(storedValue) : value;
- setStoredValue(valueToStore);
- if (typeof window !== "undefined") {
- if (!valueToStore) {
- window.localStorage.removeItem(key)
- } else {
- window.localStorage.setItem(key, valueToStore);
- }
- }
- };
-
- return [storedValue, setValue];
-}
-
-
diff --git a/packages/merchant-backend-ui/src/hooks/instance.ts b/packages/merchant-backend-ui/src/hooks/instance.ts
deleted file mode 100644
index 14ab8de9c..000000000
--- a/packages/merchant-backend-ui/src/hooks/instance.ts
+++ /dev/null
@@ -1,187 +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 { MerchantBackend } from '../declaration';
-import { useBackendContext } from '../context/backend';
-import { fetcher, HttpError, HttpResponse, HttpResponseOk, request, SwrError } from './backend';
-import useSWR, { mutate } from 'swr';
-import { useInstanceContext } from '../context/instance';
-
-
-interface InstanceAPI {
- updateInstance: (data: MerchantBackend.Instances.InstanceReconfigurationMessage) => Promise<void>;
- deleteInstance: () => Promise<void>;
- clearToken: () => Promise<void>;
- setNewToken: (token: string) => Promise<void>;
-}
-
-export function useManagementAPI(instanceId: string) : InstanceAPI {
- const { url, token } = useBackendContext()
-
- const updateInstance = async (instance: MerchantBackend.Instances.InstanceReconfigurationMessage): Promise<void> => {
- await request(`${url}/management/instances/${instanceId}`, {
- method: 'patch',
- token,
- data: instance
- })
-
- mutate([`/private/`, token, url], null)
- };
-
- const deleteInstance = async (): Promise<void> => {
- await request(`${url}/management/instances/${instanceId}`, {
- method: 'delete',
- token,
- })
-
- mutate([`/private/`, token, url], null)
- }
-
- const clearToken = async (): Promise<void> => {
- await request(`${url}/management/instances/${instanceId}/auth`, {
- method: 'post',
- token,
- data: { method: 'external' }
- })
-
- mutate([`/private/`, token, url], null)
- }
-
- const setNewToken = async (newToken: string): Promise<void> => {
- await request(`${url}/management/instances/${instanceId}/auth`, {
- method: 'post',
- token,
- data: { method: 'token', token: newToken }
- })
-
- mutate([`/private/`, token, url], null)
- }
-
- return { updateInstance, deleteInstance, setNewToken, clearToken }
-}
-
-export function useInstanceAPI(): InstanceAPI {
- const { url: baseUrl, token: adminToken } = useBackendContext()
- const { token: instanceToken, id, admin } = useInstanceContext()
-
- const { url, token } = !admin ? {
- url: baseUrl, token: adminToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- };
-
- const updateInstance = async (instance: MerchantBackend.Instances.InstanceReconfigurationMessage): Promise<void> => {
- await request(`${url}/private/`, {
- method: 'patch',
- token,
- data: instance
- })
-
- if (adminToken) mutate(['/private/instances', adminToken, baseUrl], null)
- mutate([`/private/`, token, url], null)
- };
-
- const deleteInstance = async (): Promise<void> => {
- await request(`${url}/private/`, {
- method: 'delete',
- token: adminToken,
- })
-
- if (adminToken) mutate(['/private/instances', adminToken, baseUrl], null)
- mutate([`/private/`, token, url], null)
- }
-
- const clearToken = async (): Promise<void> => {
- await request(`${url}/private/auth`, {
- method: 'post',
- token,
- data: { method: 'external' }
- })
-
- mutate([`/private/`, token, url], null)
- }
-
- const setNewToken = async (newToken: string): Promise<void> => {
- await request(`${url}/private/auth`, {
- method: 'post',
- token,
- data: { method: 'token', token: newToken }
- })
-
- mutate([`/private/`, token, url], null)
- }
-
- return { updateInstance, deleteInstance, setNewToken, clearToken }
-}
-
-
-export function useInstanceDetails(): HttpResponse<MerchantBackend.Instances.QueryInstancesResponse> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: baseToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- }
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Instances.QueryInstancesResponse>, HttpError>([`/private/`, token, url], fetcher, {
- refreshInterval:0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- errorRetryCount: 0,
- errorRetryInterval: 1,
- shouldRetryOnError: false,
- })
-
- if (isValidating) return {loading:true, data: data?.data}
- if (data) return data
- if (error) return error
- return {loading: true}
-}
-
-export function useManagedInstanceDetails(instanceId: string): HttpResponse<MerchantBackend.Instances.QueryInstancesResponse> {
- const { url, token } = useBackendContext();
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Instances.QueryInstancesResponse>, HttpError>([`/management/instances/${instanceId}`, token, url], fetcher, {
- refreshInterval:0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- errorRetryCount: 0,
- errorRetryInterval: 1,
- shouldRetryOnError: false,
- })
-
- if (isValidating) return {loading:true, data: data?.data}
- if (data) return data
- if (error) return error
- return {loading: true}
-}
-
-export function useBackendInstances(): HttpResponse<MerchantBackend.Instances.InstancesResponse> {
- const { url } = useBackendContext()
- const { token } = useInstanceContext();
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Instances.InstancesResponse>, HttpError>(['/management/instances', token, url], fetcher)
-
- if (isValidating) return {loading:true, data: data?.data}
- if (data) return data
- if (error) return error
- return {loading: true}
-}
diff --git a/packages/merchant-backend-ui/src/hooks/listener.ts b/packages/merchant-backend-ui/src/hooks/listener.ts
deleted file mode 100644
index 231ed6c87..000000000
--- a/packages/merchant-backend-ui/src/hooks/listener.ts
+++ /dev/null
@@ -1,68 +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)
-*/
-
-import { useState } from "preact/hooks";
-
-/**
- * returns subscriber and activator
- * subscriber will receive a method (listener) that will be call when the activator runs.
- * the result of calling the listener will be sent to @action
- *
- * @param action from <T> to <R>
- * @returns activator and subscriber, undefined activator means that there is not subscriber
- */
-
-export function useListener<T, R = any>(action: (r: T) => Promise<R>): [undefined | (() => Promise<R>), (listener?: () => T) => void] {
- type RunnerHandler = { toBeRan?: () => Promise<R>; };
- const [state, setState] = useState<RunnerHandler>({});
-
- /**
- * subscriber will receive a method that will be call when the activator runs
- *
- * @param listener function to be run when the activator runs
- */
- const subscriber = (listener?: () => T) => {
- if (listener) {
- setState({
- toBeRan: () => {
- const whatWeGetFromTheListener = listener();
- return action(whatWeGetFromTheListener);
- }
- });
- } else {
- setState({
- toBeRan: undefined
- })
- }
- };
-
- /**
- * activator will call runner if there is someone subscribed
- */
- const activator = state.toBeRan ? async () => {
- if (state.toBeRan) {
- return state.toBeRan();
- }
- return Promise.reject();
- } : undefined;
-
- return [activator, subscriber];
-}
diff --git a/packages/merchant-backend-ui/src/hooks/notification.ts b/packages/merchant-backend-ui/src/hooks/notification.ts
deleted file mode 100644
index d1dfbff2c..000000000
--- a/packages/merchant-backend-ui/src/hooks/notification.ts
+++ /dev/null
@@ -1,43 +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)
-*/
-
-import { useCallback, useState } from "preact/hooks";
-import { Notification } from '../utils/types';
-
-interface Result {
- notification?: Notification;
- pushNotification: (n: Notification) => void;
- removeNotification: () => void;
-}
-
-export function useNotification(): Result {
- const [notification, setNotifications] = useState<Notification|undefined>(undefined)
-
- const pushNotification = useCallback((n: Notification): void => {
- setNotifications(n)
- },[])
-
- const removeNotification = useCallback(() => {
- setNotifications(undefined)
- },[])
-
- return { notification, pushNotification, removeNotification }
-}
diff --git a/packages/merchant-backend-ui/src/hooks/notifications.ts b/packages/merchant-backend-ui/src/hooks/notifications.ts
deleted file mode 100644
index 1c0c37308..000000000
--- a/packages/merchant-backend-ui/src/hooks/notifications.ts
+++ /dev/null
@@ -1,48 +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)
-*/
-
-import { useState } from "preact/hooks";
-import { Notification } from '../utils/types';
-
-interface Result {
- notifications: Notification[];
- pushNotification: (n: Notification) => void;
- removeNotification: (n: Notification) => void;
-}
-
-type NotificationWithDate = Notification & { since: Date }
-
-export function useNotifications(initial: Notification[] = [], timeout = 3000): Result {
- const [notifications, setNotifications] = useState<(NotificationWithDate)[]>(initial.map(i => ({...i, since: new Date() })))
-
- const pushNotification = (n: Notification): void => {
- const entry = { ...n, since: new Date() }
- setNotifications(ns => [...ns, entry])
- if (n.type !== 'ERROR') setTimeout(() => {
- setNotifications(ns => ns.filter(x => x.since !== entry.since))
- }, timeout)
- }
-
- const removeNotification = (notif: Notification) => {
- setNotifications((ns: NotificationWithDate[]) => ns.filter(n => n !== notif))
- }
- return { notifications, pushNotification, removeNotification }
-}
diff --git a/packages/merchant-backend-ui/src/hooks/order.ts b/packages/merchant-backend-ui/src/hooks/order.ts
deleted file mode 100644
index 4a17eac30..000000000
--- a/packages/merchant-backend-ui/src/hooks/order.ts
+++ /dev/null
@@ -1,217 +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 { useEffect, useState } from 'preact/hooks';
-import useSWR from 'swr';
-import { useBackendContext } from '../context/backend';
-import { useInstanceContext } from '../context/instance';
-import { MerchantBackend } from '../declaration';
-import { MAX_RESULT_SIZE, PAGE_SIZE } from '../utils/constants';
-import { fetcher, HttpError, HttpResponse, HttpResponseOk, HttpResponsePaginated, mutateAll, request } from './backend';
-
-export interface OrderAPI {
- //FIXME: add OutOfStockResponse on 410
- createOrder: (data: MerchantBackend.Orders.PostOrderRequest) => Promise<HttpResponseOk<MerchantBackend.Orders.PostOrderResponse>>;
- forgetOrder: (id: string, data: MerchantBackend.Orders.ForgetRequest) => Promise<HttpResponseOk<void>>;
- refundOrder: (id: string, data: MerchantBackend.Orders.RefundRequest) => Promise<HttpResponseOk<MerchantBackend.Orders.MerchantRefundResponse>>;
- deleteOrder: (id: string) => Promise<HttpResponseOk<void>>;
- getPaymentURL: (id: string) => Promise<HttpResponseOk<string>>;
-}
-
-type YesOrNo = 'yes' | 'no';
-
-
-export function orderFetcher<T>(url: string, token: string, backend: string, paid?: YesOrNo, refunded?: YesOrNo, wired?: YesOrNo, searchDate?: Date, delta?: number): Promise<HttpResponseOk<T>> {
- const date_ms = delta && delta < 0 && searchDate ? searchDate.getTime() + 1 : searchDate?.getTime()
- const params: any = {}
- if (paid !== undefined) params.paid = paid
- if (delta !== undefined) params.delta = delta
- if (refunded !== undefined) params.refunded = refunded
- if (wired !== undefined) params.wired = wired
- if (date_ms !== undefined) params.date_ms = date_ms
- return request<T>(`${backend}${url}`, { token, params })
-}
-
-
-export function useOrderAPI(): OrderAPI {
- const { url: baseUrl, token: adminToken } = useBackendContext()
- const { token: instanceToken, id, admin } = useInstanceContext()
-
- const { url, token } = !admin ? {
- url: baseUrl, token: adminToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- }
-
- const createOrder = async (data: MerchantBackend.Orders.PostOrderRequest): Promise<HttpResponseOk<MerchantBackend.Orders.PostOrderResponse>> => {
- const res = await request<MerchantBackend.Orders.PostOrderResponse>(`${url}/private/orders`, {
- method: 'post',
- token,
- data
- })
- await mutateAll(/@"\/private\/orders"@/)
- return res
- }
- const refundOrder = async (orderId: string, data: MerchantBackend.Orders.RefundRequest): Promise<HttpResponseOk<MerchantBackend.Orders.MerchantRefundResponse>> => {
- mutateAll(/@"\/private\/orders"@/)
- return request<MerchantBackend.Orders.MerchantRefundResponse>(`${url}/private/orders/${orderId}/refund`, {
- method: 'post',
- token,
- data
- })
-
- // return res
- }
-
- const forgetOrder = async (orderId: string, data: MerchantBackend.Orders.ForgetRequest): Promise<HttpResponseOk<void>> => {
- mutateAll(/@"\/private\/orders"@/)
- return request(`${url}/private/orders/${orderId}/forget`, {
- method: 'patch',
- token,
- data
- })
-
- }
- const deleteOrder = async (orderId: string): Promise<HttpResponseOk<void>> => {
- mutateAll(/@"\/private\/orders"@/)
- return request(`${url}/private/orders/${orderId}`, {
- method: 'delete',
- token
- })
- }
-
- const getPaymentURL = async (orderId: string): Promise<HttpResponseOk<string>> => {
- return request<MerchantBackend.Orders.MerchantOrderStatusResponse>(`${url}/private/orders/${orderId}`, {
- method: 'get',
- token
- }).then((res) => {
- const url = res.data.order_status === "unpaid" ? res.data.taler_pay_uri : res.data.contract_terms.fulfillment_url
- const response: HttpResponseOk<string> = res as any
- response.data = url || ''
- return response
- })
- }
-
- return { createOrder, forgetOrder, deleteOrder, refundOrder, getPaymentURL }
-}
-
-export function useOrderDetails(oderId: string): HttpResponse<MerchantBackend.Orders.MerchantOrderStatusResponse> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: baseToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- };
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Orders.MerchantOrderStatusResponse>, HttpError>([`/private/orders/${oderId}`, token, url], fetcher, {
- refreshInterval: 0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- })
-
- if (isValidating) return { loading: true, data: data?.data }
- if (data) return data
- if (error) return error
- return { loading: true }
-}
-
-export interface InstanceOrderFilter {
- paid?: YesOrNo;
- refunded?: YesOrNo;
- wired?: YesOrNo;
- date?: Date;
-}
-
-export function useInstanceOrders(args?: InstanceOrderFilter, updateFilter?: (d: Date) => void): HttpResponsePaginated<MerchantBackend.Orders.OrderHistory> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: baseToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- }
-
- const [pageBefore, setPageBefore] = useState(1)
- const [pageAfter, setPageAfter] = useState(1)
-
- const totalAfter = pageAfter * PAGE_SIZE;
- const totalBefore = args?.date ? pageBefore * PAGE_SIZE : 0;
-
- /**
- * FIXME: this can be cleaned up a little
- *
- * the logic of double query should be inside the orderFetch so from the hook perspective and cache
- * is just one query and one error status
- */
- const { data: beforeData, error: beforeError, isValidating: loadingBefore } = useSWR<HttpResponseOk<MerchantBackend.Orders.OrderHistory>, HttpError>(
- [`/private/orders`, token, url, args?.paid, args?.refunded, args?.wired, args?.date, totalBefore],
- orderFetcher,
- )
- const { data: afterData, error: afterError, isValidating: loadingAfter } = useSWR<HttpResponseOk<MerchantBackend.Orders.OrderHistory>, HttpError>(
- [`/private/orders`, token, url, args?.paid, args?.refunded, args?.wired, args?.date, -totalAfter],
- orderFetcher,
- )
-
- //this will save last result
- const [lastBefore, setLastBefore] = useState<HttpResponse<MerchantBackend.Orders.OrderHistory>>({ loading: true })
- const [lastAfter, setLastAfter] = useState<HttpResponse<MerchantBackend.Orders.OrderHistory>>({ loading: true })
- useEffect(() => {
- if (afterData) setLastAfter(afterData)
- if (beforeData) setLastBefore(beforeData)
- }, [afterData, beforeData])
-
- // this has problems when there are some ids missing
-
- if (beforeError) return beforeError
- if (afterError) return afterError
-
-
- const pagination = {
- isReachingEnd: afterData && afterData.data.orders.length < totalAfter,
- isReachingStart: (!args?.date) || (beforeData && beforeData.data.orders.length < totalBefore),
- loadMore: () => {
- if (!afterData) return
- if (afterData.data.orders.length < MAX_RESULT_SIZE) {
- setPageAfter(pageAfter + 1)
- } else {
- const from = afterData.data.orders[afterData.data.orders.length - 1].timestamp.t_s
- if (from && updateFilter) updateFilter(new Date(from))
- }
- },
- loadMorePrev: () => {
- if (!beforeData) return
- if (beforeData.data.orders.length < MAX_RESULT_SIZE) {
- setPageBefore(pageBefore + 1)
- } else if (beforeData) {
- const from = beforeData.data.orders[beforeData.data.orders.length - 1].timestamp.t_s
- if (from && updateFilter) updateFilter(new Date(from))
- }
- },
- }
-
- const orders = !beforeData || !afterData ? [] : (beforeData || lastBefore).data.orders.slice().reverse().concat((afterData || lastAfter).data.orders)
- if (loadingAfter || loadingBefore) return { loading: true, data: { orders } }
- if (beforeData && afterData) {
- return { ok: true, data: { orders }, ...pagination }
- }
- return { loading: true }
-
-}
-
diff --git a/packages/merchant-backend-ui/src/hooks/product.ts b/packages/merchant-backend-ui/src/hooks/product.ts
deleted file mode 100644
index 4fc8bccb7..000000000
--- a/packages/merchant-backend-ui/src/hooks/product.ts
+++ /dev/null
@@ -1,223 +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 { useEffect } from "preact/hooks";
-import useSWR, { trigger, useSWRInfinite, cache, mutate } from "swr";
-import { useBackendContext } from "../context/backend";
-// import { useFetchContext } from '../context/fetch';
-import { useInstanceContext } from "../context/instance";
-import { MerchantBackend, WithId } from "../declaration";
-import {
- fetcher,
- HttpError,
- HttpResponse,
- HttpResponseOk,
- mutateAll,
- request,
-} from "./backend";
-
-export interface ProductAPI {
- createProduct: (
- data: MerchantBackend.Products.ProductAddDetail
- ) => Promise<void>;
- updateProduct: (
- id: string,
- data: MerchantBackend.Products.ProductPatchDetail
- ) => Promise<void>;
- deleteProduct: (id: string) => Promise<void>;
- lockProduct: (
- id: string,
- data: MerchantBackend.Products.LockRequest
- ) => Promise<void>;
-}
-
-export function useProductAPI(): ProductAPI {
- const { url: baseUrl, token: adminToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin
- ? {
- url: baseUrl,
- token: adminToken,
- }
- : {
- url: `${baseUrl}/instances/${id}`,
- token: instanceToken,
- };
-
- const createProduct = async (
- data: MerchantBackend.Products.ProductAddDetail
- ): Promise<void> => {
- await request(`${url}/private/products`, {
- method: "post",
- token,
- data,
- });
-
- await mutateAll(/@"\/private\/products"@/, null);
- };
-
- const updateProduct = async (
- productId: string,
- data: MerchantBackend.Products.ProductPatchDetail
- ): Promise<void> => {
- const r = await request(`${url}/private/products/${productId}`, {
- method: "patch",
- token,
- data,
- });
-
- await mutateAll(/@"\/private\/products\/.*"@/);
- return Promise.resolve();
- };
-
- const deleteProduct = async (productId: string): Promise<void> => {
- await request(`${url}/private/products/${productId}`, {
- method: "delete",
- token,
- });
-
- await mutateAll(/@"\/private\/products"@/);
- };
-
- const lockProduct = async (
- productId: string,
- data: MerchantBackend.Products.LockRequest
- ): Promise<void> => {
- await request(`${url}/private/products/${productId}/lock`, {
- method: "post",
- token,
- data,
- });
-
- await mutateAll(/@"\/private\/products"@/);
- };
-
- return { createProduct, updateProduct, deleteProduct, lockProduct };
-}
-
-export function useInstanceProducts(): HttpResponse<
- (MerchantBackend.Products.ProductDetail & WithId)[]
-> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
- // const { useSWR, useSWRInfinite } = useFetchContext();
-
- const { url, token } = !admin
- ? {
- url: baseUrl,
- token: baseToken,
- }
- : {
- url: `${baseUrl}/instances/${id}`,
- token: instanceToken,
- };
-
- const {
- data: list,
- error: listError,
- isValidating: listLoading,
- } = useSWR<
- HttpResponseOk<MerchantBackend.Products.InventorySummaryResponse>,
- HttpError
- >([`/private/products`, token, url], fetcher, {
- refreshInterval: 0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- });
-
- const {
- data: products,
- error: productError,
- setSize,
- size,
- } = useSWRInfinite<
- HttpResponseOk<MerchantBackend.Products.ProductDetail>,
- HttpError
- >(
- (pageIndex: number) => {
- if (!list?.data || !list.data.products.length || listError || listLoading)
- return null;
- return [
- `/private/products/${list.data.products[pageIndex].product_id}`,
- token,
- url,
- ];
- },
- fetcher,
- {
- revalidateAll: true,
- }
- );
-
- useEffect(() => {
- if (list?.data && list.data.products.length > 0) {
- setSize(list.data.products.length);
- }
- }, [list?.data.products.length, listLoading]);
-
- if (listLoading) return { loading: true, data: [] };
- if (listError) return listError;
- if (productError) return productError;
- if (list?.data && list.data.products.length === 0) {
- return { ok: true, data: [] };
- }
- if (products) {
- const dataWithId = products.map((d) => {
- //take the id from the queried url
- return {
- ...d.data,
- id: d.info?.url.replace(/.*\/private\/products\//, "") || "",
- };
- });
- return { ok: true, data: dataWithId };
- }
- return { loading: true };
-}
-
-export function useProductDetails(
- productId: string
-): HttpResponse<MerchantBackend.Products.ProductDetail> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin
- ? {
- url: baseUrl,
- token: baseToken,
- }
- : {
- url: `${baseUrl}/instances/${id}`,
- token: instanceToken,
- };
-
- const { data, error, isValidating } = useSWR<
- HttpResponseOk<MerchantBackend.Products.ProductDetail>,
- HttpError
- >([`/private/products/${productId}`, token, url], fetcher, {
- refreshInterval: 0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- });
-
- if (isValidating) return { loading: true, data: data?.data };
- if (data) return data;
- if (error) return error;
- return { loading: true };
-}
diff --git a/packages/merchant-backend-ui/src/hooks/tips.ts b/packages/merchant-backend-ui/src/hooks/tips.ts
deleted file mode 100644
index 345e1faa5..000000000
--- a/packages/merchant-backend-ui/src/hooks/tips.ts
+++ /dev/null
@@ -1,159 +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 useSWR from 'swr';
-import { useBackendContext } from '../context/backend';
-import { useInstanceContext } from '../context/instance';
-import { MerchantBackend } from '../declaration';
-import { fetcher, HttpError, HttpResponse, HttpResponseOk, mutateAll, request } from './backend';
-
-
-export function useReservesAPI(): ReserveMutateAPI {
- const { url: baseUrl, token: adminToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: adminToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- };
-
- const createReserve = async (data: MerchantBackend.Tips.ReserveCreateRequest): Promise<HttpResponseOk<MerchantBackend.Tips.ReserveCreateConfirmation>> => {
- const res = await request<MerchantBackend.Tips.ReserveCreateConfirmation>(`${url}/private/reserves`, {
- method: 'post',
- token,
- data
- });
-
- await mutateAll(/@"\/private\/reserves"@/);
-
- return res
- };
-
- const authorizeTipReserve = async (pub: string, data: MerchantBackend.Tips.TipCreateRequest): Promise<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>> => {
- const res = await request<MerchantBackend.Tips.TipCreateConfirmation>(`${url}/private/reserves/${pub}/authorize-tip`, {
- method: 'post',
- token,
- data
- });
- await mutateAll(/@"\/private\/reserves"@/);
-
- return res
- };
-
- const authorizeTip = async (data: MerchantBackend.Tips.TipCreateRequest): Promise<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>> => {
- const res = await request<MerchantBackend.Tips.TipCreateConfirmation>(`${url}/private/tips`, {
- method: 'post',
- token,
- data
- });
-
- await mutateAll(/@"\/private\/reserves"@/);
-
- return res
- };
-
- const deleteReserve = async (pub: string): Promise<HttpResponse<void>> => {
- const res = await request<void>(`${url}/private/reserves/${pub}`, {
- method: 'delete',
- token,
- });
-
- await mutateAll(/@"\/private\/reserves"@/);
-
- return res
- };
-
-
- return { createReserve, authorizeTip, authorizeTipReserve, deleteReserve };
-}
-
-export interface ReserveMutateAPI {
- createReserve: (data: MerchantBackend.Tips.ReserveCreateRequest) => Promise<HttpResponseOk<MerchantBackend.Tips.ReserveCreateConfirmation>>;
- authorizeTipReserve: (id: string, data: MerchantBackend.Tips.TipCreateRequest) => Promise<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>>;
- authorizeTip: (data: MerchantBackend.Tips.TipCreateRequest) => Promise<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>>;
- deleteReserve: (id: string) => Promise<HttpResponse<void>>;
-}
-
-export function useInstanceTips(): HttpResponse<MerchantBackend.Tips.TippingReserveStatus> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: baseToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- }
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Tips.TippingReserveStatus>, HttpError>([`/private/reserves`, token, url], fetcher)
-
- if (isValidating) return { loading: true, data: data?.data }
- if (data) return data
- if (error) return error
- return { loading: true }
-}
-
-
-export function useReserveDetails(reserveId: string): HttpResponse<MerchantBackend.Tips.ReserveDetail> {
- const { url: baseUrl } = useBackendContext();
- const { token, id: instanceId, admin } = useInstanceContext();
-
- const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Tips.ReserveDetail>, HttpError>([`/private/reserves/${reserveId}`, token, url], reserveDetailFetcher, {
- refreshInterval:0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- })
-
- if (isValidating) return { loading: true, data: data?.data }
- if (data) return data
- if (error) return error
- return { loading: true }
-}
-
-export function useTipDetails(tipId: string): HttpResponse<MerchantBackend.Tips.TipDetails> {
- const { url: baseUrl } = useBackendContext();
- const { token, id: instanceId, admin } = useInstanceContext();
-
- const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`
-
- const { data, error, isValidating } = useSWR<HttpResponseOk<MerchantBackend.Tips.TipDetails>, HttpError>([`/private/tips/${tipId}`, token, url], tipsDetailFetcher, {
- refreshInterval:0,
- refreshWhenHidden: false,
- revalidateOnFocus: false,
- revalidateOnReconnect: false,
- refreshWhenOffline: false,
- })
-
- if (isValidating) return { loading: true, data: data?.data }
- if (data) return data
- if (error) return error
- return { loading: true }
-}
-
-export function reserveDetailFetcher<T>(url: string, token: string, backend: string): Promise<HttpResponseOk<T>> {
- return request<T>(`${backend}${url}`, { token, params: {
- tips: 'yes'
- } })
-}
-
-export function tipsDetailFetcher<T>(url: string, token: string, backend: string): Promise<HttpResponseOk<T>> {
- return request<T>(`${backend}${url}`, { token, params: {
- pickups: 'yes'
- } })
-}
diff --git a/packages/merchant-backend-ui/src/hooks/transfer.ts b/packages/merchant-backend-ui/src/hooks/transfer.ts
deleted file mode 100644
index 482f00dc5..000000000
--- a/packages/merchant-backend-ui/src/hooks/transfer.ts
+++ /dev/null
@@ -1,150 +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 { MerchantBackend } from '../declaration';
-import { useBackendContext } from '../context/backend';
-import { request, mutateAll, HttpResponse, HttpError, HttpResponseOk, HttpResponsePaginated } from './backend';
-import useSWR from 'swr';
-import { useInstanceContext } from '../context/instance';
-import { MAX_RESULT_SIZE, PAGE_SIZE } from '../utils/constants';
-import { useEffect, useState } from 'preact/hooks';
-
-async function transferFetcher<T>(url: string, token: string, backend: string, payto_uri?: string, verified?: string, position?: string, delta?: number): Promise<HttpResponseOk<T>> {
- const params: any = {}
- if (payto_uri !== undefined) params.payto_uri = payto_uri
- if (verified !== undefined) params.verified = verified
- if (delta !== undefined) {
- // if (delta > 0) {
- // params.after = searchDate?.getTime()
- // } else {
- // params.before = searchDate?.getTime()
- // }
- params.limit = delta
- }
- if (position !== undefined) params.offset = position
-
- return request<T>(`${backend}${url}`, { token, params })
-}
-
-export function useTransferAPI(): TransferAPI {
- const { url: baseUrl, token: adminToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: adminToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- };
-
- const informTransfer = async (data: MerchantBackend.Transfers.TransferInformation): Promise<HttpResponseOk<MerchantBackend.Transfers.MerchantTrackTransferResponse>> => {
- mutateAll(/@"\/private\/transfers"@/);
-
- return request<MerchantBackend.Transfers.MerchantTrackTransferResponse>(`${url}/private/transfers`, {
- method: 'post',
- token,
- data
- });
- };
-
- return { informTransfer };
-}
-
-export interface TransferAPI {
- informTransfer: (data: MerchantBackend.Transfers.TransferInformation) => Promise<HttpResponseOk<MerchantBackend.Transfers.MerchantTrackTransferResponse>>;
-}
-
-export interface InstanceTransferFilter {
- payto_uri?: string;
- verified?: 'yes' | 'no';
- position?: string;
-}
-
-
-export function useInstanceTransfers(args?: InstanceTransferFilter, updatePosition?: (id: string) => void): HttpResponsePaginated<MerchantBackend.Transfers.TransferList> {
- const { url: baseUrl, token: baseToken } = useBackendContext();
- const { token: instanceToken, id, admin } = useInstanceContext();
-
- const { url, token } = !admin ? {
- url: baseUrl, token: baseToken
- } : {
- url: `${baseUrl}/instances/${id}`, token: instanceToken
- }
-
- const [pageBefore, setPageBefore] = useState(1)
- const [pageAfter, setPageAfter] = useState(1)
-
- const totalAfter = pageAfter * PAGE_SIZE;
- const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 0;
-
- /**
- * FIXME: this can be cleaned up a little
- *
- * the logic of double query should be inside the orderFetch so from the hook perspective and cache
- * is just one query and one error status
- */
- const { data: beforeData, error: beforeError, isValidating: loadingBefore } = useSWR<HttpResponseOk<MerchantBackend.Transfers.TransferList>, HttpError>(
- [`/private/transfers`, token, url, args?.payto_uri, args?.verified, args?.position, totalBefore],
- transferFetcher,
- )
- const { data: afterData, error: afterError, isValidating: loadingAfter } = useSWR<HttpResponseOk<MerchantBackend.Transfers.TransferList>, HttpError>(
- [`/private/transfers`, token, url, args?.payto_uri, args?.verified, args?.position, -totalAfter],
- transferFetcher,
- )
-
- //this will save last result
- const [lastBefore, setLastBefore] = useState<HttpResponse<MerchantBackend.Transfers.TransferList>>({ loading: true })
- const [lastAfter, setLastAfter] = useState<HttpResponse<MerchantBackend.Transfers.TransferList>>({ loading: true })
- useEffect(() => {
- if (afterData) setLastAfter(afterData)
- if (beforeData) setLastBefore(beforeData)
- }, [afterData, beforeData])
-
- // this has problems when there are some ids missing
-
- if (beforeError) return beforeError
- if (afterError) return afterError
-
- const pagination = {
- isReachingEnd: afterData && afterData.data.transfers.length < totalAfter,
- isReachingStart: (!args?.position) || (beforeData && beforeData.data.transfers.length < totalBefore),
- loadMore: () => {
- if (!afterData) return
- if (afterData.data.transfers.length < MAX_RESULT_SIZE) {
- setPageAfter(pageAfter + 1)
- } else {
- const from = `${afterData.data.transfers[afterData.data.transfers.length - 1].transfer_serial_id}`
- if (from && updatePosition) updatePosition(from)
- }
- },
- loadMorePrev: () => {
- if (!beforeData) return
- if (beforeData.data.transfers.length < MAX_RESULT_SIZE) {
- setPageBefore(pageBefore + 1)
- } else if (beforeData) {
- const from = `${beforeData.data.transfers[beforeData.data.transfers.length - 1].transfer_serial_id}`
- if (from && updatePosition) updatePosition(from)
- }
- },
- }
-
- const transfers = !beforeData || !afterData ? [] : (beforeData || lastBefore).data.transfers.slice().reverse().concat((afterData || lastAfter).data.transfers)
- if (loadingAfter || loadingBefore) return { loading: true, data: { transfers } }
- if (beforeData && afterData) {
- return { ok: true, data: { transfers }, ...pagination }
- }
- return { loading: true }
-}
-
-
diff --git a/packages/merchant-backend-ui/src/i18n/de.po b/packages/merchant-backend-ui/src/i18n/de.po
deleted file mode 100644
index 6b35bd0ce..000000000
--- a/packages/merchant-backend-ui/src/i18n/de.po
+++ /dev/null
@@ -1,1057 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/i18n/en.po b/packages/merchant-backend-ui/src/i18n/en.po
deleted file mode 100644
index 6b35bd0ce..000000000
--- a/packages/merchant-backend-ui/src/i18n/en.po
+++ /dev/null
@@ -1,1057 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/i18n/es.po b/packages/merchant-backend-ui/src/i18n/es.po
deleted file mode 100644
index 9075d4656..000000000
--- a/packages/merchant-backend-ui/src/i18n/es.po
+++ /dev/null
@@ -1,1065 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr "Acceso denegado"
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr "Verifica que el token sea valido"
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr "No se pudo acceder al servidor"
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr "No se pudo inferir el id de la instancia con la url %1$s"
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr "HTTP status #%1$s: Servidor reporto un problema"
-
-#: src/InstanceRoutes.tsx:110
-#, fuzzy, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr "Recivimos el mensaje %1$s desde %2$s"
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr "Sin instancia default"
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr "para usar el merchant backoffice, debería crear la instancia default"
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr "Servidir reporto un problema: HTTP status #%1$s"
-
-#: src/InstanceRoutes.tsx:289
-#, fuzzy, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr "Recivimos el mensaje %1$s desde %2$s"
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr "Login necesario"
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-"Por favor ingrese su token de autorización. El token debe tener \"secret-"
-"token\" y comenzar con Bearer o ApiKey"
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr "Confirmar"
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr "El valor %1$s es invalido para una URL de pago"
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr "elegir una fecha"
-
-#: src/components/form/InputDate.tsx:81
-#, fuzzy, c-format
-msgid "clear"
-msgstr "Limpiar"
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr "nunca"
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr "La imagen debe ser mas chica que 1 MB"
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr "País"
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr "Dirección"
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr "Número de edificio"
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr "Nombre de edificio"
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr "Calle"
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr "Código postal"
-
-#: src/components/form/InputLocation.tsx:38
-#, fuzzy, c-format
-msgid "Town location"
-msgstr "Ubicación de ciudad"
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr "Ciudad"
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr "Distrito"
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr "Provincia"
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, fuzzy, c-format
-msgid "Product id"
-msgstr "Id de producto"
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr "Descripcion"
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr "Nombre"
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr "Cargando..."
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr "No se encontraron productos"
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr "Sin resultados"
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr "Borrando"
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr "Cambiando"
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr "Administrar token"
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr "Actualizar"
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr "Eliminar"
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr "Administrar stock"
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr "Inifinito"
-
-#: src/components/form/InputStock.tsx:105
-#, fuzzy, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr "no puede ser mayor al stock actual %1$s"
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr "stock actual cambiará desde %1$s a %2$s"
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr "stock actual seguirá en %1$s"
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr "Ingresando"
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr "Perdido"
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr "Actual"
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr "sin stock"
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr "Próximo reabastecimiento"
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr "Dirección de entrega"
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr "este producto no tiene impuestos"
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr "Monto"
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr "Moneda y valor separado por dos puntos"
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr "Agregar"
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr "Instancia"
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr "Configuración"
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, fuzzy, c-format
-msgid "Orders"
-msgstr "Ordenes"
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr "Productos"
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr "Transferencias"
-
-#: src/components/menu/SideBar.tsx:87
-#, fuzzy, c-format
-msgid "Connection"
-msgstr "Conexión"
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr "Instancias"
-
-#: src/components/menu/SideBar.tsx:116
-#, fuzzy, c-format
-msgid "New"
-msgstr "Nuevo"
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr "Lista"
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr "Salir"
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr "Limpiar"
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr "deberían ser iguales"
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr "no puede ser igual al anterior"
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-"Está actualizando el token de autorización para la instancia %1$s con id %2$s"
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr "Viejo token"
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr "Nuevo token"
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-"Limpiar el token de autorización significa acceso publico a la instancia"
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr "ID"
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr "Imagen"
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr "Unidad"
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr "Precio"
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr "Stock"
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr "Impuesto"
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr "Servidor no encontrado"
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr "No se pudo aceder al servidor"
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr "Recivimos el mensaje %1$s desde %2$s"
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr "Error inesperado"
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr "Token de autorización"
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr "Dirección de cuenta"
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr "Impuesto máximo de deposito por omisión"
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr "Impuesto máximo de transferencia por omisión"
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr "Amortización de impuesto de transferencia por omisión"
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr "Jurisdicción"
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr "Retrazo de pago por omisión"
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr "Retrazo de transferencia por omisión"
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr "no se pudo crear la instancia"
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, fuzzy, c-format
-msgid "Delete"
-msgstr "Borrando"
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr "No hay instancias todavían, agregue mas presionando el signo +"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr "Productos de inventario"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr "Precio total"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr "Impuesto total"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr "Precio de la orden"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, fuzzy, c-format
-msgid "Net"
-msgstr "Neto"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr "Resumen"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr "Opciones de pago"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr "Plazo de reembolso automático"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr "Plazo de reembolso"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr "Plazo de pago"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr "Fecha de entrega"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, fuzzy, c-format
-msgid "Location"
-msgstr "Ubicación"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr "Impuesto máximo"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr "Impuesto de transferencia máximo"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr "Amortización de impuesto de transferencia"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr "URL de completitud"
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr "Información extra"
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr "seleccione un producto primero"
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, fuzzy, c-format
-msgid "should be greater than 0"
-msgstr "La imagen debe ser mas chica que 1 MB"
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-"no puede ser mayor al stock actual y la cantidad previamente agregada. "
-"máximo: %1$s"
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr "no puede ser mayor al stock actual %1$s"
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr "Cantidad"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr "Orden"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr "reclamado"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr "copiar url"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr "pagar en"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr "creado"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr "Cronología"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr "Detalles de pago"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, fuzzy, c-format
-msgid "Order status"
-msgstr "Estado de orden"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, fuzzy, c-format
-msgid "Product list"
-msgstr "Lista de producto"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr "pagados"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr "transferido"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr "reembolzado"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr "reembolzar"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr "Monto reembolzado"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr "Total depositado"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr "impago"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr "URL de estado de orden"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr "URI de pago"
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-"Estado de orden desconocido. Esto es un error, por favor contacte a su "
-"administrador"
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr "reembolzo creado satisfactoriamente"
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, fuzzy, c-format
-msgid "could not create the refund"
-msgstr "No se pudo aceder al servidor"
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr "cargar nuevas ordenes"
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr "Fecha"
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr "Reembolzar"
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr "cargar viejas ordenes"
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr "No se enconraron ordenes"
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr "fecha"
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr "monto"
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr "razón"
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr "Máximo reembolzable:"
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr "Razón"
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr "duplicado"
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr "pedido por el consumidor"
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr "otro"
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr "ir a id de orden"
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr "Pagado"
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, fuzzy, c-format
-msgid "Refunded"
-msgstr "Reembolzado"
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, fuzzy, c-format
-msgid "Not wired"
-msgstr "No transferido"
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr "Todo"
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr "no se pudo crear el producto"
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr "Venta"
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr "Ganancia"
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr "Vendido"
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr "producto actualizado correctamente"
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr "no se pudo actualizar el producto"
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr "producto fue eliminado correctamente"
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr "no se pudo eliminar el producto"
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr "Propinas"
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr "No hay propinas todavía, agregar mas presionando el signo +"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr "no puede ser vacío"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr "verificar el id, no parece válido"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr "debería tener 52 caracteres, actualmente %1$s"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr "La URL no tiene el formato correcto"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, fuzzy, c-format
-msgid "Transfer ID"
-msgstr "Transferencias"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, fuzzy, c-format
-msgid "Account Address"
-msgstr "Dirección de cuenta"
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr "URL del Exchange"
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, fuzzy, c-format
-msgid "could not inform transfer"
-msgstr "no se pudo crear la instancia"
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, fuzzy, c-format
-msgid "load newer transfers"
-msgstr "cargar nuevas ordenes"
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr "Crédito"
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, fuzzy, c-format
-msgid "Confirmed"
-msgstr "Confirmar"
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr "Verificado"
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, fuzzy, c-format
-msgid "Executed at"
-msgstr "creado"
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr "si"
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr "no"
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr "desconocido"
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, fuzzy, c-format
-msgid "load older transfers"
-msgstr "cargar viejas transferencias"
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr "No hay transferencias todavía, agregar mas presionando el signo +"
diff --git a/packages/merchant-backend-ui/src/i18n/fr.po b/packages/merchant-backend-ui/src/i18n/fr.po
deleted file mode 100644
index 6b35bd0ce..000000000
--- a/packages/merchant-backend-ui/src/i18n/fr.po
+++ /dev/null
@@ -1,1057 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/i18n/index.tsx b/packages/merchant-backend-ui/src/i18n/index.tsx
deleted file mode 100644
index 63c8e1934..000000000
--- a/packages/merchant-backend-ui/src/i18n/index.tsx
+++ /dev/null
@@ -1,203 +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/>
- */
-
-/**
- * Translation helpers for React components and template literals.
- */
-
-/**
- * Imports
- */
-import { ComponentChild, ComponentChildren, h, Fragment, VNode } from "preact";
-
-import { useTranslationContext } from "../context/translation";
-
-export function useTranslator() {
- const ctx = useTranslationContext();
- const jed = ctx.handler
- return function str(stringSeq: TemplateStringsArray, ...values: any[]): string {
- const s = toI18nString(stringSeq);
- if (!s) return s
- const tr = jed
- .translate(s)
- .ifPlural(1, s)
- .fetch(...values);
- return tr;
- }
-}
-
-
-/**
- * Convert template strings to a msgid
- */
- function toI18nString(stringSeq: ReadonlyArray<string>): string {
- let s = "";
- for (let i = 0; i < stringSeq.length; i++) {
- s += stringSeq[i];
- if (i < stringSeq.length - 1) {
- s += `%${i + 1}$s`;
- }
- }
- return s;
-}
-
-
-interface TranslateSwitchProps {
- target: number;
- children: ComponentChildren;
-}
-
-function stringifyChildren(children: ComponentChildren): string {
- let n = 1;
- const ss = (children instanceof Array ? children : [children]).map((c) => {
- if (typeof c === "string") {
- return c;
- }
- return `%${n++}$s`;
- });
- const s = ss.join("").replace(/ +/g, " ").trim();
- return s;
-}
-
-interface TranslateProps {
- children: ComponentChildren;
- /**
- * Component that the translated element should be wrapped in.
- * Defaults to "div".
- */
- wrap?: any;
-
- /**
- * Props to give to the wrapped component.
- */
- wrapProps?: any;
-}
-
-function getTranslatedChildren(
- translation: string,
- children: ComponentChildren,
-): ComponentChild[] {
- const tr = translation.split(/%(\d+)\$s/);
- const childArray = children instanceof Array ? children : [children];
- // Merge consecutive string children.
- const placeholderChildren = Array<ComponentChild>();
- for (let i = 0; i < childArray.length; i++) {
- const x = childArray[i];
- if (x === undefined) {
- continue;
- } else if (typeof x === "string") {
- continue;
- } else {
- placeholderChildren.push(x);
- }
- }
- const result = Array<ComponentChild>();
- for (let i = 0; i < tr.length; i++) {
- if (i % 2 == 0) {
- // Text
- result.push(tr[i]);
- } else {
- const childIdx = Number.parseInt(tr[i],10) - 1;
- result.push(placeholderChildren[childIdx]);
- }
- }
- return result;
-}
-
-/**
- * Translate text node children of this component.
- * If a child component might produce a text node, it must be wrapped
- * in a another non-text element.
- *
- * Example:
- * ```
- * <Translate>
- * Hello. Your score is <span><PlayerScore player={player} /></span>
- * </Translate>
- * ```
- */
-export function Translate({ children }: TranslateProps): VNode {
- const s = stringifyChildren(children);
- const ctx = useTranslationContext()
- const translation: string = ctx.handler.ngettext(s, s, 1);
- const result = getTranslatedChildren(translation, children)
- return <Fragment>{result}</Fragment>;
-}
-
-/**
- * Switch translation based on singular or plural based on the target prop.
- * Should only contain TranslateSingular and TransplatePlural as children.
- *
- * Example:
- * ```
- * <TranslateSwitch target={n}>
- * <TranslateSingular>I have {n} apple.</TranslateSingular>
- * <TranslatePlural>I have {n} apples.</TranslatePlural>
- * </TranslateSwitch>
- * ```
- */
-export function TranslateSwitch({ children, target }: TranslateSwitchProps) {
- let singular: VNode<TranslationPluralProps> | undefined;
- let plural: VNode<TranslationPluralProps> | undefined;
- // const children = this.props.children;
- if (children) {
- (children instanceof Array ? children : [children]).forEach((child: any) => {
- if (child.type === TranslatePlural) {
- plural = child;
- }
- if (child.type === TranslateSingular) {
- singular = child;
- }
- });
- }
- if (!singular || !plural) {
- console.error("translation not found");
- return h("span", {}, ["translation not found"]);
- }
- singular.props.target = target;
- plural.props.target = target;
- // We're looking up the translation based on the
- // singular, even if we must use the plural form.
- return singular;
-}
-
-interface TranslationPluralProps {
- children: ComponentChildren;
- target: number;
-}
-
-/**
- * See [[TranslateSwitch]].
- */
-export function TranslatePlural({ children, target }: TranslationPluralProps): VNode {
- const s = stringifyChildren(children);
- const ctx = useTranslationContext()
- const translation = ctx.handler.ngettext(s, s, 1);
- const result = getTranslatedChildren(translation, children);
- return <Fragment>{result}</Fragment>;
-}
-
-/**
- * See [[TranslateSwitch]].
- */
-export function TranslateSingular({ children, target }: TranslationPluralProps): VNode {
- const s = stringifyChildren(children);
- const ctx = useTranslationContext()
- const translation = ctx.handler.ngettext(s, s, target);
- const result = getTranslatedChildren(translation, children);
- return <Fragment>{result}</Fragment>;
-
-}
diff --git a/packages/merchant-backend-ui/src/i18n/it.po b/packages/merchant-backend-ui/src/i18n/it.po
deleted file mode 100644
index 6b35bd0ce..000000000
--- a/packages/merchant-backend-ui/src/i18n/it.po
+++ /dev/null
@@ -1,1057 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/i18n/poheader b/packages/merchant-backend-ui/src/i18n/poheader
deleted file mode 100644
index ee3fcd7be..000000000
--- a/packages/merchant-backend-ui/src/i18n/poheader
+++ /dev/null
@@ -1,27 +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/>
-
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Taler Wallet\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"
diff --git a/packages/merchant-backend-ui/src/i18n/strings.ts b/packages/merchant-backend-ui/src/i18n/strings.ts
deleted file mode 100644
index 63e96949a..000000000
--- a/packages/merchant-backend-ui/src/i18n/strings.ts
+++ /dev/null
@@ -1,3445 +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/>
- */
-
-/*eslint quote-props: ["error", "consistent"]*/
-export const strings: {[s: string]: any} = {};
-
-strings['de'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- ""
- ],
- "Check your token is valid": [
- ""
- ],
- "Couldn't access the server.": [
- ""
- ],
- "Could not infer instance id from url %1$s": [
- ""
- ],
- "HTTP status #%1$s: Server reported a problem": [
- ""
- ],
- "Got message: \"%1$s\" from: %2$s": [
- ""
- ],
- "No default instance": [
- ""
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- ""
- ],
- "Server reported a problem: HTTP status #%1$s": [
- ""
- ],
- "Got message: %1$s from: %2$s": [
- ""
- ],
- "Login required": [
- ""
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- ""
- ],
- "Confirm": [
- ""
- ],
- "The value %1$s is invalid for a payment url": [
- ""
- ],
- "pick a date": [
- ""
- ],
- "clear": [
- ""
- ],
- "never": [
- ""
- ],
- "Image should be smaller than 1 MB": [
- ""
- ],
- "Country": [
- ""
- ],
- "Address": [
- ""
- ],
- "Building number": [
- ""
- ],
- "Building name": [
- ""
- ],
- "Street": [
- ""
- ],
- "Post code": [
- ""
- ],
- "Town location": [
- ""
- ],
- "Town": [
- ""
- ],
- "District": [
- ""
- ],
- "Country subdivision": [
- ""
- ],
- "Product id": [
- ""
- ],
- "Description": [
- ""
- ],
- "Name": [
- ""
- ],
- "loading...": [
- ""
- ],
- "no products found": [
- ""
- ],
- "no results": [
- ""
- ],
- "Deleting": [
- ""
- ],
- "Changing": [
- ""
- ],
- "Manage token": [
- ""
- ],
- "Update": [
- ""
- ],
- "Remove": [
- ""
- ],
- "Cancel": [
- ""
- ],
- "Manage stock": [
- ""
- ],
- "Infinite": [
- ""
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- ""
- ],
- "current stock will change from %1$s to %2$s": [
- ""
- ],
- "current stock will stay at %1$s": [
- ""
- ],
- "Incoming": [
- ""
- ],
- "Lost": [
- ""
- ],
- "Current": [
- ""
- ],
- "without stock": [
- ""
- ],
- "Next restock": [
- ""
- ],
- "Delivery address": [
- ""
- ],
- "this product has no taxes": [
- ""
- ],
- "Amount": [
- ""
- ],
- "currency and value separated with colon": [
- ""
- ],
- "Add": [
- ""
- ],
- "Instance": [
- ""
- ],
- "Settings": [
- ""
- ],
- "Orders": [
- ""
- ],
- "Products": [
- ""
- ],
- "Transfers": [
- ""
- ],
- "Connection": [
- ""
- ],
- "Instances": [
- ""
- ],
- "New": [
- ""
- ],
- "List": [
- ""
- ],
- "Log out": [
- ""
- ],
- "Clear": [
- ""
- ],
- "should be the same": [
- ""
- ],
- "cannot be the same as before": [
- ""
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- ""
- ],
- "Old token": [
- ""
- ],
- "New token": [
- ""
- ],
- "Clearing the auth token will mean public access to the instance": [
- ""
- ],
- "ID": [
- ""
- ],
- "Image": [
- ""
- ],
- "Unit": [
- ""
- ],
- "Price": [
- ""
- ],
- "Stock": [
- ""
- ],
- "Taxes": [
- ""
- ],
- "Server not found": [
- ""
- ],
- "Couldn't access the server": [
- ""
- ],
- "Got message %1$s from %2$s": [
- ""
- ],
- "Unexpected Error": [
- ""
- ],
- "Auth token": [
- ""
- ],
- "Account address": [
- ""
- ],
- "Default max deposit fee": [
- ""
- ],
- "Default max wire fee": [
- ""
- ],
- "Default wire fee amortization": [
- ""
- ],
- "Jurisdiction": [
- ""
- ],
- "Default pay delay": [
- ""
- ],
- "Default wire transfer delay": [
- ""
- ],
- "could not create instance": [
- ""
- ],
- "Delete": [
- ""
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- ""
- ],
- "Inventory products": [
- ""
- ],
- "Total price": [
- ""
- ],
- "Total tax": [
- ""
- ],
- "Order price": [
- ""
- ],
- "Net": [
- ""
- ],
- "Summary": [
- ""
- ],
- "Payments options": [
- ""
- ],
- "Auto refund deadline": [
- ""
- ],
- "Refund deadline": [
- ""
- ],
- "Pay deadline": [
- ""
- ],
- "Delivery date": [
- ""
- ],
- "Location": [
- ""
- ],
- "Max fee": [
- ""
- ],
- "Max wire fee": [
- ""
- ],
- "Wire fee amortization": [
- ""
- ],
- "Fullfilment url": [
- ""
- ],
- "Extra information": [
- ""
- ],
- "select a product first": [
- ""
- ],
- "should be greater than 0": [
- ""
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- ""
- ],
- "cannot be greater than current stock %1$s": [
- ""
- ],
- "Quantity": [
- ""
- ],
- "Order": [
- ""
- ],
- "claimed": [
- ""
- ],
- "copy url": [
- ""
- ],
- "pay at": [
- ""
- ],
- "created at": [
- ""
- ],
- "Timeline": [
- ""
- ],
- "Payment details": [
- ""
- ],
- "Order status": [
- ""
- ],
- "Product list": [
- ""
- ],
- "paid": [
- ""
- ],
- "wired": [
- ""
- ],
- "refunded": [
- ""
- ],
- "refund": [
- ""
- ],
- "Refunded amount": [
- ""
- ],
- "Deposit total": [
- ""
- ],
- "unpaid": [
- ""
- ],
- "Order status URL": [
- ""
- ],
- "Pay URI": [
- ""
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- ""
- ],
- "refund created successfully": [
- ""
- ],
- "could not create the refund": [
- ""
- ],
- "load newer orders": [
- ""
- ],
- "Date": [
- ""
- ],
- "Refund": [
- ""
- ],
- "load older orders": [
- ""
- ],
- "No orders has been found": [
- ""
- ],
- "date": [
- ""
- ],
- "amount": [
- ""
- ],
- "reason": [
- ""
- ],
- "Max refundable:": [
- ""
- ],
- "Reason": [
- ""
- ],
- "duplicated": [
- ""
- ],
- "requested by the customer": [
- ""
- ],
- "other": [
- ""
- ],
- "go to order id": [
- ""
- ],
- "Paid": [
- ""
- ],
- "Refunded": [
- ""
- ],
- "Not wired": [
- ""
- ],
- "All": [
- ""
- ],
- "could not create product": [
- ""
- ],
- "Sell": [
- ""
- ],
- "Profit": [
- ""
- ],
- "Sold": [
- ""
- ],
- "product updated successfully": [
- ""
- ],
- "could not update the product": [
- ""
- ],
- "product delete successfully": [
- ""
- ],
- "could not delete the product": [
- ""
- ],
- "Tips": [
- ""
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- ""
- ],
- "cannot be empty": [
- ""
- ],
- "check the id, doest look valid": [
- ""
- ],
- "should have 52 characters, current %1$s": [
- ""
- ],
- "URL doesn't have the right format": [
- ""
- ],
- "Transfer ID": [
- ""
- ],
- "Account Address": [
- ""
- ],
- "Exchange URL": [
- ""
- ],
- "could not inform transfer": [
- ""
- ],
- "load newer transfers": [
- ""
- ],
- "Credit": [
- ""
- ],
- "Confirmed": [
- ""
- ],
- "Verified": [
- ""
- ],
- "Executed at": [
- ""
- ],
- "yes": [
- ""
- ],
- "no": [
- ""
- ],
- "unknown": [
- ""
- ],
- "load older transfers": [
- ""
- ],
- "There is no transfer yet, add more pressing the + sign": [
- ""
- ]
- }
- }
-};
-
-strings['en'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- ""
- ],
- "Check your token is valid": [
- ""
- ],
- "Couldn't access the server.": [
- ""
- ],
- "Could not infer instance id from url %1$s": [
- ""
- ],
- "HTTP status #%1$s: Server reported a problem": [
- ""
- ],
- "Got message: \"%1$s\" from: %2$s": [
- ""
- ],
- "No default instance": [
- ""
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- ""
- ],
- "Server reported a problem: HTTP status #%1$s": [
- ""
- ],
- "Got message: %1$s from: %2$s": [
- ""
- ],
- "Login required": [
- ""
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- ""
- ],
- "Confirm": [
- ""
- ],
- "The value %1$s is invalid for a payment url": [
- ""
- ],
- "pick a date": [
- ""
- ],
- "clear": [
- ""
- ],
- "never": [
- ""
- ],
- "Image should be smaller than 1 MB": [
- ""
- ],
- "Country": [
- ""
- ],
- "Address": [
- ""
- ],
- "Building number": [
- ""
- ],
- "Building name": [
- ""
- ],
- "Street": [
- ""
- ],
- "Post code": [
- ""
- ],
- "Town location": [
- ""
- ],
- "Town": [
- ""
- ],
- "District": [
- ""
- ],
- "Country subdivision": [
- ""
- ],
- "Product id": [
- ""
- ],
- "Description": [
- ""
- ],
- "Name": [
- ""
- ],
- "loading...": [
- ""
- ],
- "no products found": [
- ""
- ],
- "no results": [
- ""
- ],
- "Deleting": [
- ""
- ],
- "Changing": [
- ""
- ],
- "Manage token": [
- ""
- ],
- "Update": [
- ""
- ],
- "Remove": [
- ""
- ],
- "Cancel": [
- ""
- ],
- "Manage stock": [
- ""
- ],
- "Infinite": [
- ""
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- ""
- ],
- "current stock will change from %1$s to %2$s": [
- ""
- ],
- "current stock will stay at %1$s": [
- ""
- ],
- "Incoming": [
- ""
- ],
- "Lost": [
- ""
- ],
- "Current": [
- ""
- ],
- "without stock": [
- ""
- ],
- "Next restock": [
- ""
- ],
- "Delivery address": [
- ""
- ],
- "this product has no taxes": [
- ""
- ],
- "Amount": [
- ""
- ],
- "currency and value separated with colon": [
- ""
- ],
- "Add": [
- ""
- ],
- "Instance": [
- ""
- ],
- "Settings": [
- ""
- ],
- "Orders": [
- ""
- ],
- "Products": [
- ""
- ],
- "Transfers": [
- ""
- ],
- "Connection": [
- ""
- ],
- "Instances": [
- ""
- ],
- "New": [
- ""
- ],
- "List": [
- ""
- ],
- "Log out": [
- ""
- ],
- "Clear": [
- ""
- ],
- "should be the same": [
- ""
- ],
- "cannot be the same as before": [
- ""
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- ""
- ],
- "Old token": [
- ""
- ],
- "New token": [
- ""
- ],
- "Clearing the auth token will mean public access to the instance": [
- ""
- ],
- "ID": [
- ""
- ],
- "Image": [
- ""
- ],
- "Unit": [
- ""
- ],
- "Price": [
- ""
- ],
- "Stock": [
- ""
- ],
- "Taxes": [
- ""
- ],
- "Server not found": [
- ""
- ],
- "Couldn't access the server": [
- ""
- ],
- "Got message %1$s from %2$s": [
- ""
- ],
- "Unexpected Error": [
- ""
- ],
- "Auth token": [
- ""
- ],
- "Account address": [
- ""
- ],
- "Default max deposit fee": [
- ""
- ],
- "Default max wire fee": [
- ""
- ],
- "Default wire fee amortization": [
- ""
- ],
- "Jurisdiction": [
- ""
- ],
- "Default pay delay": [
- ""
- ],
- "Default wire transfer delay": [
- ""
- ],
- "could not create instance": [
- ""
- ],
- "Delete": [
- ""
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- ""
- ],
- "Inventory products": [
- ""
- ],
- "Total price": [
- ""
- ],
- "Total tax": [
- ""
- ],
- "Order price": [
- ""
- ],
- "Net": [
- ""
- ],
- "Summary": [
- ""
- ],
- "Payments options": [
- ""
- ],
- "Auto refund deadline": [
- ""
- ],
- "Refund deadline": [
- ""
- ],
- "Pay deadline": [
- ""
- ],
- "Delivery date": [
- ""
- ],
- "Location": [
- ""
- ],
- "Max fee": [
- ""
- ],
- "Max wire fee": [
- ""
- ],
- "Wire fee amortization": [
- ""
- ],
- "Fullfilment url": [
- ""
- ],
- "Extra information": [
- ""
- ],
- "select a product first": [
- ""
- ],
- "should be greater than 0": [
- ""
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- ""
- ],
- "cannot be greater than current stock %1$s": [
- ""
- ],
- "Quantity": [
- ""
- ],
- "Order": [
- ""
- ],
- "claimed": [
- ""
- ],
- "copy url": [
- ""
- ],
- "pay at": [
- ""
- ],
- "created at": [
- ""
- ],
- "Timeline": [
- ""
- ],
- "Payment details": [
- ""
- ],
- "Order status": [
- ""
- ],
- "Product list": [
- ""
- ],
- "paid": [
- ""
- ],
- "wired": [
- ""
- ],
- "refunded": [
- ""
- ],
- "refund": [
- ""
- ],
- "Refunded amount": [
- ""
- ],
- "Deposit total": [
- ""
- ],
- "unpaid": [
- ""
- ],
- "Order status URL": [
- ""
- ],
- "Pay URI": [
- ""
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- ""
- ],
- "refund created successfully": [
- ""
- ],
- "could not create the refund": [
- ""
- ],
- "load newer orders": [
- ""
- ],
- "Date": [
- ""
- ],
- "Refund": [
- ""
- ],
- "load older orders": [
- ""
- ],
- "No orders has been found": [
- ""
- ],
- "date": [
- ""
- ],
- "amount": [
- ""
- ],
- "reason": [
- ""
- ],
- "Max refundable:": [
- ""
- ],
- "Reason": [
- ""
- ],
- "duplicated": [
- ""
- ],
- "requested by the customer": [
- ""
- ],
- "other": [
- ""
- ],
- "go to order id": [
- ""
- ],
- "Paid": [
- ""
- ],
- "Refunded": [
- ""
- ],
- "Not wired": [
- ""
- ],
- "All": [
- ""
- ],
- "could not create product": [
- ""
- ],
- "Sell": [
- ""
- ],
- "Profit": [
- ""
- ],
- "Sold": [
- ""
- ],
- "product updated successfully": [
- ""
- ],
- "could not update the product": [
- ""
- ],
- "product delete successfully": [
- ""
- ],
- "could not delete the product": [
- ""
- ],
- "Tips": [
- ""
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- ""
- ],
- "cannot be empty": [
- ""
- ],
- "check the id, doest look valid": [
- ""
- ],
- "should have 52 characters, current %1$s": [
- ""
- ],
- "URL doesn't have the right format": [
- ""
- ],
- "Transfer ID": [
- ""
- ],
- "Account Address": [
- ""
- ],
- "Exchange URL": [
- ""
- ],
- "could not inform transfer": [
- ""
- ],
- "load newer transfers": [
- ""
- ],
- "Credit": [
- ""
- ],
- "Confirmed": [
- ""
- ],
- "Verified": [
- ""
- ],
- "Executed at": [
- ""
- ],
- "yes": [
- ""
- ],
- "no": [
- ""
- ],
- "unknown": [
- ""
- ],
- "load older transfers": [
- ""
- ],
- "There is no transfer yet, add more pressing the + sign": [
- ""
- ]
- }
- }
-};
-
-strings['es'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- "Acceso denegado"
- ],
- "Check your token is valid": [
- "Verifica que el token sea valido"
- ],
- "Couldn't access the server.": [
- "No se pudo acceder al servidor"
- ],
- "Could not infer instance id from url %1$s": [
- "No se pudo inferir el id de la instancia con la url %1$s"
- ],
- "HTTP status #%1$s: Server reported a problem": [
- "HTTP status #%1$s: Servidor reporto un problema"
- ],
- "Got message: \"%1$s\" from: %2$s": [
- "Recivimos el mensaje %1$s desde %2$s"
- ],
- "No default instance": [
- "Sin instancia default"
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- "para usar el merchant backoffice, debería crear la instancia default"
- ],
- "Server reported a problem: HTTP status #%1$s": [
- "Servidir reporto un problema: HTTP status #%1$s"
- ],
- "Got message: %1$s from: %2$s": [
- "Recivimos el mensaje %1$s desde %2$s"
- ],
- "Login required": [
- "Login necesario"
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- "Por favor ingrese su token de autorización. El token debe tener \"secret-token\" y comenzar con Bearer o ApiKey"
- ],
- "Confirm": [
- "Confirmar"
- ],
- "The value %1$s is invalid for a payment url": [
- "El valor %1$s es invalido para una URL de pago"
- ],
- "pick a date": [
- "elegir una fecha"
- ],
- "clear": [
- "Limpiar"
- ],
- "never": [
- "nunca"
- ],
- "Image should be smaller than 1 MB": [
- "La imagen debe ser mas chica que 1 MB"
- ],
- "Country": [
- "País"
- ],
- "Address": [
- "Dirección"
- ],
- "Building number": [
- "Número de edificio"
- ],
- "Building name": [
- "Nombre de edificio"
- ],
- "Street": [
- "Calle"
- ],
- "Post code": [
- "Código postal"
- ],
- "Town location": [
- "Ubicación de ciudad"
- ],
- "Town": [
- "Ciudad"
- ],
- "District": [
- "Distrito"
- ],
- "Country subdivision": [
- "Provincia"
- ],
- "Product id": [
- "Id de producto"
- ],
- "Description": [
- "Descripcion"
- ],
- "Name": [
- "Nombre"
- ],
- "loading...": [
- "Cargando..."
- ],
- "no products found": [
- "No se encontraron productos"
- ],
- "no results": [
- "Sin resultados"
- ],
- "Deleting": [
- "Borrando"
- ],
- "Changing": [
- "Cambiando"
- ],
- "Manage token": [
- "Administrar token"
- ],
- "Update": [
- "Actualizar"
- ],
- "Remove": [
- "Eliminar"
- ],
- "Cancel": [
- "Cancelar"
- ],
- "Manage stock": [
- "Administrar stock"
- ],
- "Infinite": [
- "Inifinito"
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- "no puede ser mayor al stock actual %1$s"
- ],
- "current stock will change from %1$s to %2$s": [
- "stock actual cambiará desde %1$s a %2$s"
- ],
- "current stock will stay at %1$s": [
- "stock actual seguirá en %1$s"
- ],
- "Incoming": [
- "Ingresando"
- ],
- "Lost": [
- "Perdido"
- ],
- "Current": [
- "Actual"
- ],
- "without stock": [
- "sin stock"
- ],
- "Next restock": [
- "Próximo reabastecimiento"
- ],
- "Delivery address": [
- "Dirección de entrega"
- ],
- "this product has no taxes": [
- "este producto no tiene impuestos"
- ],
- "Amount": [
- "Monto"
- ],
- "currency and value separated with colon": [
- "Moneda y valor separado por dos puntos"
- ],
- "Add": [
- "Agregar"
- ],
- "Instance": [
- "Instancia"
- ],
- "Settings": [
- "Configuración"
- ],
- "Orders": [
- "Ordenes"
- ],
- "Products": [
- "Productos"
- ],
- "Transfers": [
- "Transferencias"
- ],
- "Connection": [
- "Conexión"
- ],
- "Instances": [
- "Instancias"
- ],
- "New": [
- "Nuevo"
- ],
- "List": [
- "Lista"
- ],
- "Log out": [
- "Salir"
- ],
- "Clear": [
- "Limpiar"
- ],
- "should be the same": [
- "deberían ser iguales"
- ],
- "cannot be the same as before": [
- "no puede ser igual al anterior"
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- "Está actualizando el token de autorización para la instancia %1$s con id %2$s"
- ],
- "Old token": [
- "Viejo token"
- ],
- "New token": [
- "Nuevo token"
- ],
- "Clearing the auth token will mean public access to the instance": [
- "Limpiar el token de autorización significa acceso publico a la instancia"
- ],
- "ID": [
- "ID"
- ],
- "Image": [
- "Imagen"
- ],
- "Unit": [
- "Unidad"
- ],
- "Price": [
- "Precio"
- ],
- "Stock": [
- "Stock"
- ],
- "Taxes": [
- "Impuesto"
- ],
- "Server not found": [
- "Servidor no encontrado"
- ],
- "Couldn't access the server": [
- "No se pudo aceder al servidor"
- ],
- "Got message %1$s from %2$s": [
- "Recivimos el mensaje %1$s desde %2$s"
- ],
- "Unexpected Error": [
- "Error inesperado"
- ],
- "Auth token": [
- "Token de autorización"
- ],
- "Account address": [
- "Dirección de cuenta"
- ],
- "Default max deposit fee": [
- "Impuesto máximo de deposito por omisión"
- ],
- "Default max wire fee": [
- "Impuesto máximo de transferencia por omisión"
- ],
- "Default wire fee amortization": [
- "Amortización de impuesto de transferencia por omisión"
- ],
- "Jurisdiction": [
- "Jurisdicción"
- ],
- "Default pay delay": [
- "Retrazo de pago por omisión"
- ],
- "Default wire transfer delay": [
- "Retrazo de transferencia por omisión"
- ],
- "could not create instance": [
- "no se pudo crear la instancia"
- ],
- "Delete": [
- "Borrando"
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- "No hay instancias todavían, agregue mas presionando el signo +"
- ],
- "Inventory products": [
- "Productos de inventario"
- ],
- "Total price": [
- "Precio total"
- ],
- "Total tax": [
- "Impuesto total"
- ],
- "Order price": [
- "Precio de la orden"
- ],
- "Net": [
- "Neto"
- ],
- "Summary": [
- "Resumen"
- ],
- "Payments options": [
- "Opciones de pago"
- ],
- "Auto refund deadline": [
- "Plazo de reembolso automático"
- ],
- "Refund deadline": [
- "Plazo de reembolso"
- ],
- "Pay deadline": [
- "Plazo de pago"
- ],
- "Delivery date": [
- "Fecha de entrega"
- ],
- "Location": [
- "Ubicación"
- ],
- "Max fee": [
- "Impuesto máximo"
- ],
- "Max wire fee": [
- "Impuesto de transferencia máximo"
- ],
- "Wire fee amortization": [
- "Amortización de impuesto de transferencia"
- ],
- "Fullfilment url": [
- "URL de completitud"
- ],
- "Extra information": [
- "Información extra"
- ],
- "select a product first": [
- "seleccione un producto primero"
- ],
- "should be greater than 0": [
- "La imagen debe ser mas chica que 1 MB"
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- "no puede ser mayor al stock actual y la cantidad previamente agregada. máximo: %1$s"
- ],
- "cannot be greater than current stock %1$s": [
- "no puede ser mayor al stock actual %1$s"
- ],
- "Quantity": [
- "Cantidad"
- ],
- "Order": [
- "Orden"
- ],
- "claimed": [
- "reclamado"
- ],
- "copy url": [
- "copiar url"
- ],
- "pay at": [
- "pagar en"
- ],
- "created at": [
- "creado"
- ],
- "Timeline": [
- "Cronología"
- ],
- "Payment details": [
- "Detalles de pago"
- ],
- "Order status": [
- "Estado de orden"
- ],
- "Product list": [
- "Lista de producto"
- ],
- "paid": [
- "pagados"
- ],
- "wired": [
- "transferido"
- ],
- "refunded": [
- "reembolzado"
- ],
- "refund": [
- "reembolzar"
- ],
- "Refunded amount": [
- "Monto reembolzado"
- ],
- "Deposit total": [
- "Total depositado"
- ],
- "unpaid": [
- "impago"
- ],
- "Order status URL": [
- "URL de estado de orden"
- ],
- "Pay URI": [
- "URI de pago"
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- "Estado de orden desconocido. Esto es un error, por favor contacte a su administrador"
- ],
- "refund created successfully": [
- "reembolzo creado satisfactoriamente"
- ],
- "could not create the refund": [
- "No se pudo aceder al servidor"
- ],
- "load newer orders": [
- "cargar nuevas ordenes"
- ],
- "Date": [
- "Fecha"
- ],
- "Refund": [
- "Reembolzar"
- ],
- "load older orders": [
- "cargar viejas ordenes"
- ],
- "No orders has been found": [
- "No se enconraron ordenes"
- ],
- "date": [
- "fecha"
- ],
- "amount": [
- "monto"
- ],
- "reason": [
- "razón"
- ],
- "Max refundable:": [
- "Máximo reembolzable:"
- ],
- "Reason": [
- "Razón"
- ],
- "duplicated": [
- "duplicado"
- ],
- "requested by the customer": [
- "pedido por el consumidor"
- ],
- "other": [
- "otro"
- ],
- "go to order id": [
- "ir a id de orden"
- ],
- "Paid": [
- "Pagado"
- ],
- "Refunded": [
- "Reembolzado"
- ],
- "Not wired": [
- "No transferido"
- ],
- "All": [
- "Todo"
- ],
- "could not create product": [
- "no se pudo crear el producto"
- ],
- "Sell": [
- "Venta"
- ],
- "Profit": [
- "Ganancia"
- ],
- "Sold": [
- "Vendido"
- ],
- "product updated successfully": [
- "producto actualizado correctamente"
- ],
- "could not update the product": [
- "no se pudo actualizar el producto"
- ],
- "product delete successfully": [
- "producto fue eliminado correctamente"
- ],
- "could not delete the product": [
- "no se pudo eliminar el producto"
- ],
- "Tips": [
- "Propinas"
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- "No hay propinas todavía, agregar mas presionando el signo +"
- ],
- "cannot be empty": [
- "no puede ser vacío"
- ],
- "check the id, doest look valid": [
- "verificar el id, no parece válido"
- ],
- "should have 52 characters, current %1$s": [
- "debería tener 52 caracteres, actualmente %1$s"
- ],
- "URL doesn't have the right format": [
- "La URL no tiene el formato correcto"
- ],
- "Transfer ID": [
- "Transferencias"
- ],
- "Account Address": [
- "Dirección de cuenta"
- ],
- "Exchange URL": [
- "URL del Exchange"
- ],
- "could not inform transfer": [
- "no se pudo crear la instancia"
- ],
- "load newer transfers": [
- "cargar nuevas ordenes"
- ],
- "Credit": [
- "Crédito"
- ],
- "Confirmed": [
- "Confirmar"
- ],
- "Verified": [
- "Verificado"
- ],
- "Executed at": [
- "creado"
- ],
- "yes": [
- "si"
- ],
- "no": [
- "no"
- ],
- "unknown": [
- "desconocido"
- ],
- "load older transfers": [
- "cargar viejas transferencias"
- ],
- "There is no transfer yet, add more pressing the + sign": [
- "No hay transferencias todavía, agregar mas presionando el signo +"
- ]
- }
- }
-};
-
-strings['fr'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- ""
- ],
- "Check your token is valid": [
- ""
- ],
- "Couldn't access the server.": [
- ""
- ],
- "Could not infer instance id from url %1$s": [
- ""
- ],
- "HTTP status #%1$s: Server reported a problem": [
- ""
- ],
- "Got message: \"%1$s\" from: %2$s": [
- ""
- ],
- "No default instance": [
- ""
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- ""
- ],
- "Server reported a problem: HTTP status #%1$s": [
- ""
- ],
- "Got message: %1$s from: %2$s": [
- ""
- ],
- "Login required": [
- ""
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- ""
- ],
- "Confirm": [
- ""
- ],
- "The value %1$s is invalid for a payment url": [
- ""
- ],
- "pick a date": [
- ""
- ],
- "clear": [
- ""
- ],
- "never": [
- ""
- ],
- "Image should be smaller than 1 MB": [
- ""
- ],
- "Country": [
- ""
- ],
- "Address": [
- ""
- ],
- "Building number": [
- ""
- ],
- "Building name": [
- ""
- ],
- "Street": [
- ""
- ],
- "Post code": [
- ""
- ],
- "Town location": [
- ""
- ],
- "Town": [
- ""
- ],
- "District": [
- ""
- ],
- "Country subdivision": [
- ""
- ],
- "Product id": [
- ""
- ],
- "Description": [
- ""
- ],
- "Name": [
- ""
- ],
- "loading...": [
- ""
- ],
- "no products found": [
- ""
- ],
- "no results": [
- ""
- ],
- "Deleting": [
- ""
- ],
- "Changing": [
- ""
- ],
- "Manage token": [
- ""
- ],
- "Update": [
- ""
- ],
- "Remove": [
- ""
- ],
- "Cancel": [
- ""
- ],
- "Manage stock": [
- ""
- ],
- "Infinite": [
- ""
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- ""
- ],
- "current stock will change from %1$s to %2$s": [
- ""
- ],
- "current stock will stay at %1$s": [
- ""
- ],
- "Incoming": [
- ""
- ],
- "Lost": [
- ""
- ],
- "Current": [
- ""
- ],
- "without stock": [
- ""
- ],
- "Next restock": [
- ""
- ],
- "Delivery address": [
- ""
- ],
- "this product has no taxes": [
- ""
- ],
- "Amount": [
- ""
- ],
- "currency and value separated with colon": [
- ""
- ],
- "Add": [
- ""
- ],
- "Instance": [
- ""
- ],
- "Settings": [
- ""
- ],
- "Orders": [
- ""
- ],
- "Products": [
- ""
- ],
- "Transfers": [
- ""
- ],
- "Connection": [
- ""
- ],
- "Instances": [
- ""
- ],
- "New": [
- ""
- ],
- "List": [
- ""
- ],
- "Log out": [
- ""
- ],
- "Clear": [
- ""
- ],
- "should be the same": [
- ""
- ],
- "cannot be the same as before": [
- ""
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- ""
- ],
- "Old token": [
- ""
- ],
- "New token": [
- ""
- ],
- "Clearing the auth token will mean public access to the instance": [
- ""
- ],
- "ID": [
- ""
- ],
- "Image": [
- ""
- ],
- "Unit": [
- ""
- ],
- "Price": [
- ""
- ],
- "Stock": [
- ""
- ],
- "Taxes": [
- ""
- ],
- "Server not found": [
- ""
- ],
- "Couldn't access the server": [
- ""
- ],
- "Got message %1$s from %2$s": [
- ""
- ],
- "Unexpected Error": [
- ""
- ],
- "Auth token": [
- ""
- ],
- "Account address": [
- ""
- ],
- "Default max deposit fee": [
- ""
- ],
- "Default max wire fee": [
- ""
- ],
- "Default wire fee amortization": [
- ""
- ],
- "Jurisdiction": [
- ""
- ],
- "Default pay delay": [
- ""
- ],
- "Default wire transfer delay": [
- ""
- ],
- "could not create instance": [
- ""
- ],
- "Delete": [
- ""
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- ""
- ],
- "Inventory products": [
- ""
- ],
- "Total price": [
- ""
- ],
- "Total tax": [
- ""
- ],
- "Order price": [
- ""
- ],
- "Net": [
- ""
- ],
- "Summary": [
- ""
- ],
- "Payments options": [
- ""
- ],
- "Auto refund deadline": [
- ""
- ],
- "Refund deadline": [
- ""
- ],
- "Pay deadline": [
- ""
- ],
- "Delivery date": [
- ""
- ],
- "Location": [
- ""
- ],
- "Max fee": [
- ""
- ],
- "Max wire fee": [
- ""
- ],
- "Wire fee amortization": [
- ""
- ],
- "Fullfilment url": [
- ""
- ],
- "Extra information": [
- ""
- ],
- "select a product first": [
- ""
- ],
- "should be greater than 0": [
- ""
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- ""
- ],
- "cannot be greater than current stock %1$s": [
- ""
- ],
- "Quantity": [
- ""
- ],
- "Order": [
- ""
- ],
- "claimed": [
- ""
- ],
- "copy url": [
- ""
- ],
- "pay at": [
- ""
- ],
- "created at": [
- ""
- ],
- "Timeline": [
- ""
- ],
- "Payment details": [
- ""
- ],
- "Order status": [
- ""
- ],
- "Product list": [
- ""
- ],
- "paid": [
- ""
- ],
- "wired": [
- ""
- ],
- "refunded": [
- ""
- ],
- "refund": [
- ""
- ],
- "Refunded amount": [
- ""
- ],
- "Deposit total": [
- ""
- ],
- "unpaid": [
- ""
- ],
- "Order status URL": [
- ""
- ],
- "Pay URI": [
- ""
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- ""
- ],
- "refund created successfully": [
- ""
- ],
- "could not create the refund": [
- ""
- ],
- "load newer orders": [
- ""
- ],
- "Date": [
- ""
- ],
- "Refund": [
- ""
- ],
- "load older orders": [
- ""
- ],
- "No orders has been found": [
- ""
- ],
- "date": [
- ""
- ],
- "amount": [
- ""
- ],
- "reason": [
- ""
- ],
- "Max refundable:": [
- ""
- ],
- "Reason": [
- ""
- ],
- "duplicated": [
- ""
- ],
- "requested by the customer": [
- ""
- ],
- "other": [
- ""
- ],
- "go to order id": [
- ""
- ],
- "Paid": [
- ""
- ],
- "Refunded": [
- ""
- ],
- "Not wired": [
- ""
- ],
- "All": [
- ""
- ],
- "could not create product": [
- ""
- ],
- "Sell": [
- ""
- ],
- "Profit": [
- ""
- ],
- "Sold": [
- ""
- ],
- "product updated successfully": [
- ""
- ],
- "could not update the product": [
- ""
- ],
- "product delete successfully": [
- ""
- ],
- "could not delete the product": [
- ""
- ],
- "Tips": [
- ""
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- ""
- ],
- "cannot be empty": [
- ""
- ],
- "check the id, doest look valid": [
- ""
- ],
- "should have 52 characters, current %1$s": [
- ""
- ],
- "URL doesn't have the right format": [
- ""
- ],
- "Transfer ID": [
- ""
- ],
- "Account Address": [
- ""
- ],
- "Exchange URL": [
- ""
- ],
- "could not inform transfer": [
- ""
- ],
- "load newer transfers": [
- ""
- ],
- "Credit": [
- ""
- ],
- "Confirmed": [
- ""
- ],
- "Verified": [
- ""
- ],
- "Executed at": [
- ""
- ],
- "yes": [
- ""
- ],
- "no": [
- ""
- ],
- "unknown": [
- ""
- ],
- "load older transfers": [
- ""
- ],
- "There is no transfer yet, add more pressing the + sign": [
- ""
- ]
- }
- }
-};
-
-strings['it'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- ""
- ],
- "Check your token is valid": [
- ""
- ],
- "Couldn't access the server.": [
- ""
- ],
- "Could not infer instance id from url %1$s": [
- ""
- ],
- "HTTP status #%1$s: Server reported a problem": [
- ""
- ],
- "Got message: \"%1$s\" from: %2$s": [
- ""
- ],
- "No default instance": [
- ""
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- ""
- ],
- "Server reported a problem: HTTP status #%1$s": [
- ""
- ],
- "Got message: %1$s from: %2$s": [
- ""
- ],
- "Login required": [
- ""
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- ""
- ],
- "Confirm": [
- ""
- ],
- "The value %1$s is invalid for a payment url": [
- ""
- ],
- "pick a date": [
- ""
- ],
- "clear": [
- ""
- ],
- "never": [
- ""
- ],
- "Image should be smaller than 1 MB": [
- ""
- ],
- "Country": [
- ""
- ],
- "Address": [
- ""
- ],
- "Building number": [
- ""
- ],
- "Building name": [
- ""
- ],
- "Street": [
- ""
- ],
- "Post code": [
- ""
- ],
- "Town location": [
- ""
- ],
- "Town": [
- ""
- ],
- "District": [
- ""
- ],
- "Country subdivision": [
- ""
- ],
- "Product id": [
- ""
- ],
- "Description": [
- ""
- ],
- "Name": [
- ""
- ],
- "loading...": [
- ""
- ],
- "no products found": [
- ""
- ],
- "no results": [
- ""
- ],
- "Deleting": [
- ""
- ],
- "Changing": [
- ""
- ],
- "Manage token": [
- ""
- ],
- "Update": [
- ""
- ],
- "Remove": [
- ""
- ],
- "Cancel": [
- ""
- ],
- "Manage stock": [
- ""
- ],
- "Infinite": [
- ""
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- ""
- ],
- "current stock will change from %1$s to %2$s": [
- ""
- ],
- "current stock will stay at %1$s": [
- ""
- ],
- "Incoming": [
- ""
- ],
- "Lost": [
- ""
- ],
- "Current": [
- ""
- ],
- "without stock": [
- ""
- ],
- "Next restock": [
- ""
- ],
- "Delivery address": [
- ""
- ],
- "this product has no taxes": [
- ""
- ],
- "Amount": [
- ""
- ],
- "currency and value separated with colon": [
- ""
- ],
- "Add": [
- ""
- ],
- "Instance": [
- ""
- ],
- "Settings": [
- ""
- ],
- "Orders": [
- ""
- ],
- "Products": [
- ""
- ],
- "Transfers": [
- ""
- ],
- "Connection": [
- ""
- ],
- "Instances": [
- ""
- ],
- "New": [
- ""
- ],
- "List": [
- ""
- ],
- "Log out": [
- ""
- ],
- "Clear": [
- ""
- ],
- "should be the same": [
- ""
- ],
- "cannot be the same as before": [
- ""
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- ""
- ],
- "Old token": [
- ""
- ],
- "New token": [
- ""
- ],
- "Clearing the auth token will mean public access to the instance": [
- ""
- ],
- "ID": [
- ""
- ],
- "Image": [
- ""
- ],
- "Unit": [
- ""
- ],
- "Price": [
- ""
- ],
- "Stock": [
- ""
- ],
- "Taxes": [
- ""
- ],
- "Server not found": [
- ""
- ],
- "Couldn't access the server": [
- ""
- ],
- "Got message %1$s from %2$s": [
- ""
- ],
- "Unexpected Error": [
- ""
- ],
- "Auth token": [
- ""
- ],
- "Account address": [
- ""
- ],
- "Default max deposit fee": [
- ""
- ],
- "Default max wire fee": [
- ""
- ],
- "Default wire fee amortization": [
- ""
- ],
- "Jurisdiction": [
- ""
- ],
- "Default pay delay": [
- ""
- ],
- "Default wire transfer delay": [
- ""
- ],
- "could not create instance": [
- ""
- ],
- "Delete": [
- ""
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- ""
- ],
- "Inventory products": [
- ""
- ],
- "Total price": [
- ""
- ],
- "Total tax": [
- ""
- ],
- "Order price": [
- ""
- ],
- "Net": [
- ""
- ],
- "Summary": [
- ""
- ],
- "Payments options": [
- ""
- ],
- "Auto refund deadline": [
- ""
- ],
- "Refund deadline": [
- ""
- ],
- "Pay deadline": [
- ""
- ],
- "Delivery date": [
- ""
- ],
- "Location": [
- ""
- ],
- "Max fee": [
- ""
- ],
- "Max wire fee": [
- ""
- ],
- "Wire fee amortization": [
- ""
- ],
- "Fullfilment url": [
- ""
- ],
- "Extra information": [
- ""
- ],
- "select a product first": [
- ""
- ],
- "should be greater than 0": [
- ""
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- ""
- ],
- "cannot be greater than current stock %1$s": [
- ""
- ],
- "Quantity": [
- ""
- ],
- "Order": [
- ""
- ],
- "claimed": [
- ""
- ],
- "copy url": [
- ""
- ],
- "pay at": [
- ""
- ],
- "created at": [
- ""
- ],
- "Timeline": [
- ""
- ],
- "Payment details": [
- ""
- ],
- "Order status": [
- ""
- ],
- "Product list": [
- ""
- ],
- "paid": [
- ""
- ],
- "wired": [
- ""
- ],
- "refunded": [
- ""
- ],
- "refund": [
- ""
- ],
- "Refunded amount": [
- ""
- ],
- "Deposit total": [
- ""
- ],
- "unpaid": [
- ""
- ],
- "Order status URL": [
- ""
- ],
- "Pay URI": [
- ""
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- ""
- ],
- "refund created successfully": [
- ""
- ],
- "could not create the refund": [
- ""
- ],
- "load newer orders": [
- ""
- ],
- "Date": [
- ""
- ],
- "Refund": [
- ""
- ],
- "load older orders": [
- ""
- ],
- "No orders has been found": [
- ""
- ],
- "date": [
- ""
- ],
- "amount": [
- ""
- ],
- "reason": [
- ""
- ],
- "Max refundable:": [
- ""
- ],
- "Reason": [
- ""
- ],
- "duplicated": [
- ""
- ],
- "requested by the customer": [
- ""
- ],
- "other": [
- ""
- ],
- "go to order id": [
- ""
- ],
- "Paid": [
- ""
- ],
- "Refunded": [
- ""
- ],
- "Not wired": [
- ""
- ],
- "All": [
- ""
- ],
- "could not create product": [
- ""
- ],
- "Sell": [
- ""
- ],
- "Profit": [
- ""
- ],
- "Sold": [
- ""
- ],
- "product updated successfully": [
- ""
- ],
- "could not update the product": [
- ""
- ],
- "product delete successfully": [
- ""
- ],
- "could not delete the product": [
- ""
- ],
- "Tips": [
- ""
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- ""
- ],
- "cannot be empty": [
- ""
- ],
- "check the id, doest look valid": [
- ""
- ],
- "should have 52 characters, current %1$s": [
- ""
- ],
- "URL doesn't have the right format": [
- ""
- ],
- "Transfer ID": [
- ""
- ],
- "Account Address": [
- ""
- ],
- "Exchange URL": [
- ""
- ],
- "could not inform transfer": [
- ""
- ],
- "load newer transfers": [
- ""
- ],
- "Credit": [
- ""
- ],
- "Confirmed": [
- ""
- ],
- "Verified": [
- ""
- ],
- "Executed at": [
- ""
- ],
- "yes": [
- ""
- ],
- "no": [
- ""
- ],
- "unknown": [
- ""
- ],
- "load older transfers": [
- ""
- ],
- "There is no transfer yet, add more pressing the + sign": [
- ""
- ]
- }
- }
-};
-
-strings['sv'] = {
- "domain": "messages",
- "locale_data": {
- "messages": {
- "": {
- "domain": "messages",
- "plural_forms": "nplurals=2; plural=(n != 1);",
- "lang": ""
- },
- "Access denied": [
- ""
- ],
- "Check your token is valid": [
- ""
- ],
- "Couldn't access the server.": [
- ""
- ],
- "Could not infer instance id from url %1$s": [
- ""
- ],
- "HTTP status #%1$s: Server reported a problem": [
- ""
- ],
- "Got message: \"%1$s\" from: %2$s": [
- ""
- ],
- "No default instance": [
- ""
- ],
- "in order to use merchant backoffice, you should create the default instance": [
- ""
- ],
- "Server reported a problem: HTTP status #%1$s": [
- ""
- ],
- "Got message: %1$s from: %2$s": [
- ""
- ],
- "Login required": [
- ""
- ],
- "Please enter your auth token. Token should have \"secret-token:\" and start with Bearer or ApiKey": [
- ""
- ],
- "Confirm": [
- ""
- ],
- "The value %1$s is invalid for a payment url": [
- ""
- ],
- "pick a date": [
- ""
- ],
- "clear": [
- ""
- ],
- "never": [
- ""
- ],
- "Image should be smaller than 1 MB": [
- ""
- ],
- "Country": [
- ""
- ],
- "Address": [
- ""
- ],
- "Building number": [
- ""
- ],
- "Building name": [
- ""
- ],
- "Street": [
- ""
- ],
- "Post code": [
- ""
- ],
- "Town location": [
- ""
- ],
- "Town": [
- ""
- ],
- "District": [
- ""
- ],
- "Country subdivision": [
- ""
- ],
- "Product id": [
- ""
- ],
- "Description": [
- ""
- ],
- "Name": [
- ""
- ],
- "loading...": [
- ""
- ],
- "no products found": [
- ""
- ],
- "no results": [
- ""
- ],
- "Deleting": [
- ""
- ],
- "Changing": [
- ""
- ],
- "Manage token": [
- ""
- ],
- "Update": [
- ""
- ],
- "Remove": [
- ""
- ],
- "Cancel": [
- ""
- ],
- "Manage stock": [
- ""
- ],
- "Infinite": [
- ""
- ],
- "lost cannot be greater that current + incoming (max %1$s)": [
- ""
- ],
- "current stock will change from %1$s to %2$s": [
- ""
- ],
- "current stock will stay at %1$s": [
- ""
- ],
- "Incoming": [
- ""
- ],
- "Lost": [
- ""
- ],
- "Current": [
- ""
- ],
- "without stock": [
- ""
- ],
- "Next restock": [
- ""
- ],
- "Delivery address": [
- ""
- ],
- "this product has no taxes": [
- ""
- ],
- "Amount": [
- ""
- ],
- "currency and value separated with colon": [
- ""
- ],
- "Add": [
- ""
- ],
- "Instance": [
- ""
- ],
- "Settings": [
- ""
- ],
- "Orders": [
- ""
- ],
- "Products": [
- ""
- ],
- "Transfers": [
- ""
- ],
- "Connection": [
- ""
- ],
- "Instances": [
- ""
- ],
- "New": [
- ""
- ],
- "List": [
- ""
- ],
- "Log out": [
- ""
- ],
- "Clear": [
- ""
- ],
- "should be the same": [
- ""
- ],
- "cannot be the same as before": [
- ""
- ],
- "You are updating the authorization token from instance %1$s with id %2$s": [
- ""
- ],
- "Old token": [
- ""
- ],
- "New token": [
- ""
- ],
- "Clearing the auth token will mean public access to the instance": [
- ""
- ],
- "ID": [
- ""
- ],
- "Image": [
- ""
- ],
- "Unit": [
- ""
- ],
- "Price": [
- ""
- ],
- "Stock": [
- ""
- ],
- "Taxes": [
- ""
- ],
- "Server not found": [
- ""
- ],
- "Couldn't access the server": [
- ""
- ],
- "Got message %1$s from %2$s": [
- ""
- ],
- "Unexpected Error": [
- ""
- ],
- "Auth token": [
- ""
- ],
- "Account address": [
- ""
- ],
- "Default max deposit fee": [
- ""
- ],
- "Default max wire fee": [
- ""
- ],
- "Default wire fee amortization": [
- ""
- ],
- "Jurisdiction": [
- ""
- ],
- "Default pay delay": [
- ""
- ],
- "Default wire transfer delay": [
- ""
- ],
- "could not create instance": [
- ""
- ],
- "Delete": [
- ""
- ],
- "Edit": [
- ""
- ],
- "There is no instances yet, add more pressing the + sign": [
- ""
- ],
- "Inventory products": [
- ""
- ],
- "Total price": [
- ""
- ],
- "Total tax": [
- ""
- ],
- "Order price": [
- ""
- ],
- "Net": [
- ""
- ],
- "Summary": [
- ""
- ],
- "Payments options": [
- ""
- ],
- "Auto refund deadline": [
- ""
- ],
- "Refund deadline": [
- ""
- ],
- "Pay deadline": [
- ""
- ],
- "Delivery date": [
- ""
- ],
- "Location": [
- ""
- ],
- "Max fee": [
- ""
- ],
- "Max wire fee": [
- ""
- ],
- "Wire fee amortization": [
- ""
- ],
- "Fullfilment url": [
- ""
- ],
- "Extra information": [
- ""
- ],
- "select a product first": [
- ""
- ],
- "should be greater than 0": [
- ""
- ],
- "cannot be greater than current stock and quantity previously added. max: %1$s": [
- ""
- ],
- "cannot be greater than current stock %1$s": [
- ""
- ],
- "Quantity": [
- ""
- ],
- "Order": [
- ""
- ],
- "claimed": [
- ""
- ],
- "copy url": [
- ""
- ],
- "pay at": [
- ""
- ],
- "created at": [
- ""
- ],
- "Timeline": [
- ""
- ],
- "Payment details": [
- ""
- ],
- "Order status": [
- ""
- ],
- "Product list": [
- ""
- ],
- "paid": [
- ""
- ],
- "wired": [
- ""
- ],
- "refunded": [
- ""
- ],
- "refund": [
- ""
- ],
- "Refunded amount": [
- ""
- ],
- "Deposit total": [
- ""
- ],
- "unpaid": [
- ""
- ],
- "Order status URL": [
- ""
- ],
- "Pay URI": [
- ""
- ],
- "Unknown order status. This is an error, please contact the administrator.": [
- ""
- ],
- "refund created successfully": [
- ""
- ],
- "could not create the refund": [
- ""
- ],
- "load newer orders": [
- ""
- ],
- "Date": [
- ""
- ],
- "Refund": [
- ""
- ],
- "load older orders": [
- ""
- ],
- "No orders has been found": [
- ""
- ],
- "date": [
- ""
- ],
- "amount": [
- ""
- ],
- "reason": [
- ""
- ],
- "Max refundable:": [
- ""
- ],
- "Reason": [
- ""
- ],
- "duplicated": [
- ""
- ],
- "requested by the customer": [
- ""
- ],
- "other": [
- ""
- ],
- "go to order id": [
- ""
- ],
- "Paid": [
- ""
- ],
- "Refunded": [
- ""
- ],
- "Not wired": [
- ""
- ],
- "All": [
- ""
- ],
- "could not create product": [
- ""
- ],
- "Sell": [
- ""
- ],
- "Profit": [
- ""
- ],
- "Sold": [
- ""
- ],
- "product updated successfully": [
- ""
- ],
- "could not update the product": [
- ""
- ],
- "product delete successfully": [
- ""
- ],
- "could not delete the product": [
- ""
- ],
- "Tips": [
- ""
- ],
- "Committed amount": [
- ""
- ],
- "Exchange initial amount": [
- ""
- ],
- "Merchant initial amount": [
- ""
- ],
- "There is no tips yet, add more pressing the + sign": [
- ""
- ],
- "cannot be empty": [
- ""
- ],
- "check the id, doest look valid": [
- ""
- ],
- "should have 52 characters, current %1$s": [
- ""
- ],
- "URL doesn't have the right format": [
- ""
- ],
- "Transfer ID": [
- ""
- ],
- "Account Address": [
- ""
- ],
- "Exchange URL": [
- ""
- ],
- "could not inform transfer": [
- ""
- ],
- "load newer transfers": [
- ""
- ],
- "Credit": [
- ""
- ],
- "Confirmed": [
- ""
- ],
- "Verified": [
- ""
- ],
- "Executed at": [
- ""
- ],
- "yes": [
- ""
- ],
- "no": [
- ""
- ],
- "unknown": [
- ""
- ],
- "load older transfers": [
- ""
- ],
- "There is no transfer yet, add more pressing the + sign": [
- ""
- ]
- }
- }
-};
-
diff --git a/packages/merchant-backend-ui/src/i18n/sv.po b/packages/merchant-backend-ui/src/i18n/sv.po
deleted file mode 100644
index 6b35bd0ce..000000000
--- a/packages/merchant-backend-ui/src/i18n/sv.po
+++ /dev/null
@@ -1,1057 +0,0 @@
-# This file is part of TALER
-# (C) 2016 GNUnet e.V.
-#
-# 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.
-#
-# 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
-# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/i18n/taler-merchant-backoffice.pot b/packages/merchant-backend-ui/src/i18n/taler-merchant-backoffice.pot
deleted file mode 100644
index 21fd863b0..000000000
--- a/packages/merchant-backend-ui/src/i18n/taler-merchant-backoffice.pot
+++ /dev/null
@@ -1,1054 +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/>
-#
-#, fuzzy
-msgid ""
-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/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:299
-#, c-format
-msgid "Access denied"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
-#: src/InstanceRoutes.tsx:300
-#, c-format
-msgid "Check your token is valid"
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:72
-#, c-format
-msgid "Couldn't access the server."
-msgstr ""
-
-#: src/ApplicationReadyRoutes.tsx:73
-#, c-format
-msgid "Could not infer instance id from url %1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:109
-#, c-format
-msgid "HTTP status #%1$s: Server reported a problem"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:110
-#, c-format
-msgid "Got message: \"%1$s\" from: %2$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:127
-#, c-format
-msgid "No default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:128
-#, c-format
-msgid ""
-"in order to use merchant backoffice, you should create the default instance"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:288
-#, c-format
-msgid "Server reported a problem: HTTP status #%1$s"
-msgstr ""
-
-#: src/InstanceRoutes.tsx:289
-#, c-format
-msgid "Got message: %1$s from: %2$s"
-msgstr ""
-
-#: src/components/exception/login.tsx:46
-#, c-format
-msgid "Login required"
-msgstr ""
-
-#: src/components/exception/login.tsx:49
-#, c-format
-msgid ""
-"Please enter your auth token. Token should have \"secret-token:\" and start "
-"with Bearer or ApiKey"
-msgstr ""
-
-#: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/orders/create/CreatePage.tsx:325
-#: src/paths/instance/products/create/CreatePage.tsx:51
-#: src/paths/instance/products/list/Table.tsx:174
-#: src/paths/instance/products/list/Table.tsx:228
-#: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:134
-#, c-format
-msgid "Confirm"
-msgstr ""
-
-#: src/components/form/InputArray.tsx:72
-#, c-format
-msgid "The value %1$s is invalid for a payment url"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:67
-#: src/paths/instance/orders/list/index.tsx:123
-#, c-format
-msgid "pick a date"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:81
-#, c-format
-msgid "clear"
-msgstr ""
-
-#: src/components/form/InputDate.tsx:83
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "never"
-msgstr ""
-
-#: src/components/form/InputImage.tsx:80
-#, c-format
-msgid "Image should be smaller than 1 MB"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:28
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:30
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/instance/transfers/list/Table.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:118
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:34
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:35
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:36
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:37
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:38
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:39
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:40
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputLocation.tsx:41
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:59
-#, c-format
-msgid "Product id"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:60
-#: src/components/product/ProductForm.tsx:99
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:122
-#: src/paths/instance/orders/list/Table.tsx:227
-#: src/paths/instance/products/list/Table.tsx:86
-#, c-format
-msgid "Description"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:73
-#: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
-#: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/update/UpdatePage.tsx:106
-#, c-format
-msgid "Name"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:102
-#, c-format
-msgid "loading..."
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:108
-#, c-format
-msgid "no products found"
-msgstr ""
-
-#: src/components/form/InputSearchProduct.tsx:116
-#, c-format
-msgid "no results"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:33
-#, c-format
-msgid "Deleting"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:34
-#, c-format
-msgid "Changing"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:60
-#, c-format
-msgid "Manage token"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:83
-#, c-format
-msgid "Update"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:252
-#: src/paths/instance/orders/create/CreatePage.tsx:273
-#, c-format
-msgid "Remove"
-msgstr ""
-
-#: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
-#: src/paths/instance/orders/create/CreatePage.tsx:324
-#: src/paths/instance/products/create/CreatePage.tsx:50
-#: src/paths/instance/products/list/Table.tsx:166
-#: src/paths/instance/products/list/Table.tsx:218
-#: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:133
-#, c-format
-msgid "Cancel"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:91
-#, c-format
-msgid "Manage stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:93
-#, c-format
-msgid "Infinite"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:105
-#, c-format
-msgid "lost cannot be greater that current + incoming (max %1$s)"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:111
-#, c-format
-msgid "current stock will change from %1$s to %2$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:112
-#, c-format
-msgid "current stock will stay at %1$s"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:129
-#: src/paths/instance/products/list/Table.tsx:204
-#, c-format
-msgid "Incoming"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:130
-#: src/paths/instance/products/list/Table.tsx:205
-#, c-format
-msgid "Lost"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:142
-#, c-format
-msgid "Current"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:145
-#, c-format
-msgid "without stock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:150
-#, c-format
-msgid "Next restock"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:152
-#, c-format
-msgid "Delivery address"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:73
-#, c-format
-msgid "this product has no taxes"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:77
-#: src/paths/instance/orders/details/DetailPage.tsx:145
-#: src/paths/instance/orders/details/DetailPage.tsx:296
-#: src/paths/instance/orders/list/Table.tsx:116
-#: src/paths/instance/transfers/create/CreatePage.tsx:84
-#, c-format
-msgid "Amount"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:78
-#, c-format
-msgid "currency and value separated with colon"
-msgstr ""
-
-#: src/components/form/InputTaxes.tsx:84
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:78
-#, c-format
-msgid "Add"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:53
-#, c-format
-msgid "Instance"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:59
-#, c-format
-msgid "Settings"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:65
-#: src/paths/instance/orders/list/Table.tsx:60
-#, c-format
-msgid "Orders"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:258
-#: src/paths/instance/products/list/Table.tsx:48
-#, c-format
-msgid "Products"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:65
-#, c-format
-msgid "Transfers"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:87
-#, c-format
-msgid "Connection"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:112 src/paths/admin/list/Table.tsx:57
-#, c-format
-msgid "Instances"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:116
-#, c-format
-msgid "New"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:122
-#, c-format
-msgid "List"
-msgstr ""
-
-#: src/components/menu/SideBar.tsx:129
-#, c-format
-msgid "Log out"
-msgstr ""
-
-#: src/components/modal/index.tsx:74
-#, c-format
-msgid "Clear"
-msgstr ""
-
-#: src/components/modal/index.tsx:110 src/components/modal/index.tsx:111
-#, c-format
-msgid "should be the same"
-msgstr ""
-
-#: src/components/modal/index.tsx:111
-#, c-format
-msgid "cannot be the same as before"
-msgstr ""
-
-#: src/components/modal/index.tsx:114
-#, c-format
-msgid ""
-"You are updating the authorization token from instance %1$s with id %2$s"
-msgstr ""
-
-#: src/components/modal/index.tsx:124
-#, c-format
-msgid "Old token"
-msgstr ""
-
-#: src/components/modal/index.tsx:125
-#, c-format
-msgid "New token"
-msgstr ""
-
-#: src/components/modal/index.tsx:127
-#, c-format
-msgid "Clearing the auth token will mean public access to the instance"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:122
-#, c-format
-msgid "ID"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:98
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:121
-#: src/paths/instance/products/list/Table.tsx:85
-#, c-format
-msgid "Image"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:100
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:123
-#, c-format
-msgid "Unit"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:101
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:124
-#: src/paths/instance/products/list/Table.tsx:162
-#: src/paths/instance/products/list/Table.tsx:214
-#, c-format
-msgid "Price"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:103
-#: src/paths/instance/products/list/Table.tsx:90
-#, c-format
-msgid "Stock"
-msgstr ""
-
-#: src/components/product/ProductForm.tsx:105
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:128
-#: src/paths/instance/products/list/Table.tsx:88
-#, c-format
-msgid "Taxes"
-msgstr ""
-
-#: src/index.tsx:75
-#, c-format
-msgid "Server not found"
-msgstr ""
-
-#: src/index.tsx:85
-#, c-format
-msgid "Couldn't access the server"
-msgstr ""
-
-#: src/index.tsx:87 src/index.tsx:99
-#, c-format
-msgid "Got message %1$s from %2$s"
-msgstr ""
-
-#: src/index.tsx:97
-#, c-format
-msgid "Unexpected Error"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:89
-#: src/paths/instance/update/UpdatePage.tsx:108
-#, c-format
-msgid "Auth token"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:91
-#: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:110
-#, c-format
-msgid "Account address"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:93
-#: src/paths/instance/update/UpdatePage.tsx:112
-#, c-format
-msgid "Default max deposit fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:95
-#: src/paths/instance/update/UpdatePage.tsx:114
-#, c-format
-msgid "Default max wire fee"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:97
-#: src/paths/instance/update/UpdatePage.tsx:116
-#, c-format
-msgid "Default wire fee amortization"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:103
-#: src/paths/instance/update/UpdatePage.tsx:122
-#, c-format
-msgid "Jurisdiction"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/instance/update/UpdatePage.tsx:126
-#, c-format
-msgid "Default pay delay"
-msgstr ""
-
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/instance/update/UpdatePage.tsx:128
-#, c-format
-msgid "Default wire transfer delay"
-msgstr ""
-
-#: src/paths/admin/create/index.tsx:58
-#, c-format
-msgid "could not create instance"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
-#: src/paths/instance/transfers/list/Table.tsx:71
-#, c-format
-msgid "Delete"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:128
-#, c-format
-msgid "Edit"
-msgstr ""
-
-#: src/paths/admin/list/Table.tsx:149
-#: src/paths/instance/products/list/Table.tsx:245
-#, c-format
-msgid "There is no instances yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:237
-#, c-format
-msgid "Inventory products"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:286
-#, c-format
-msgid "Total price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:287
-#, c-format
-msgid "Total tax"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:289
-#: src/paths/instance/orders/create/CreatePage.tsx:297
-#, c-format
-msgid "Order price"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:295
-#, c-format
-msgid "Net"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:300
-#: src/paths/instance/orders/details/DetailPage.tsx:144
-#: src/paths/instance/orders/details/DetailPage.tsx:295
-#: src/paths/instance/orders/list/Table.tsx:117
-#, c-format
-msgid "Summary"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:302
-#, c-format
-msgid "Payments options"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:303
-#, c-format
-msgid "Auto refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:304
-#, c-format
-msgid "Refund deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:305
-#, c-format
-msgid "Pay deadline"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:307
-#, c-format
-msgid "Delivery date"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#, c-format
-msgid "Location"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:312
-#, c-format
-msgid "Max fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:313
-#, c-format
-msgid "Max wire fee"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#, c-format
-msgid "Wire fee amortization"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#, c-format
-msgid "Fullfilment url"
-msgstr ""
-
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#, c-format
-msgid "Extra information"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:44
-#, c-format
-msgid "select a product first"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:51
-#, c-format
-msgid "should be greater than 0"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:58
-#, c-format
-msgid ""
-"cannot be greater than current stock and quantity previously added. max: %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:64
-#, c-format
-msgid "cannot be greater than current stock %1$s"
-msgstr ""
-
-#: src/paths/instance/orders/create/InventoryProductForm.tsx:76
-#: src/paths/instance/orders/create/NonInventoryProductForm.tsx:126
-#, c-format
-msgid "Quantity"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:92
-#: src/paths/instance/orders/details/DetailPage.tsx:235
-#: src/paths/instance/orders/details/DetailPage.tsx:333
-#, c-format
-msgid "Order"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:93
-#, c-format
-msgid "claimed"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:110
-#: src/paths/instance/orders/details/DetailPage.tsx:261
-#: src/paths/instance/orders/list/Table.tsx:136
-#, c-format
-msgid "copy url"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:126
-#: src/paths/instance/orders/details/DetailPage.tsx:349
-#, c-format
-msgid "pay at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:127
-#: src/paths/instance/orders/details/DetailPage.tsx:350
-#, c-format
-msgid "created at"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:138
-#: src/paths/instance/orders/details/DetailPage.tsx:289
-#, c-format
-msgid "Timeline"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:142
-#: src/paths/instance/orders/details/DetailPage.tsx:293
-#, c-format
-msgid "Payment details"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:146
-#: src/paths/instance/orders/details/DetailPage.tsx:299
-#: src/paths/instance/orders/details/DetailPage.tsx:363
-#, c-format
-msgid "Order status"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:156
-#: src/paths/instance/orders/details/DetailPage.tsx:308
-#, c-format
-msgid "Product list"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:236
-#, c-format
-msgid "paid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:238
-#, c-format
-msgid "wired"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:241
-#, c-format
-msgid "refunded"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:258
-#, c-format
-msgid "refund"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:297
-#, c-format
-msgid "Refunded amount"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:298
-#, c-format
-msgid "Deposit total"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:336
-#, c-format
-msgid "unpaid"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:364
-#, c-format
-msgid "Order status URL"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:365
-#, c-format
-msgid "Pay URI"
-msgstr ""
-
-#: src/paths/instance/orders/details/DetailPage.tsx:383
-#, c-format
-msgid ""
-"Unknown order status. This is an error, please contact the administrator."
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:56
-#: src/paths/instance/orders/list/index.tsx:147
-#, c-format
-msgid "refund created successfully"
-msgstr ""
-
-#: src/paths/instance/orders/details/index.tsx:59
-#: src/paths/instance/orders/list/index.tsx:150
-#, c-format
-msgid "could not create the refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:111
-#, c-format
-msgid "load newer orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:115
-#, c-format
-msgid "Date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:131
-#: src/paths/instance/orders/list/Table.tsx:223
-#, c-format
-msgid "Refund"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:145
-#, c-format
-msgid "load older orders"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:154
-#, c-format
-msgid "No orders has been found"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:202
-#, c-format
-msgid "date"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:203
-#, c-format
-msgid "amount"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:204
-#, c-format
-msgid "reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:224
-#, c-format
-msgid "Max refundable:"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "Reason"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "duplicated"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "requested by the customer"
-msgstr ""
-
-#: src/paths/instance/orders/list/Table.tsx:226
-#, c-format
-msgid "other"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:91
-#, c-format
-msgid "go to order id"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:107
-#, c-format
-msgid "Paid"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:108
-#, c-format
-msgid "Refunded"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:109
-#, c-format
-msgid "Not wired"
-msgstr ""
-
-#: src/paths/instance/orders/list/index.tsx:110
-#, c-format
-msgid "All"
-msgstr ""
-
-#: src/paths/instance/products/create/index.tsx:48
-#: src/paths/instance/products/update/index.tsx:64
-#, c-format
-msgid "could not create product"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:87
-#, c-format
-msgid "Sell"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:89
-#, c-format
-msgid "Profit"
-msgstr ""
-
-#: src/paths/instance/products/list/Table.tsx:91
-#, c-format
-msgid "Sold"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:59
-#, c-format
-msgid "product updated successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:62
-#, c-format
-msgid "could not update the product"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:70
-#, c-format
-msgid "product delete successfully"
-msgstr ""
-
-#: src/paths/instance/products/list/index.tsx:73
-#, c-format
-msgid "could not delete the product"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:59
-#, c-format
-msgid "Tips"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:111
-#, c-format
-msgid "Committed amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:112
-#, c-format
-msgid "Exchange initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:113
-#, c-format
-msgid "Merchant initial amount"
-msgstr ""
-
-#: src/paths/instance/tips/list/Table.tsx:148
-#, c-format
-msgid "There is no tips yet, add more pressing the + sign"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:50
-#: src/paths/instance/transfers/create/CreatePage.tsx:54
-#: src/paths/instance/transfers/create/CreatePage.tsx:55
-#: src/paths/instance/transfers/create/CreatePage.tsx:56
-#, c-format
-msgid "cannot be empty"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:51
-#, c-format
-msgid "check the id, doest look valid"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:52
-#, c-format
-msgid "should have 52 characters, current %1$s"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:57
-#, c-format
-msgid "URL doesn't have the right format"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:74
-#, c-format
-msgid "Transfer ID"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:76
-#, c-format
-msgid "Account Address"
-msgstr ""
-
-#: src/paths/instance/transfers/create/CreatePage.tsx:82
-#: src/paths/instance/transfers/list/Table.tsx:125
-#, c-format
-msgid "Exchange URL"
-msgstr ""
-
-#: src/paths/instance/transfers/create/index.tsx:49
-#, c-format
-msgid "could not inform transfer"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:118
-#, c-format
-msgid "load newer transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:123
-#, c-format
-msgid "Credit"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:126
-#, c-format
-msgid "Confirmed"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:127
-#: src/paths/instance/transfers/list/index.tsx:60
-#, c-format
-msgid "Verified"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:128
-#, c-format
-msgid "Executed at"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "yes"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:138
-#: src/paths/instance/transfers/list/Table.tsx:139
-#, c-format
-msgid "no"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:140
-#, c-format
-msgid "unknown"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:145
-#, c-format
-msgid "load older transfers"
-msgstr ""
-
-#: src/paths/instance/transfers/list/Table.tsx:154
-#, c-format
-msgid "There is no transfer yet, add more pressing the + sign"
-msgstr ""
diff --git a/packages/merchant-backend-ui/src/index.tsx b/packages/merchant-backend-ui/src/index.tsx
deleted file mode 100644
index 4cfe8f7b4..000000000
--- a/packages/merchant-backend-ui/src/index.tsx
+++ /dev/null
@@ -1,51 +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)
- */
-
-import { Fragment, h, VNode } from "preact";
-import { BackendContextProvider } from "./context/backend";
-import { TranslationProvider } from "./context/translation";
-// import { Page as RequestPayment } from './RequestPayment';
-import { Route, Router } from "preact-router";
-import { Footer } from "./components/Footer";
-import "./css/pure-min.css";
-
-export default function Application(): VNode {
- return (
- // <FetchContextProvider>
- <BackendContextProvider>
- <TranslationProvider>
- <ApplicationStatusRoutes />
- </TranslationProvider>
- </BackendContextProvider>
- // </FetchContextProvider>
- );
-}
-
-function ApplicationStatusRoutes(): VNode {
- return (
- <Fragment>
- <Router>
- <Route default component={() => <div>hello!</div>} />
- </Router>
- <Footer />
- </Fragment>
- );
-}
diff --git a/packages/merchant-backend-ui/src/utils/amount.ts b/packages/merchant-backend-ui/src/utils/amount.ts
deleted file mode 100644
index a54c52abe..000000000
--- a/packages/merchant-backend-ui/src/utils/amount.ts
+++ /dev/null
@@ -1,69 +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 { amountFractionalBase, AmountJson, Amounts } from "@gnu-taler/taler-util";
-import { MerchantBackend } from "../declaration";
-
-/**
- * sums two prices,
- * @param one
- * @param two
- * @returns
- */
-const sumPrices = (one: string, two: string) => {
- const [currency, valueOne] = one.split(':')
- const [, valueTwo] = two.split(':')
- return `${currency}:${parseInt(valueOne, 10) + parseInt(valueTwo, 10)}`
-}
-
-/**
- * merge refund with the same description and a difference less than one minute
- * @param prev list of refunds that will hold the merged refunds
- * @param cur new refund to add to the list
- * @returns list with the new refund, may be merged with the last
- */
-export function mergeRefunds(prev: MerchantBackend.Orders.RefundDetails[], cur: MerchantBackend.Orders.RefundDetails) {
- let tail;
-
- if (prev.length === 0 || //empty list
- cur.timestamp.t_s === 'never' || //current does not have timestamp
- (tail = prev[prev.length - 1]).timestamp.t_s === 'never' || // last does not have timestamp
- cur.reason !== tail.reason || //different reason
- Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60) {//more than 1 minute difference
-
- prev.push(cur)
- return prev
- }
-
- prev[prev.length - 1] = {
- ...tail,
- amount: sumPrices(tail.amount, cur.amount)
- }
-
- return prev
-}
-
-export const rate = (one: string, two: string) => {
- const a = Amounts.parseOrThrow(one)
- const b = Amounts.parseOrThrow(two)
- const af = toFloat(a)
- const bf = toFloat(b)
- if (bf === 0) return 0
- return af / bf
-}
-
-function toFloat(amount: AmountJson) {
- return amount.value + (amount.fraction / amountFractionalBase);
-}
diff --git a/packages/merchant-backend-ui/src/utils/constants.ts b/packages/merchant-backend-ui/src/utils/constants.ts
deleted file mode 100644
index 37c46e4c2..000000000
--- a/packages/merchant-backend-ui/src/utils/constants.ts
+++ /dev/null
@@ -1,47 +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)
-*/
-
-//https://tools.ietf.org/html/rfc8905
-export const PAYTO_REGEX = /^payto:\/\/[a-zA-Z][a-zA-Z0-9-.]+(\/[a-zA-Z0-9\-\.\~\(\)@_%:!$&'*+,;=]*)*\??((amount|receiver-name|sender-name|instruction|message)=[a-zA-Z0-9\-\.\~\(\)@_%:!$'*+,;=]*&?)*$/
-export const PAYTO_WIRE_METHOD_LOOKUP = /payto:\/\/([a-zA-Z][a-zA-Z0-9-.]+)\/.*/
-
-export const AMOUNT_REGEX = /^[a-zA-Z][a-zA-Z]*:[0-9][0-9,]*\.?[0-9,]*$/
-
-export const INSTANCE_ID_LOOKUP = /^\/instances\/([^/]*)\/?$/
-
-export const AMOUNT_ZERO_REGEX = /^[a-zA-Z][a-zA-Z]*:0$/
-
-export const CROCKFORD_BASE32_REGEX = /^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]+[*~$=U]*$/
-
-export const URL_REGEX = /^((https?:)(\/\/\/?)([\w]*(?::[\w]*)?@)?([\d\w\.-]+)(?::(\d+))?)\/$/
-
-// how much rows we add every time user hit load more
-export const PAGE_SIZE = 20
-// how bigger can be the result set
-// after this threshold, load more with move the cursor
-export const MAX_RESULT_SIZE = PAGE_SIZE * 2 - 1;
-
-// how much we will wait for all request, in seconds
-export const DEFAULT_REQUEST_TIMEOUT = 10;
-
-export const MAX_IMAGE_SIZE = 1024 * 1024;
-
-export const INSTANCE_ID_REGEX = /^[a-zA-Z0-9][a-zA-Z0-9_.@-]+$/
diff --git a/packages/merchant-backend-ui/src/utils/table.ts b/packages/merchant-backend-ui/src/utils/table.ts
deleted file mode 100644
index 198c46543..000000000
--- a/packages/merchant-backend-ui/src/utils/table.ts
+++ /dev/null
@@ -1,37 +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 { WithId } from "../declaration";
-
-/**
-*
-* @author Sebastian Javier Marchano (sebasjm)
-*/
-
-export interface Actions<T extends WithId> {
- element: T;
- type: 'DELETE' | 'UPDATE';
-}
-
-function notEmpty<TValue>(value: TValue | null | undefined): value is TValue {
- return value !== null && value !== undefined;
-}
-
-export function buildActions<T extends WithId>(instances: T[], selected: string[], action: 'DELETE'): Actions<T>[] {
- return selected.map(id => instances.find(i => i.id === id))
- .filter(notEmpty)
- .map(id => ({ element: id, type: action }))
-}
diff --git a/packages/merchant-backend-ui/src/utils/types.ts b/packages/merchant-backend-ui/src/utils/types.ts
deleted file mode 100644
index 9e49d39e1..000000000
--- a/packages/merchant-backend-ui/src/utils/types.ts
+++ /dev/null
@@ -1,31 +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 { VNode } from "preact"
-
-export interface KeyValue {
- [key: string]: string;
-}
-
-export interface Notification {
- message: string;
- description?: string | VNode;
- type: MessageType;
-}
-
-export type ValueOrFunction<T> = T | ((p: T) => T)
-export type MessageType = 'INFO' | 'WARN' | 'ERROR' | 'SUCCESS'
-
diff --git a/packages/merchant-backend-ui/trim-extension.cjs b/packages/merchant-backend-ui/trim-extension.cjs
new file mode 100644
index 000000000..00e8f9f01
--- /dev/null
+++ b/packages/merchant-backend-ui/trim-extension.cjs
@@ -0,0 +1,23 @@
+// Simple plugin to trim extensions from the filename of relative import statements.
+// Required to get linaria to work with `moduleResulution: "Node16"` imports.
+// @author Florian Dold
+module.exports = function({ types: t }) {
+ return {
+ name: "trim-extension",
+ visitor: {
+ ImportDeclaration: (x) => {
+ const src = x.node.source;
+ if (src.value.startsWith(".")) {
+ if (src.value.endsWith(".js")) {
+ const newVal = src.value.replace(/[.]js$/, "")
+ x.node.source = t.stringLiteral(newVal);
+ }
+ }
+ if (src.value.endsWith(".jsx")) {
+ const newVal = src.value.replace(/[.]jsx$/, "")
+ x.node.source = t.stringLiteral(newVal);
+ }
+ },
+ }
+ };
+}