From 361463a2ff10bd3e536e34ee816b397c23dca6f7 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 22 Sep 2018 17:18:25 +0200 Subject: wasm --- src/crypto/cryptoWorker.ts | 76 ++++++++++++++++++++++++++++++++++++ src/crypto/emscInterface.ts | 72 +++++++++++++++++++++++++++++++++- src/i18n/de.po | 86 +++++++++++++++++++++++------------------ src/i18n/en-US.po | 86 +++++++++++++++++++++++------------------ src/i18n/fr.po | 86 +++++++++++++++++++++++------------------ src/i18n/it.po | 86 +++++++++++++++++++++++------------------ src/i18n/strings.ts | 30 ++++++++++++++ src/i18n/sv.po | 86 +++++++++++++++++++++++------------------ src/i18n/taler-wallet-webex.pot | 86 +++++++++++++++++++++++------------------ 9 files changed, 465 insertions(+), 229 deletions(-) (limited to 'src') diff --git a/src/crypto/cryptoWorker.ts b/src/crypto/cryptoWorker.ts index 3e71794b4..11b21190d 100644 --- a/src/crypto/cryptoWorker.ts +++ b/src/crypto/cryptoWorker.ts @@ -549,6 +549,76 @@ namespace RpcFunctions { time_eddsa_verify += timer.performanceNow() - start; } + /* rsa 2048 */ + + let time_rsa_2048_blind = 0; + const rsaPriv2048: native.RsaPrivateKey = native.RsaPrivateKey.create(2048); + const rsaPub2048 = rsaPriv2048.getPublicKey(); + const blindingSecret2048 = native.RsaBlindingKeySecret.create(); + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaBlind(h, blindingSecret2048, rsaPub2048); + time_rsa_2048_blind += timer.performanceNow() - start; + } + + const blindedMessage2048 = native.rsaBlind(h, blindingSecret2048, rsaPub2048); + if (!blindedMessage2048) { + throw Error("should not happen"); + } + const rsaBlindSig2048 = native.rsaSignBlinded(rsaPriv2048, blindedMessage2048); + + let time_rsa_2048_unblind = 0; + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaUnblind(rsaBlindSig2048, blindingSecret2048, rsaPub2048); + time_rsa_2048_unblind += timer.performanceNow() - start; + } + + const unblindedSig2048 = native.rsaUnblind(rsaBlindSig2048, blindingSecret2048, rsaPub2048); + + let time_rsa_2048_verify = 0; + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaVerify(h, unblindedSig2048, rsaPub2048); + time_rsa_2048_verify += timer.performanceNow() - start; + } + + + /* rsa 4096 */ + + let time_rsa_4096_blind = 0; + const rsaPriv4096: native.RsaPrivateKey = native.RsaPrivateKey.create(4096); + const rsaPub4096 = rsaPriv4096.getPublicKey(); + const blindingSecret4096 = native.RsaBlindingKeySecret.create(); + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaBlind(h, blindingSecret4096, rsaPub4096); + time_rsa_4096_blind += timer.performanceNow() - start; + } + + const blindedMessage4096 = native.rsaBlind(h, blindingSecret4096, rsaPub4096); + if (!blindedMessage4096) { + throw Error("should not happen"); + } + const rsaBlindSig4096 = native.rsaSignBlinded(rsaPriv4096, blindedMessage4096); + + let time_rsa_4096_unblind = 0; + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaUnblind(rsaBlindSig4096, blindingSecret4096, rsaPub4096); + time_rsa_4096_unblind += timer.performanceNow() - start; + } + + const unblindedSig4096 = native.rsaUnblind(rsaBlindSig4096, blindingSecret4096, rsaPub4096); + + let time_rsa_4096_verify = 0; + for (let i = 0; i < repetitions; i++) { + const start = timer.performanceNow(); + native.rsaVerify(h, unblindedSig4096, rsaPub4096); + time_rsa_4096_verify += timer.performanceNow() - start; + } + + return { repetitions, time: { @@ -558,6 +628,12 @@ namespace RpcFunctions { eddsa_sign: time_eddsa_sign, eddsa_verify: time_eddsa_verify, ecdsa_create: time_ecdsa_create, + rsa_2048_blind: time_rsa_2048_blind, + rsa_2048_unblind: time_rsa_2048_unblind, + rsa_2048_verify: time_rsa_2048_verify, + rsa_4096_blind: time_rsa_4096_blind, + rsa_4096_unblind: time_rsa_4096_unblind, + rsa_4096_verify: time_rsa_4096_verify, } }; } diff --git a/src/crypto/emscInterface.ts b/src/crypto/emscInterface.ts index 61289fb75..dcd16e633 100644 --- a/src/crypto/emscInterface.ts +++ b/src/crypto/emscInterface.ts @@ -90,7 +90,9 @@ interface EmscFunctions { random_block(a1: number, a2: number, a3: number): void; rsa_blinding_key_free(a1: number): void; rsa_public_key_free(a1: number): void; + rsa_private_key_free(a1: number): void; rsa_signature_free(a1: number): void; + rsa_verify(msgHash: number, sig: number, pubKey: number): number; setup_fresh_coin(a1: number, a2: number, a3: number): void; string_to_data(a1: number, a2: number, a3: number, a4: number): number; } @@ -115,10 +117,15 @@ interface EmscAllocFunctions { rsa_blinding_key_create(a1: number): number; rsa_blinding_key_decode(a1: number, a2: number): number; rsa_blinding_key_encode(a1: number, a2: number): number; + rsa_private_key_create(len: number): number; + rsa_private_key_decode(a1: number, a2: number): number; + rsa_private_key_encode(a1: number, a2: number): number; + rsa_private_key_get_public(privKeyPtr: number): number; rsa_public_key_decode(a1: number, a2: number): number; rsa_public_key_encode(a1: number, a2: number): number; - rsa_signature_encode(a1: number, a2: number): number; rsa_signature_decode(a1: number, a2: number): number; + rsa_signature_encode(a1: number, a2: number): number; + rsa_sign_blinded(keyPtr: number, msgPtr: number, msgLen: number): number; rsa_unblind(a1: number, a2: number, a3: number): number; } @@ -159,10 +166,15 @@ class EmscEnvironment { rsa_blinding_key_create: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_create", "number", ["number"]), rsa_blinding_key_decode: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_decode", "number", ["number", "number"]), rsa_blinding_key_encode: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_encode", "number", ["number", "number"]), + rsa_private_key_create: getEmsc("GNUNET_CRYPTO_rsa_private_key_create", "number", ["number"]), + rsa_private_key_decode: getEmsc("GNUNET_CRYPTO_rsa_private_key_decode", "number", ["number", "number"]), + rsa_private_key_encode: getEmsc("GNUNET_CRYPTO_rsa_private_key_encode", "number", ["number", "number"]), + rsa_private_key_get_public: getEmsc("GNUNET_CRYPTO_rsa_private_key_get_public", "number", ["number"]), rsa_public_key_decode: getEmsc("GNUNET_CRYPTO_rsa_public_key_decode", "number", ["number", "number"]), rsa_public_key_encode: getEmsc("GNUNET_CRYPTO_rsa_public_key_encode", "number", ["number", "number"]), rsa_signature_decode: getEmsc("GNUNET_CRYPTO_rsa_signature_decode", "number", ["number", "number"]), rsa_signature_encode: getEmsc("GNUNET_CRYPTO_rsa_signature_encode", "number", ["number", "number"]), + rsa_sign_blinded: getEmsc("GNUNET_CRYPTO_rsa_sign_blinded", "number", ["number", "number", "number"]), rsa_unblind: getEmsc("GNUNET_CRYPTO_rsa_unblind", "number", ["number", "number", "number"]), }; this.funcs = { @@ -189,7 +201,9 @@ class EmscEnvironment { random_block: getEmsc("GNUNET_CRYPTO_random_block", "void", ["number", "number", "number"]), rsa_blinding_key_free: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_free", "void", ["number"]), rsa_public_key_free: getEmsc("GNUNET_CRYPTO_rsa_public_key_free", "void", ["number"]), + rsa_private_key_free: getEmsc("GNUNET_CRYPTO_rsa_private_key_free", "void", ["number"]), rsa_signature_free: getEmsc("GNUNET_CRYPTO_rsa_signature_free", "void", ["number"]), + rsa_verify: getEmsc("GNUNET_CRYPTO_rsa_verify", "number", ["number", "number", "number"]), setup_fresh_coin: getEmsc("TALER_setup_fresh_coin", "void", ["number", "number", "number"]), string_to_data: getEmsc("GNUNET_STRINGS_string_to_data", "number", ["number", "number", "number", "number"]), }; @@ -1357,6 +1371,42 @@ export class PaymentSignaturePS extends SignatureStruct { } +/** + * Low-level handle to an RsaPrivateKey. + */ +export class RsaPrivateKey extends MallocArenaObject { + static fromCrock(s: string): RsaPrivateKey { + return fromCrockDecoded(s, this, emsc().allocFuncs.rsa_private_key_decode); + } + + static create(bitLen: number, a?: Arena): RsaPrivateKey { + const obj = new RsaPrivateKey(a); + obj.nativePtr = emsc().allocFuncs.rsa_private_key_create(bitLen); + return obj; + } + + toCrock() { + return this.encode().toCrock(); + } + + + getPublicKey(a?: Arena): RsaPublicKey { + const obj = new RsaPublicKey(a); + obj.nativePtr = emsc().allocFuncs.rsa_private_key_get_public(this.nativePtr); + return obj; + } + + destroy() { + emsc().funcs.rsa_public_key_free(this.nativePtr); + this.nativePtr = 0; + } + + encode(arena?: Arena): ByteArray { + return encode(this, emsc().allocFuncs.rsa_private_key_encode); + } +} + + /** * Low-level handle to an RsaPublicKey. */ @@ -1470,6 +1520,16 @@ export function eddsaVerify(purposeNum: number, } +export function rsaVerify(h: HashCode, + sig: RsaSignature, + pub: RsaPublicKey) { + const r = emsc().funcs.rsa_verify(h.nativePtr, + sig.nativePtr, + pub.nativePtr); + return r === GNUNET_OK; +} + + /** * Unblind a blindly signed value. */ @@ -1516,6 +1576,16 @@ export function ecdhEddsa(priv: EcdhePrivateKey, return h; } +export function rsaSignBlinded(priv: RsaPrivateKey, + msg: ByteArray): RsaSignature { + const sig = new RsaSignature(); + sig.nativePtr = emsc().allocFuncs.rsa_sign_blinded (priv.nativePtr, + msg.nativePtr, + msg.size()); + return sig; +} + + /** * Derive a fresh coin from the given seed. Used during refreshing. diff --git a/src/i18n/de.po b/src/i18n/de.po index 94ad58bb6..1f6ee9010 100644 --- a/src/i18n/de.po +++ b/src/i18n/de.po @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, c-format msgid "show more details" msgstr "" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,54 +66,54 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, fuzzy, c-format msgid "Confirm payment" msgstr "Bezahlung bestätigen" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " "again." msgstr "" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, fuzzy, c-format msgid "Aborting payment ..." msgstr "Bezahlung bestätigen" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, fuzzy, c-format msgid "Retry Payment" msgstr "Bezahlung bestätigen" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, fuzzy, c-format msgid "Abort Payment" msgstr "Bezahlung bestätigen" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, 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/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, c-format msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, c-format msgid "The total price is %1$s." msgstr "" @@ -230,72 +240,72 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "Saldo" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "Verlauf" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "Debug" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, 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:270 +#: src/webex/pages/popup.tsx:273 #, c-format msgid "%1$s incoming" msgstr "" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, fuzzy, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, 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" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, fuzzy, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "" @@ -303,17 +313,17 @@ msgstr "" " möchte einen Vertrag über %2$s\n" " mit Ihnen abschließen." -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, fuzzy, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, 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" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, fuzzy, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "" @@ -321,12 +331,12 @@ msgstr "" " möchte einen Vertrag über %2$s\n" " mit Ihnen abschließen." -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, fuzzy, c-format msgid "Merchant %1$s gave a %2$s of %3$s." msgstr "" @@ -334,22 +344,22 @@ msgstr "" " möchte einen Vertrag über %2$s\n" " mit Ihnen abschließen." -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse." diff --git a/src/i18n/en-US.po b/src/i18n/en-US.po index b9625d921..5d68c6167 100644 --- a/src/i18n/en-US.po +++ b/src/i18n/en-US.po @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, c-format msgid "show more details" msgstr "" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,54 +66,54 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " "again." msgstr "" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, c-format msgid "Aborting payment ..." msgstr "" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, c-format msgid "Retry Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, c-format msgid "Abort Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, c-format msgid "The merchant %1$s offers you to purchase:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, c-format msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, c-format msgid "The total price is %1$s." msgstr "" @@ -230,117 +240,117 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, c-format msgid "You have no balance to show. Need some %1$s getting started?" msgstr "" -#: src/webex/pages/popup.tsx:270 +#: src/webex/pages/popup.tsx:273 #, c-format msgid "%1$s incoming" msgstr "" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, c-format msgid "Started to withdraw %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "" -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, c-format msgid "Paid %1$s to merchant %2$s. %3$s (%4$s)" msgstr "" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "" -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, c-format msgid "Merchant %1$s gave a %2$s of %3$s." msgstr "" -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "" diff --git a/src/i18n/fr.po b/src/i18n/fr.po index 7f9fc14cf..f097767a8 100644 --- a/src/i18n/fr.po +++ b/src/i18n/fr.po @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, c-format msgid "show more details" msgstr "" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,54 +66,54 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " "again." msgstr "" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, c-format msgid "Aborting payment ..." msgstr "" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, c-format msgid "Retry Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, c-format msgid "Abort Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, c-format msgid "The merchant %1$s offers you to purchase:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, c-format msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, c-format msgid "The total price is %1$s." msgstr "" @@ -230,117 +240,117 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, c-format msgid "You have no balance to show. Need some %1$s getting started?" msgstr "" -#: src/webex/pages/popup.tsx:270 +#: src/webex/pages/popup.tsx:273 #, c-format msgid "%1$s incoming" msgstr "" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, c-format msgid "Started to withdraw %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "" -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, c-format msgid "Paid %1$s to merchant %2$s. %3$s (%4$s)" msgstr "" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "" -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, c-format msgid "Merchant %1$s gave a %2$s of %3$s." msgstr "" -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "" diff --git a/src/i18n/it.po b/src/i18n/it.po index 7f9fc14cf..f097767a8 100644 --- a/src/i18n/it.po +++ b/src/i18n/it.po @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, c-format msgid "show more details" msgstr "" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,54 +66,54 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " "again." msgstr "" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, c-format msgid "Aborting payment ..." msgstr "" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, c-format msgid "Retry Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, c-format msgid "Abort Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, c-format msgid "The merchant %1$s offers you to purchase:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, c-format msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, c-format msgid "The total price is %1$s." msgstr "" @@ -230,117 +240,117 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, c-format msgid "You have no balance to show. Need some %1$s getting started?" msgstr "" -#: src/webex/pages/popup.tsx:270 +#: src/webex/pages/popup.tsx:273 #, c-format msgid "%1$s incoming" msgstr "" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, c-format msgid "Started to withdraw %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "" -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, c-format msgid "Paid %1$s to merchant %2$s. %3$s (%4$s)" msgstr "" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "" -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, c-format msgid "Merchant %1$s gave a %2$s of %3$s." msgstr "" -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "" diff --git a/src/i18n/strings.ts b/src/i18n/strings.ts index b0d2208d4..cb5ee7e62 100644 --- a/src/i18n/strings.ts +++ b/src/i18n/strings.ts @@ -24,6 +24,12 @@ strings['de'] = { "plural_forms": "nplurals=2; plural=(n != 1);", "lang": "" }, + "Operation": [ + "" + ], + "time (ms/op)": [ + "" + ], "show more details": [ "" ], @@ -258,6 +264,12 @@ strings['en-US'] = { "plural_forms": "nplurals=2; plural=(n != 1);", "lang": "" }, + "Operation": [ + "" + ], + "time (ms/op)": [ + "" + ], "show more details": [ "" ], @@ -492,6 +504,12 @@ strings['fr'] = { "plural_forms": "nplurals=2; plural=(n != 1);", "lang": "" }, + "Operation": [ + "" + ], + "time (ms/op)": [ + "" + ], "show more details": [ "" ], @@ -726,6 +744,12 @@ strings['it'] = { "plural_forms": "nplurals=2; plural=(n != 1);", "lang": "" }, + "Operation": [ + "" + ], + "time (ms/op)": [ + "" + ], "show more details": [ "" ], @@ -960,6 +984,12 @@ strings['sv'] = { "plural_forms": "nplurals=2; plural=(n != 1);", "lang": "" }, + "Operation": [ + "" + ], + "time (ms/op)": [ + "" + ], "show more details": [ "visa mer" ], diff --git a/src/i18n/sv.po b/src/i18n/sv.po index cff28fd3c..890505c07 100644 --- a/src/i18n/sv.po +++ b/src/i18n/sv.po @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, fuzzy, c-format msgid "show more details" msgstr "visa mer" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "Accepterade tjänsteleverantörer:" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "Tjänsteleverantörer i plånboken:" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "plånboken" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,17 +66,17 @@ msgid "" "wallet." msgstr "plånboken" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, c-format msgid "Confirm payment" msgstr "Godkän betalning" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "Bekräftar betalning" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " @@ -75,37 +85,37 @@ msgstr "" "Du har redan betalat för det här, om du trycker \"Godkän betalning\" " "debiteras du inte igen" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, c-format msgid "Aborting payment ..." msgstr "" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, c-format msgid "Retry Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, c-format msgid "Abort Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, fuzzy, c-format msgid "The merchant %1$s offers you to purchase:" msgstr "Säljaren %1$s erbjuder följande:" -#: src/webex/pages/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, 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/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, fuzzy, c-format msgid "The total price is %1$s." msgstr "Det totala priset är %1$s." @@ -234,119 +244,119 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "Balans" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "Historia" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "hjälp" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, 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:270 +#: src/webex/pages/popup.tsx:273 #, fuzzy, c-format msgid "%1$s incoming" msgstr "%1$s inkommande" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "Återbetalning" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "Återlämna elektroniska pengar till bank konto" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, c-format msgid "Started to withdraw %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, fuzzy, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "Säljaren %1$s erbjöd kontrakt %2$s.\n" -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, c-format msgid "Paid %1$s to merchant %2$s. %3$s (%4$s)" msgstr "" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, fuzzy, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "Säljaren %1$sgav en återbetalning på %2$s.\n" -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, 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" -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "plånboken" diff --git a/src/i18n/taler-wallet-webex.pot b/src/i18n/taler-wallet-webex.pot index 7f9fc14cf..f097767a8 100644 --- a/src/i18n/taler-wallet-webex.pot +++ b/src/i18n/taler-wallet-webex.pot @@ -27,28 +27,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:76 +#: src/webex/pages/benchmark.tsx:58 +#, c-format +msgid "Operation" +msgstr "" + +#: src/webex/pages/benchmark.tsx:59 +#, c-format +msgid "time (ms/op)" +msgstr "" + +#: src/webex/pages/confirm-contract.tsx:78 #, c-format msgid "show more details" msgstr "" -#: src/webex/pages/confirm-contract.tsx:90 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:95 +#: src/webex/pages/confirm-contract.tsx:97 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:217 +#: src/webex/pages/confirm-contract.tsx:219 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:219 +#: src/webex/pages/confirm-contract.tsx:221 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,54 +66,54 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:320 +#: src/webex/pages/confirm-contract.tsx:322 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:330 +#: src/webex/pages/confirm-contract.tsx:332 #, c-format msgid "Submitting payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:341 +#: src/webex/pages/confirm-contract.tsx:343 #, c-format msgid "" "You already paid for this, clicking \"Confirm payment\" will not cost money " "again." msgstr "" -#: src/webex/pages/confirm-contract.tsx:355 +#: src/webex/pages/confirm-contract.tsx:357 #, c-format msgid "Aborting payment ..." msgstr "" -#: src/webex/pages/confirm-contract.tsx:357 +#: src/webex/pages/confirm-contract.tsx:359 #, c-format msgid "Payment aborted!" msgstr "" -#: src/webex/pages/confirm-contract.tsx:360 +#: src/webex/pages/confirm-contract.tsx:362 #, c-format msgid "Retry Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:363 +#: src/webex/pages/confirm-contract.tsx:365 #, c-format msgid "Abort Payment" msgstr "" -#: src/webex/pages/confirm-contract.tsx:372 +#: src/webex/pages/confirm-contract.tsx:374 #, c-format msgid "The merchant %1$s offers you to purchase:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:381 +#: src/webex/pages/confirm-contract.tsx:383 #, c-format msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:385 +#: src/webex/pages/confirm-contract.tsx:387 #, c-format msgid "The total price is %1$s." msgstr "" @@ -230,117 +240,117 @@ msgstr "" msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:162 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:165 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:168 +#: src/webex/pages/popup.tsx:171 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:248 +#: src/webex/pages/popup.tsx:251 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:253 +#: src/webex/pages/popup.tsx:256 #, c-format msgid "You have no balance to show. Need some %1$s getting started?" msgstr "" -#: src/webex/pages/popup.tsx:270 +#: src/webex/pages/popup.tsx:273 #, c-format msgid "%1$s incoming" msgstr "" -#: src/webex/pages/popup.tsx:283 +#: src/webex/pages/popup.tsx:286 #, c-format msgid "%1$s being spent" msgstr "" -#: src/webex/pages/popup.tsx:310 +#: src/webex/pages/popup.tsx:313 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:337 +#: src/webex/pages/popup.tsx:340 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:338 +#: src/webex/pages/popup.tsx:341 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:339 +#: src/webex/pages/popup.tsx:342 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:351 +#: src/webex/pages/popup.tsx:354 #, c-format msgid "Bank requested reserve (%1$s) for %2$s." msgstr "" -#: src/webex/pages/popup.tsx:361 +#: src/webex/pages/popup.tsx:364 #, c-format msgid "Started to withdraw %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:370 +#: src/webex/pages/popup.tsx:373 #, c-format msgid "Merchant %1$s offered contract %2$s." msgstr "" -#: src/webex/pages/popup.tsx:381 +#: src/webex/pages/popup.tsx:384 #, c-format msgid "Withdrew %1$s from %2$s (%3$s)." msgstr "" -#: src/webex/pages/popup.tsx:391 +#: src/webex/pages/popup.tsx:394 #, c-format msgid "Paid %1$s to merchant %2$s. %3$s (%4$s)" msgstr "" -#: src/webex/pages/popup.tsx:401 +#: src/webex/pages/popup.tsx:404 #, c-format msgid "Merchant %1$s gave a refund over %2$s." msgstr "" -#: src/webex/pages/popup.tsx:411 +#: src/webex/pages/popup.tsx:414 #, c-format msgid "tip" msgstr "" -#: src/webex/pages/popup.tsx:415 +#: src/webex/pages/popup.tsx:418 #, c-format msgid "Merchant %1$s gave a %2$s of %3$s." msgstr "" -#: src/webex/pages/popup.tsx:419 +#: src/webex/pages/popup.tsx:422 #, c-format msgid "You did not accept the tip yet." msgstr "" -#: src/webex/pages/popup.tsx:424 +#: src/webex/pages/popup.tsx:427 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:467 +#: src/webex/pages/popup.tsx:470 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:492 +#: src/webex/pages/popup.tsx:495 #, c-format msgid "Your wallet has no events recorded." msgstr "" -- cgit v1.2.3