aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-06-08 16:01:41 -0300
committerSebastian <sebasjm@gmail.com>2021-06-08 17:18:24 -0300
commit1d55c551bb9e9322a822895c7ff9c9378bc43a92 (patch)
tree21e1928b26541f272efc5854f744a158b45c4641 /packages/taler-wallet-webextension
parent2e1438eb048e48ec7aa71246878b1125c9e34694 (diff)
moving strings from wallet-core to web-extension
Diffstat (limited to 'packages/taler-wallet-webextension')
-rw-r--r--packages/taler-wallet-webextension/.storybook/preview.js7
-rw-r--r--packages/taler-wallet-webextension/src/i18n.tsx209
-rw-r--r--packages/taler-wallet-webextension/src/i18n/de.po363
-rw-r--r--packages/taler-wallet-webextension/src/i18n/en-US.po294
-rw-r--r--packages/taler-wallet-webextension/src/i18n/fr.po290
-rw-r--r--packages/taler-wallet-webextension/src/i18n/index.ts24
-rw-r--r--packages/taler-wallet-webextension/src/i18n/it.po290
-rw-r--r--packages/taler-wallet-webextension/src/i18n/poheader26
-rw-r--r--packages/taler-wallet-webextension/src/i18n/strings-prelude17
-rw-r--r--packages/taler-wallet-webextension/src/i18n/strings.ts373
-rw-r--r--packages/taler-wallet-webextension/src/i18n/sv.po388
-rw-r--r--packages/taler-wallet-webextension/src/i18n/taler-wallet-webex.pot290
-rw-r--r--packages/taler-wallet-webextension/src/pages/pay.tsx10
-rw-r--r--packages/taler-wallet-webextension/src/pages/popup.stories.tsx11
-rw-r--r--packages/taler-wallet-webextension/src/pages/popup.tsx16
-rw-r--r--packages/taler-wallet-webextension/src/pages/withdraw.tsx7
-rw-r--r--packages/taler-wallet-webextension/tests/i18n.test.tsx2
17 files changed, 2384 insertions, 233 deletions
diff --git a/packages/taler-wallet-webextension/.storybook/preview.js b/packages/taler-wallet-webextension/.storybook/preview.js
index c5740261a..e669398db 100644
--- a/packages/taler-wallet-webextension/.storybook/preview.js
+++ b/packages/taler-wallet-webextension/.storybook/preview.js
@@ -14,7 +14,8 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import * as core from "@gnu-taler/taler-wallet-core";
+import { setupI18n } from "@gnu-taler/taler-util"
+import { strings } from '../src/i18n'
const mockConfig = {
backendURL: 'http://demo.taler.net',
@@ -45,8 +46,8 @@ export const globalTypes = {
export const decorators = [
(Story, { globals }) => {
- core.setupI18n(globals.locale);
+ setupI18n(globals.locale, strings);
return <Story />
},
-// (Story) => <ConfigContextProvider value={mockConfig}> <Story /> </ConfigContextProvider>
+ // (Story) => <ConfigContextProvider value={mockConfig}> <Story /> </ConfigContextProvider>
];
diff --git a/packages/taler-wallet-webextension/src/i18n.tsx b/packages/taler-wallet-webextension/src/i18n.tsx
deleted file mode 100644
index 4d5f83416..000000000
--- a/packages/taler-wallet-webextension/src/i18n.tsx
+++ /dev/null
@@ -1,209 +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/>
- */
-
-/**
- * Translation helpers for React components and template literals.
- */
-
-/**
- * Imports
- */
-
-import * as i18nCore from "@gnu-taler/taler-wallet-core";
-import { Component, ComponentChildren, h, JSX, toChildArray, VNode } from "preact";
-/**
- * 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;
-}
-
-
-export const str = i18nCore.str;
-export const internalSetStrings = i18nCore.internalSetStrings;
-export const strings = i18nCore.strings;
-
-
-interface TranslateSwitchProps {
- target: number;
-}
-
-function stringifyChildren(children: any): string {
- let n = 1;
- const ss = toChildArray(children).map((c) => {
- if (typeof c === "string") {
- return c;
- }
- return `%${n++}$s`;
- });
- const s = ss.join("").replace(/ +/g, " ").trim();
- console.log("translation lookup", JSON.stringify(s));
- return s;
-}
-
-interface TranslateProps {
- /**
- * Component that the translated element should be wrapped in.
- * Defaults to "div".
- */
- wrap?: any;
-
- /**
- * Props to give to the wrapped component.
- */
- wrapProps?: any;
-
- /**
- * Translated elements
- */
- children: ComponentChildren;
-}
-
-function getTranslatedChildren(
- translation: string,
- children: ComponentChildren,
-): ComponentChildren {
- const tr = translation.split(/%(\d+)\$s/);
- const childArray = toChildArray(children);
- // Merge consecutive string children.
- const placeholderChildren = [];
- 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 = [];
- for (let i = 0; i < tr.length; i++) {
- if (i % 2 == 0) {
- // Text
- result.push(tr[i]);
- } else {
- const childIdx = Number.parseInt(tr[i]) - 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, wrap, wrapProps}: TranslateProps): VNode {
- const s = stringifyChildren(children);
- const translation: string = i18nCore.jed.ngettext(s, s, 1);
- const result = getTranslatedChildren(translation, children);
- if (!wrap) {
- return <div>{result}</div>;
- }
- return h(wrap, wrapProps, result);
-}
-
-/**
- * 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 class TranslateSwitch extends Component<
- TranslateSwitchProps,
- void
-> {
- render(): JSX.Element {
- let singular: VNode<TranslationPluralProps> | undefined;
- let plural: VNode<TranslationPluralProps> | undefined;
- const children = this.props.children;
- if (children) {
- toChildArray(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 = this.props.target;
- plural.props.target = this.props.target;
- // We're looking up the translation based on the
- // singular, even if we must use the plural form.
- return singular;
- }
-}
-
-interface TranslationPluralProps {
- target: number;
-}
-
-/**
- * See [[TranslateSwitch]].
- */
-export class TranslatePlural extends Component<
- TranslationPluralProps,
- void
-> {
- render(): JSX.Element {
- const s = stringifyChildren(this.props.children);
- const translation = i18nCore.jed.ngettext(s, s, 1);
- const result = getTranslatedChildren(translation, this.props.children);
- return <div>{result}</div>;
- }
-}
-
-/**
- * See [[TranslateSwitch]].
- */
-export class TranslateSingular extends Component<
- TranslationPluralProps,
- void
-> {
- render(): JSX.Element {
- const s = stringifyChildren(this.props.children);
- const translation = i18nCore.jed.ngettext(s, s, this.props.target);
- const result = getTranslatedChildren(translation, this.props.children);
- return <div>{result}</div>;
- }
-}
diff --git a/packages/taler-wallet-webextension/src/i18n/de.po b/packages/taler-wallet-webextension/src/i18n/de.po
new file mode 100644
index 000000000..bb355403d
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/de.po
@@ -0,0 +1,363 @@
+# 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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, c-format
+msgid "Unknown Wire Detail"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, fuzzy, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr "Der Händler %1$s möchte einen Vertrag über %2$s mit Ihnen abschließen."
+
+#: src/webex/pages/pay.tsx:136
+#, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:141
+#, c-format
+msgid "The total price is %1$s."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, fuzzy, c-format
+msgid "Confirm payment"
+msgstr "Bezahlung bestätigen"
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr "Saldo"
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr "Verlauf"
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr "Debug"
+
+#: src/webex/pages/popup.tsx:175
+#, fuzzy, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr "Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?"
+
+#: src/webex/pages/popup.tsx:238
+#, c-format
+msgid "%1$s incoming"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, fuzzy, c-format
+msgid "Withdrawn"
+msgstr "Abheben bei %1$s"
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse."
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:206
+#, fuzzy, c-format
+msgid "Confirm"
+msgstr "Bezahlung bestätigen"
+
+#: src/webex/pages/return-coins.tsx:209
+#, fuzzy, c-format
+msgid "Cancel"
+msgstr "Saldo"
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, c-format
+msgid "Chose different exchange provider"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, c-format
+msgid "Select %1$s"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, fuzzy, c-format
+msgid "Withdrawal fees:"
+msgstr "Abheben bei"
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:264
+#, fuzzy, c-format
+msgid "Withdraw Fee"
+msgstr "Abheben bei %1$s"
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr ""
+
+#, fuzzy, c-format
+#~ msgid "Bank requested reserve (%1$s) for %2$s."
+#~ msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s"
+
+#, fuzzy, c-format
+#~ msgid "Started to withdraw %1$s from %2$s (%3$s)."
+#~ msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s offered contract %2$s."
+#~ msgstr ""
+#~ "%1$s\n"
+#~ " möchte einen Vertrag über %2$s\n"
+#~ " mit Ihnen abschließen."
+
+#, fuzzy, c-format
+#~ msgid "Withdrew %1$s from %2$s ( %3$s)."
+#~ msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
+
+#, fuzzy, c-format
+#~ msgid "Paid %1$s to merchant %2$s.%3$s( %4$s)"
+#~ msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s gave a refund over %2$s."
+#~ msgstr ""
+#~ "%1$s\n"
+#~ " möchte einen Vertrag über %2$s\n"
+#~ " mit Ihnen abschließen."
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s gave a %2$s of %3$s."
+#~ msgstr ""
+#~ "%1$s\n"
+#~ " möchte einen Vertrag über %2$s\n"
+#~ " mit Ihnen abschließen."
+
+#, fuzzy, c-format
+#~ msgid "Submitting payment"
+#~ msgstr "Bezahlung bestätigen"
+
+#, fuzzy, c-format
+#~ msgid "Aborting payment ..."
+#~ msgstr "Bezahlung bestätigen"
+
+#, fuzzy, c-format
+#~ msgid "Retry Payment"
+#~ msgstr "Bezahlung bestätigen"
+
+#, fuzzy, c-format
+#~ msgid "Abort Payment"
+#~ msgstr "Bezahlung bestätigen"
+
+#, fuzzy
+#~ msgid "You are about to purchase:"
+#~ msgstr "Sie sind dabei, Folgendes zu kaufen:"
+
+#, fuzzy
+#~ msgid "Withdrawal fees: %1$s"
+#~ msgstr "Abheben bei %1$s"
+
+#~ msgid "Wallet depleted reserve (%1$s) at %2$s"
+#~ msgstr "Geldbörse hat die Reserve (%1$s) erschöpft"
+
+#~ msgid "Please enter a URL"
+#~ msgstr "Bitte eine URL eingeben"
+
+#~ msgid "The URL you've entered is not valid (must be absolute)"
+#~ msgstr "Die eingegebene URL ist nicht gültig (muss absolut sein)"
+
+#~ msgid "The bank wants to create a reserve over %1$s."
+#~ msgstr "Die Bank möchte eine Reserve über %1$s anlegen."
diff --git a/packages/taler-wallet-webextension/src/i18n/en-US.po b/packages/taler-wallet-webextension/src/i18n/en-US.po
new file mode 100644
index 000000000..4fe38d5e9
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/en-US.po
@@ -0,0 +1,294 @@
+# 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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, c-format
+msgid "Unknown Wire Detail"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:136
+#, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:141
+#, c-format
+msgid "The total price is %1$s."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, c-format
+msgid "Confirm payment"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:175
+#, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:238
+#, c-format
+msgid "%1$s incoming"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, c-format
+msgid "Withdrawn"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:206
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:209
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, c-format
+msgid "Chose different exchange provider"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, c-format
+msgid "Select %1$s"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, c-format
+msgid "Withdrawal fees:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:264
+#, c-format
+msgid "Withdraw Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr ""
+
+#, fuzzy
+#~ msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s"
+#~ msgstr "DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s"
diff --git a/packages/taler-wallet-webextension/src/i18n/fr.po b/packages/taler-wallet-webextension/src/i18n/fr.po
new file mode 100644
index 000000000..67b09de1a
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/fr.po
@@ -0,0 +1,290 @@
+# 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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, c-format
+msgid "Unknown Wire Detail"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:136
+#, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:141
+#, c-format
+msgid "The total price is %1$s."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, c-format
+msgid "Confirm payment"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:175
+#, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:238
+#, c-format
+msgid "%1$s incoming"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, c-format
+msgid "Withdrawn"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:206
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:209
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, c-format
+msgid "Chose different exchange provider"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, c-format
+msgid "Select %1$s"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, c-format
+msgid "Withdrawal fees:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:264
+#, c-format
+msgid "Withdraw Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr ""
diff --git a/packages/taler-wallet-webextension/src/i18n/index.ts b/packages/taler-wallet-webextension/src/i18n/index.ts
new file mode 100644
index 000000000..abfc8b925
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/index.ts
@@ -0,0 +1,24 @@
+/*
+ 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/>
+ */
+
+/**
+ * Translation helpers for React components and template literals.
+ */
+
+/**
+ * Imports.
+ */
+export { strings } from "./strings";
diff --git a/packages/taler-wallet-webextension/src/i18n/it.po b/packages/taler-wallet-webextension/src/i18n/it.po
new file mode 100644
index 000000000..67b09de1a
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/it.po
@@ -0,0 +1,290 @@
+# 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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, c-format
+msgid "Unknown Wire Detail"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:136
+#, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:141
+#, c-format
+msgid "The total price is %1$s."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, c-format
+msgid "Confirm payment"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:175
+#, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:238
+#, c-format
+msgid "%1$s incoming"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, c-format
+msgid "Withdrawn"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:206
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:209
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, c-format
+msgid "Chose different exchange provider"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, c-format
+msgid "Select %1$s"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, c-format
+msgid "Withdrawal fees:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:264
+#, c-format
+msgid "Withdraw Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr ""
diff --git a/packages/taler-wallet-webextension/src/i18n/poheader b/packages/taler-wallet-webextension/src/i18n/poheader
new file mode 100644
index 000000000..3ec704932
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/poheader
@@ -0,0 +1,26 @@
+# 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: 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/taler-wallet-webextension/src/i18n/strings-prelude b/packages/taler-wallet-webextension/src/i18n/strings-prelude
new file mode 100644
index 000000000..aa6602bd4
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/strings-prelude
@@ -0,0 +1,17 @@
+/*
+ This file is part of TALER
+ (C) 2016 Inria
+
+ 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/>
+ */
+
+export const strings: {[s: string]: any} = {};
diff --git a/packages/taler-wallet-webextension/src/i18n/strings.ts b/packages/taler-wallet-webextension/src/i18n/strings.ts
new file mode 100644
index 000000000..748b9656a
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/strings.ts
@@ -0,0 +1,373 @@
+/*
+ This file is part of TALER
+ (C) 2016 Inria
+
+ 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/>
+ */
+
+export const strings: { [s: string]: any } = {};
+strings["de"] = {
+ domain: "messages",
+ locale_data: {
+ messages: {
+ "": {
+ domain: "messages",
+ plural_forms: "nplurals=2; plural=(n != 1);",
+ lang: "",
+ },
+ "Invalid Wire": [""],
+ "Invalid Test Wire Detail": [""],
+ "Test Wire Acct #%1$s on %2$s": [""],
+ "Unknown Wire Detail": [""],
+ Operation: [""],
+ "time (ms/op)": [""],
+ "The merchant %1$s offers you to purchase:": [
+ "Der Händler %1$s möchte einen Vertrag über %2$s mit Ihnen abschließen.",
+ ],
+ "The total price is %1$s (plus %2$s fees).": [""],
+ "The total price is %1$s.": [""],
+ Retry: [""],
+ "Confirm payment": ["Bezahlung bestätigen"],
+ Balance: ["Saldo"],
+ History: ["Verlauf"],
+ Debug: ["Debug"],
+ "You have no balance to show. Need some %1$s getting started?": [
+ "Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?",
+ ],
+ "%1$s incoming": [""],
+ "%1$s being spent": [""],
+ "Error: could not retrieve balance information.": [""],
+ "Invalid ": [""],
+ "Fees ": [""],
+ "Refresh sessions has completed": [""],
+ "Order Refused": [""],
+ "Order redirected": [""],
+ "Payment aborted": [""],
+ "Payment Sent": [""],
+ "Order accepted": [""],
+ "Reserve balance updated": [""],
+ "Payment refund": [""],
+ Withdrawn: ["Abheben bei %1$s"],
+ "Tip Accepted": [""],
+ "Tip Declined": [""],
+ "%1$s": [""],
+ "Your wallet has no events recorded.": [
+ "Ihre Geldbörse verzeichnet keine Vorkommnisse.",
+ ],
+ "Wire to bank account": [""],
+ Confirm: ["Bezahlung bestätigen"],
+ Cancel: ["Saldo"],
+ "Could not get details for withdraw operation:": [""],
+ "Chose different exchange provider": [""],
+ "Please select an exchange. You can review the details before after your selection.": [
+ "",
+ ],
+ "Select %1$s": [""],
+ "Select custom exchange": [""],
+ "You are about to withdraw %1$s from your bank account into your wallet.": [
+ "",
+ ],
+ "Accept fees and withdraw": [""],
+ "Cancel withdraw operation": [""],
+ "Withdrawal fees:": ["Abheben bei"],
+ "Rounding loss:": [""],
+ "Earliest expiration (for deposit): %1$s": [""],
+ "# Coins": [""],
+ Value: [""],
+ "Withdraw Fee": ["Abheben bei %1$s"],
+ "Refresh Fee": [""],
+ "Deposit Fee": [""],
+ },
+ },
+};
+
+strings["en-US"] = {
+ domain: "messages",
+ locale_data: {
+ messages: {
+ "": {
+ domain: "messages",
+ plural_forms: "nplurals=2; plural=(n != 1);",
+ lang: "",
+ },
+ "Invalid Wire": [""],
+ "Invalid Test Wire Detail": [""],
+ "Test Wire Acct #%1$s on %2$s": [""],
+ "Unknown Wire Detail": [""],
+ Operation: [""],
+ "time (ms/op)": [""],
+ "The merchant %1$s offers you to purchase:": [""],
+ "The total price is %1$s (plus %2$s fees).": [""],
+ "The total price is %1$s.": [""],
+ Retry: [""],
+ "Confirm payment": [""],
+ Balance: [""],
+ History: [""],
+ Debug: [""],
+ "You have no balance to show. Need some %1$s getting started?": [""],
+ "%1$s incoming": [""],
+ "%1$s being spent": [""],
+ "Error: could not retrieve balance information.": [""],
+ "Invalid ": [""],
+ "Fees ": [""],
+ "Refresh sessions has completed": [""],
+ "Order Refused": [""],
+ "Order redirected": [""],
+ "Payment aborted": [""],
+ "Payment Sent": [""],
+ "Order accepted": [""],
+ "Reserve balance updated": [""],
+ "Payment refund": [""],
+ Withdrawn: [""],
+ "Tip Accepted": [""],
+ "Tip Declined": [""],
+ "%1$s": [""],
+ "Your wallet has no events recorded.": [""],
+ "Wire to bank account": [""],
+ Confirm: [""],
+ Cancel: [""],
+ "Could not get details for withdraw operation:": [""],
+ "Chose different exchange provider": [""],
+ "Please select an exchange. You can review the details before after your selection.": [
+ "",
+ ],
+ "Select %1$s": [""],
+ "Select custom exchange": [""],
+ "You are about to withdraw %1$s from your bank account into your wallet.": [
+ "",
+ ],
+ "Accept fees and withdraw": [""],
+ "Cancel withdraw operation": [""],
+ "Withdrawal fees:": [""],
+ "Rounding loss:": [""],
+ "Earliest expiration (for deposit): %1$s": [""],
+ "# Coins": [""],
+ Value: [""],
+ "Withdraw Fee": [""],
+ "Refresh Fee": [""],
+ "Deposit Fee": [""],
+ },
+ },
+};
+
+strings["fr"] = {
+ domain: "messages",
+ locale_data: {
+ messages: {
+ "": {
+ domain: "messages",
+ plural_forms: "nplurals=2; plural=(n != 1);",
+ lang: "",
+ },
+ "Invalid Wire": [""],
+ "Invalid Test Wire Detail": [""],
+ "Test Wire Acct #%1$s on %2$s": [""],
+ "Unknown Wire Detail": [""],
+ Operation: [""],
+ "time (ms/op)": [""],
+ "The merchant %1$s offers you to purchase:": [""],
+ "The total price is %1$s (plus %2$s fees).": [""],
+ "The total price is %1$s.": [""],
+ Retry: [""],
+ "Confirm payment": [""],
+ Balance: [""],
+ History: [""],
+ Debug: [""],
+ "You have no balance to show. Need some %1$s getting started?": [""],
+ "%1$s incoming": [""],
+ "%1$s being spent": [""],
+ "Error: could not retrieve balance information.": [""],
+ "Invalid ": [""],
+ "Fees ": [""],
+ "Refresh sessions has completed": [""],
+ "Order Refused": [""],
+ "Order redirected": [""],
+ "Payment aborted": [""],
+ "Payment Sent": [""],
+ "Order accepted": [""],
+ "Reserve balance updated": [""],
+ "Payment refund": [""],
+ Withdrawn: [""],
+ "Tip Accepted": [""],
+ "Tip Declined": [""],
+ "%1$s": [""],
+ "Your wallet has no events recorded.": [""],
+ "Wire to bank account": [""],
+ Confirm: [""],
+ Cancel: [""],
+ "Could not get details for withdraw operation:": [""],
+ "Chose different exchange provider": [""],
+ "Please select an exchange. You can review the details before after your selection.": [
+ "",
+ ],
+ "Select %1$s": [""],
+ "Select custom exchange": [""],
+ "You are about to withdraw %1$s from your bank account into your wallet.": [
+ "",
+ ],
+ "Accept fees and withdraw": [""],
+ "Cancel withdraw operation": [""],
+ "Withdrawal fees:": [""],
+ "Rounding loss:": [""],
+ "Earliest expiration (for deposit): %1$s": [""],
+ "# Coins": [""],
+ Value: [""],
+ "Withdraw Fee": [""],
+ "Refresh Fee": [""],
+ "Deposit Fee": [""],
+ },
+ },
+};
+
+strings["it"] = {
+ domain: "messages",
+ locale_data: {
+ messages: {
+ "": {
+ domain: "messages",
+ plural_forms: "nplurals=2; plural=(n != 1);",
+ lang: "",
+ },
+ "Invalid Wire": [""],
+ "Invalid Test Wire Detail": [""],
+ "Test Wire Acct #%1$s on %2$s": [""],
+ "Unknown Wire Detail": [""],
+ Operation: [""],
+ "time (ms/op)": [""],
+ "The merchant %1$s offers you to purchase:": [""],
+ "The total price is %1$s (plus %2$s fees).": [""],
+ "The total price is %1$s.": [""],
+ Retry: [""],
+ "Confirm payment": [""],
+ Balance: [""],
+ History: [""],
+ Debug: [""],
+ "You have no balance to show. Need some %1$s getting started?": [""],
+ "%1$s incoming": [""],
+ "%1$s being spent": [""],
+ "Error: could not retrieve balance information.": [""],
+ "Invalid ": [""],
+ "Fees ": [""],
+ "Refresh sessions has completed": [""],
+ "Order Refused": [""],
+ "Order redirected": [""],
+ "Payment aborted": [""],
+ "Payment Sent": [""],
+ "Order accepted": [""],
+ "Reserve balance updated": [""],
+ "Payment refund": [""],
+ Withdrawn: [""],
+ "Tip Accepted": [""],
+ "Tip Declined": [""],
+ "%1$s": [""],
+ "Your wallet has no events recorded.": [""],
+ "Wire to bank account": [""],
+ Confirm: [""],
+ Cancel: [""],
+ "Could not get details for withdraw operation:": [""],
+ "Chose different exchange provider": [""],
+ "Please select an exchange. You can review the details before after your selection.": [
+ "",
+ ],
+ "Select %1$s": [""],
+ "Select custom exchange": [""],
+ "You are about to withdraw %1$s from your bank account into your wallet.": [
+ "",
+ ],
+ "Accept fees and withdraw": [""],
+ "Cancel withdraw operation": [""],
+ "Withdrawal fees:": [""],
+ "Rounding loss:": [""],
+ "Earliest expiration (for deposit): %1$s": [""],
+ "# Coins": [""],
+ Value: [""],
+ "Withdraw Fee": [""],
+ "Refresh Fee": [""],
+ "Deposit Fee": [""],
+ },
+ },
+};
+
+strings["sv"] = {
+ domain: "messages",
+ locale_data: {
+ messages: {
+ "": {
+ domain: "messages",
+ plural_forms: "nplurals=2; plural=(n != 1);",
+ lang: "",
+ },
+ "Invalid Wire": [""],
+ "Invalid Test Wire Detail": [""],
+ "Test Wire Acct #%1$s on %2$s": [""],
+ "Unknown Wire Detail": ["visa mer"],
+ Operation: [""],
+ "time (ms/op)": [""],
+ "The merchant %1$s offers you to purchase:": [
+ "Säljaren %1$s erbjuder följande:",
+ ],
+ "The total price is %1$s (plus %2$s fees).": [
+ "Det totala priset är %1$s (plus %2$s avgifter).\n",
+ ],
+ "The total price is %1$s.": ["Det totala priset är %1$s."],
+ Retry: [""],
+ "Confirm payment": ["Godkän betalning"],
+ Balance: ["Balans"],
+ History: ["Historia"],
+ Debug: [""],
+ "You have no balance to show. Need some %1$s getting started?": [
+ "Du har ingen balans att visa. Behöver du\n %1$s att börja?\n",
+ ],
+ "%1$s incoming": ["%1$s inkommande"],
+ "%1$s being spent": [""],
+ "Error: could not retrieve balance information.": [""],
+ "Invalid ": [""],
+ "Fees ": [""],
+ "Refresh sessions has completed": [""],
+ "Order Refused": [""],
+ "Order redirected": [""],
+ "Payment aborted": [""],
+ "Payment Sent": [""],
+ "Order accepted": [""],
+ "Reserve balance updated": [""],
+ "Payment refund": [""],
+ Withdrawn: ["Utbetalnings avgift"],
+ "Tip Accepted": [""],
+ "Tip Declined": [""],
+ "%1$s": [""],
+ "Your wallet has no events recorded.": ["plånboken"],
+ "Wire to bank account": ["Övervisa till bank konto"],
+ Confirm: ["Bekräfta"],
+ Cancel: ["Avbryt"],
+ "Could not get details for withdraw operation:": [""],
+ "Chose different exchange provider": ["Ändra tjänsteleverantörer"],
+ "Please select an exchange. You can review the details before after your selection.": [
+ "",
+ ],
+ "Select %1$s": ["Välj %1$s"],
+ "Select custom exchange": [""],
+ "You are about to withdraw %1$s from your bank account into your wallet.": [
+ "Du är på väg att ta ut\n %1$s från ditt bankkonto till din plånbok.\n",
+ ],
+ "Accept fees and withdraw": ["Acceptera avgifter och utbetala"],
+ "Cancel withdraw operation": [""],
+ "Withdrawal fees:": ["Utbetalnings avgifter:"],
+ "Rounding loss:": [""],
+ "Earliest expiration (for deposit): %1$s": [""],
+ "# Coins": ["# Mynt"],
+ Value: ["Värde"],
+ "Withdraw Fee": ["Utbetalnings avgift"],
+ "Refresh Fee": ["Återhämtnings avgift"],
+ "Deposit Fee": ["Depostitions avgift"],
+ },
+ },
+};
diff --git a/packages/taler-wallet-webextension/src/i18n/sv.po b/packages/taler-wallet-webextension/src/i18n/sv.po
new file mode 100644
index 000000000..c6a739789
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/sv.po
@@ -0,0 +1,388 @@
+# 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: Flo Reitz <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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, fuzzy, c-format
+msgid "Unknown Wire Detail"
+msgstr "visa mer"
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, fuzzy, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr "Säljaren %1$s erbjuder följande:"
+
+#: src/webex/pages/pay.tsx:136
+#, fuzzy, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr "Det totala priset är %1$s (plus %2$s avgifter).\n"
+
+#: src/webex/pages/pay.tsx:141
+#, fuzzy, c-format
+msgid "The total price is %1$s."
+msgstr "Det totala priset är %1$s."
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, c-format
+msgid "Confirm payment"
+msgstr "Godkän betalning"
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr "Balans"
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr "Historia"
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:175
+#, fuzzy, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr ""
+"Du har ingen balans att visa. Behöver du\n"
+" %1$s att börja?\n"
+
+#: src/webex/pages/popup.tsx:238
+#, fuzzy, c-format
+msgid "%1$s incoming"
+msgstr "%1$s inkommande"
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, fuzzy, c-format
+msgid "Withdrawn"
+msgstr "Utbetalnings avgift"
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr "plånboken"
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr "Övervisa till bank konto"
+
+#: src/webex/pages/return-coins.tsx:206
+#, c-format
+msgid "Confirm"
+msgstr "Bekräfta"
+
+#: src/webex/pages/return-coins.tsx:209
+#, c-format
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, fuzzy, c-format
+msgid "Chose different exchange provider"
+msgstr "Ändra tjänsteleverantörer"
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, fuzzy, c-format
+msgid "Select %1$s"
+msgstr "Välj %1$s"
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, fuzzy, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+"Du är på väg att ta ut\n"
+" %1$s från ditt bankkonto till din plånbok.\n"
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr "Acceptera avgifter och utbetala"
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, c-format
+msgid "Withdrawal fees:"
+msgstr "Utbetalnings avgifter:"
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr "# Mynt"
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr "Värde"
+
+#: src/webex/renderHtml.tsx:264
+#, c-format
+msgid "Withdraw Fee"
+msgstr "Utbetalnings avgift"
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr "Återhämtnings avgift"
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr "Depostitions avgift"
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s offered contract %2$s."
+#~ msgstr "Säljaren %1$s erbjöd kontrakt %2$s.\n"
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s gave a refund over %2$s."
+#~ msgstr "Säljaren %1$sgav en återbetalning på %2$s.\n"
+
+#, fuzzy, c-format
+#~ msgid "Merchant %1$s gave a %2$s of %3$s."
+#~ msgstr "Säljaren %1$sgav en återbetalning på %2$s.\n"
+
+#, c-format
+#~ msgid "help"
+#~ msgstr "hjälp"
+
+#, c-format
+#~ msgid "Payback"
+#~ msgstr "Återbetalning"
+
+#, c-format
+#~ msgid "Return Electronic Cash to Bank Account"
+#~ msgstr "Återlämna elektroniska pengar till bank konto"
+
+#, fuzzy, c-format
+#~ msgid "show more details"
+#~ msgstr "visa mer"
+
+#, c-format
+#~ msgid "Accepted exchanges:"
+#~ msgstr "Accepterade tjänsteleverantörer:"
+
+#, c-format
+#~ msgid "Exchanges in the wallet:"
+#~ msgstr "Tjänsteleverantörer i plånboken:"
+
+#, c-format
+#~ msgid ""
+#~ "You have insufficient funds of the requested currency in your wallet."
+#~ msgstr "plånboken"
+
+#, c-format
+#~ msgid ""
+#~ "You do not have any funds from an exchange that is accepted by this "
+#~ "merchant. None of the exchanges accepted by the merchant is known to your "
+#~ "wallet."
+#~ msgstr "plånboken"
+
+#, c-format
+#~ msgid "Submitting payment"
+#~ msgstr "Bekräftar betalning"
+
+#, c-format
+#~ msgid ""
+#~ "You already paid for this, clicking \"Confirm payment\" will not cost "
+#~ "money again."
+#~ msgstr ""
+#~ "Du har redan betalat för det här, om du trycker \"Godkän betalning\" "
+#~ "debiteras du inte igen"
+
+#, fuzzy, c-format
+#~ msgid "Aborting payment ..."
+#~ msgstr "Bekräftar betalning"
+
+#, fuzzy, c-format
+#~ msgid "Abort Payment"
+#~ msgstr "Godkän betalning"
+
+#, c-format
+#~ msgid "Select"
+#~ msgstr "Välj"
+
+#, fuzzy, c-format
+#~ msgid "The exchange is trusted by the wallet."
+#~ msgstr "Tjänsteleverantörer i plånboken:"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ "Your wallet (protocol version %1$s) might be outdated.%2$s The exchange "
+#~ "has a higher, incompatible protocol version (%3$s)."
+#~ msgstr "tjänsteleverantörer plånboken"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ "The chosen exchange (protocol version %1$s might be outdated.%2$s The "
+#~ "exchange has a lower, incompatible protocol version than your wallet "
+#~ "(protocol version %3$s)."
+#~ msgstr "tjänsteleverantörer plånboken"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ "Oops, something went wrong. The wallet responded with error status (%1$s)."
+#~ msgstr "plånboken"
diff --git a/packages/taler-wallet-webextension/src/i18n/taler-wallet-webex.pot b/packages/taler-wallet-webextension/src/i18n/taler-wallet-webex.pot
new file mode 100644
index 000000000..67b09de1a
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/i18n/taler-wallet-webex.pot
@@ -0,0 +1,290 @@
+# 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/util/wire.ts:37
+#, c-format
+msgid "Invalid Wire"
+msgstr ""
+
+#: src/util/wire.ts:42 src/util/wire.ts:45
+#, c-format
+msgid "Invalid Test Wire Detail"
+msgstr ""
+
+#: src/util/wire.ts:47
+#, c-format
+msgid "Test Wire Acct #%1$s on %2$s"
+msgstr ""
+
+#: src/util/wire.ts:49
+#, c-format
+msgid "Unknown Wire Detail"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:52
+#, c-format
+msgid "Operation"
+msgstr ""
+
+#: src/webex/pages/benchmark.tsx:53
+#, c-format
+msgid "time (ms/op)"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:130
+#, c-format
+msgid "The merchant %1$s offers you to purchase:"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:136
+#, c-format
+msgid "The total price is %1$s (plus %2$s fees)."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:141
+#, c-format
+msgid "The total price is %1$s."
+msgstr ""
+
+#: src/webex/pages/pay.tsx:163
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: src/webex/pages/pay.tsx:173
+#, c-format
+msgid "Confirm payment"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:153
+#, c-format
+msgid "Balance"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:154
+#, c-format
+msgid "History"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:155
+#, c-format
+msgid "Debug"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:175
+#, c-format
+msgid "You have no balance to show. Need some %1$s getting started?"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:238
+#, c-format
+msgid "%1$s incoming"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:250
+#, c-format
+msgid "%1$s being spent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:281
+#, c-format
+msgid "Error: could not retrieve balance information."
+msgstr ""
+
+#: src/webex/pages/popup.tsx:390
+#, c-format
+msgid "Invalid "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:396
+#, c-format
+msgid "Fees "
+msgstr ""
+
+#: src/webex/pages/popup.tsx:434
+#, c-format
+msgid "Refresh sessions has completed"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:451
+#, c-format
+msgid "Order Refused"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:465
+#, c-format
+msgid "Order redirected"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:482
+#, c-format
+msgid "Payment aborted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:512
+#, c-format
+msgid "Payment Sent"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:536
+#, c-format
+msgid "Order accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:547
+#, c-format
+msgid "Reserve balance updated"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:559
+#, c-format
+msgid "Payment refund"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:584
+#, c-format
+msgid "Withdrawn"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:596
+#, c-format
+msgid "Tip Accepted"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:606
+#, c-format
+msgid "Tip Declined"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:615
+#, c-format
+msgid "%1$s"
+msgstr ""
+
+#: src/webex/pages/popup.tsx:707
+#, c-format
+msgid "Your wallet has no events recorded."
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:124
+#, c-format
+msgid "Wire to bank account"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:206
+#, c-format
+msgid "Confirm"
+msgstr ""
+
+#: src/webex/pages/return-coins.tsx:209
+#, c-format
+msgid "Cancel"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:73
+#, c-format
+msgid "Could not get details for withdraw operation:"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:89 src/webex/pages/withdraw.tsx:183
+#, c-format
+msgid "Chose different exchange provider"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:109
+#, c-format
+msgid ""
+"Please select an exchange. You can review the details before after your "
+"selection."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:121
+#, c-format
+msgid "Select %1$s"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:143
+#, c-format
+msgid "Select custom exchange"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:163
+#, c-format
+msgid "You are about to withdraw %1$s from your bank account into your wallet."
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:174
+#, c-format
+msgid "Accept fees and withdraw"
+msgstr ""
+
+#: src/webex/pages/withdraw.tsx:192
+#, c-format
+msgid "Cancel withdraw operation"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:249
+#, c-format
+msgid "Withdrawal fees:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:252
+#, c-format
+msgid "Rounding loss:"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:254
+#, c-format
+msgid "Earliest expiration (for deposit): %1$s"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:262
+#, c-format
+msgid "# Coins"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:263
+#, c-format
+msgid "Value"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:264
+#, c-format
+msgid "Withdraw Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:265
+#, c-format
+msgid "Refresh Fee"
+msgstr ""
+
+#: src/webex/renderHtml.tsx:266
+#, c-format
+msgid "Deposit Fee"
+msgstr ""
diff --git a/packages/taler-wallet-webextension/src/pages/pay.tsx b/packages/taler-wallet-webextension/src/pages/pay.tsx
index fd8b0f3ae..e958cd484 100644
--- a/packages/taler-wallet-webextension/src/pages/pay.tsx
+++ b/packages/taler-wallet-webextension/src/pages/pay.tsx
@@ -22,14 +22,14 @@
/**
* Imports.
*/
-import * as i18n from "../i18n";
+// import * as i18n from "../i18n";
import { renderAmount, ProgressButton } from "../renderHtml";
import * as wxApi from "../wxApi";
import { useState, useEffect } from "preact/hooks";
-import { getJsonI18n } from "@gnu-taler/taler-wallet-core";
+import { getJsonI18n, i18n } from "@gnu-taler/taler-util";
import {
PreparePayResult,
ConfirmPayResult,
@@ -171,19 +171,19 @@ export function TalerPayDialog({ talerPayUri }: Props): JSX.Element {
return (
<div>
<p>
- <i18n.Translate wrap="p">
+ <i18n.Translate>
The merchant <span>{merchantName}</span> offers you to purchase:
</i18n.Translate>
<div style={{ textAlign: "center" }}>
<strong>{contractTerms.summary}</strong>
</div>
{totalFees ? (
- <i18n.Translate wrap="p">
+ <i18n.Translate>
The total price is <span>{amount} </span>
(plus <span>{renderAmount(totalFees)}</span> fees).
</i18n.Translate>
) : (
- <i18n.Translate wrap="p">
+ <i18n.Translate>
The total price is <span>{amount}</span>.
</i18n.Translate>
)}
diff --git a/packages/taler-wallet-webextension/src/pages/popup.stories.tsx b/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
index 1aec771a2..0cb51a336 100644
--- a/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
+++ b/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
@@ -19,8 +19,13 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { PaymentStatus, TransactionPayment, TransactionType, TransactionWithdrawal, TransactionDeposit, TransactionRefresh, TransactionTip, TransactionRefund, WithdrawalType, TransactionCommon } from '@gnu-taler/taler-util';
-import { Fragment, h } from 'preact';
+import {
+ PaymentStatus,
+ TransactionCommon, TransactionDeposit, TransactionPayment,
+ TransactionRefresh, TransactionRefund, TransactionTip, TransactionType,
+ TransactionWithdrawal,
+ WithdrawalType
+} from '@gnu-taler/taler-util';
import { WalletTransactionView as Component } from './popup';
export default {
@@ -174,7 +179,7 @@ export const Refund = dynamic({
});
export const RefundPending = dynamic({
- transaction: { ...exampleData.refund , pending: true }
+ transaction: { ...exampleData.refund, pending: true }
});
export const RefundWithProducts = dynamic({
diff --git a/packages/taler-wallet-webextension/src/pages/popup.tsx b/packages/taler-wallet-webextension/src/pages/popup.tsx
index 5fb08b77e..d6c03e074 100644
--- a/packages/taler-wallet-webextension/src/pages/popup.tsx
+++ b/packages/taler-wallet-webextension/src/pages/popup.tsx
@@ -37,13 +37,13 @@ import {
AmountString,
Timestamp,
amountFractionalBase,
+ i18n,
} from "@gnu-taler/taler-util";
import { format } from "date-fns";
import { Component, ComponentChildren, Fragment, JSX } from "preact";
import { route, Route, Router } from 'preact-router';
import { Match } from 'preact-router/match';
import { useEffect, useState } from "preact/hooks";
-import * as i18n from "../i18n";
import { PageLink, renderAmount } from "../renderHtml";
import * as wxApi from "../wxApi";
import { PermissionsCheckbox, useExtendedPermissions, Diagnostics } from "./welcome";
@@ -92,10 +92,10 @@ function bigAmount(amount: AmountJson): JSX.Element {
function EmptyBalanceView(): JSX.Element {
return (
- <i18n.Translate wrap="p">
+ <p><i18n.Translate>
You have no balance to show. Need some{" "}
<PageLink pageName="/welcome">help</PageLink> getting started?
- </i18n.Translate>
+ </i18n.Translate></p>
);
}
@@ -166,13 +166,13 @@ class WalletBalanceView extends Component<any, any> {
if (!Amounts.isZero(pendingIncoming)) {
incoming = (
- <i18n.Translate wrap="span">
+ <span><i18n.Translate>
<span style={{ color: "darkgreen" }}>
{"+"}
{renderAmount(entry.pendingIncoming)}
</span>{" "}
incoming
- </i18n.Translate>
+ </i18n.Translate></span>
);
}
@@ -436,14 +436,14 @@ interface WalletTransactionProps {
export function WalletTransactionView({ transaction, onDelete, onBack }: WalletTransactionProps) {
if (!transaction) {
- return <div>Loading ...</div>;
+ return <div><i18n.Translate>Loading ...</i18n.Translate></div>;
}
function Footer() {
return <footer style={{ marginTop: 'auto', display: 'flex' }}>
- <button onClick={onBack}>back</button>
+ <button onClick={onBack}><i18n.Translate>back</i18n.Translate></button>
<div style={{ width: '100%', flexDirection: 'row', justifyContent: 'flex-end', display: 'flex' }}>
- <button onClick={onDelete}>remove</button>
+ <button onClick={onDelete}><i18n.Translate>remove</i18n.Translate></button>
</div>
diff --git a/packages/taler-wallet-webextension/src/pages/withdraw.tsx b/packages/taler-wallet-webextension/src/pages/withdraw.tsx
index 7b6a06d20..6bdafd94c 100644
--- a/packages/taler-wallet-webextension/src/pages/withdraw.tsx
+++ b/packages/taler-wallet-webextension/src/pages/withdraw.tsx
@@ -21,8 +21,7 @@
* @author Florian Dold
*/
-import * as i18n from "../i18n";
-
+import { i18n } from '@gnu-taler/taler-util'
import { renderAmount } from "../renderHtml";
import { useState, useEffect } from "preact/hooks";
@@ -64,11 +63,11 @@ export function View({ talerWithdrawUri, details, cancelled, selectedExchange, a
return (
<div>
<h1>Digital Cash Withdrawal</h1>
- <i18n.Translate wrap="p">
+ <p><i18n.Translate>
You are about to withdraw{" "}
<strong>{renderAmount(details.amount)}</strong> from your bank account
into your wallet.
- </i18n.Translate>
+ </i18n.Translate></p>
{selectedExchange ? (
<p>
The exchange <strong>{selectedExchange}</strong> will be used as the
diff --git a/packages/taler-wallet-webextension/tests/i18n.test.tsx b/packages/taler-wallet-webextension/tests/i18n.test.tsx
index 89c5b3d54..bba1770b8 100644
--- a/packages/taler-wallet-webextension/tests/i18n.test.tsx
+++ b/packages/taler-wallet-webextension/tests/i18n.test.tsx
@@ -15,7 +15,7 @@
*/
// import * as test from "ava";
-import { internalSetStrings, str, Translate } from "../src/i18n";
+import { internalSetStrings, str, Translate } from "@gnu-taler/taler-util";
import { render, configure } from "enzyme";
import Adapter from 'enzyme-adapter-preact-pure';