From cb82aa7253bf55bea89d5eebedda69b9809686d0 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 19 Jul 2018 17:11:24 +0200 Subject: [PATCH 01/93] OSX clipboard bugfix --- src/js/services/clipboardService.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/js/services/clipboardService.js b/src/js/services/clipboardService.js index ff28cd2e7..c53a1b764 100644 --- a/src/js/services/clipboardService.js +++ b/src/js/services/clipboardService.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('clipboardService', function ($http, $log, platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) { +angular.module('copayApp.services').factory('clipboardService', function ($http, $log, $timeout, platformInfo,nodeWebkitService, gettextCatalog, ionicToast, clipboard) { var root = {}; root.copyToClipboard = function (data) { @@ -26,7 +26,9 @@ angular.module('copayApp.services').factory('clipboardService', function ($http, cb(text); }) } else if (platformInfo.isNW) { - cb(nodeWebkitService.readFromClipboard()); + $timeout(function() { + cb(nodeWebkitService.readFromClipboard()); + },0); } else { navigator.clipboard.readText() .then(text => { From 1d5e116fa92f96bf99ab576d910de61e058f193f Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 19 Jul 2018 17:13:19 +0200 Subject: [PATCH 02/93] spacing --- src/js/services/clipboardService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/clipboardService.js b/src/js/services/clipboardService.js index 2420d45e9..b9851d626 100644 --- a/src/js/services/clipboardService.js +++ b/src/js/services/clipboardService.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('clipboardService', function ($http, $log, $timeout, platformInfo,nodeWebkitService, gettextCatalog, ionicToast, clipboard) { +angular.module('copayApp.services').factory('clipboardService', function ($http, $log, $timeout, platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) { var root = {}; root.copyToClipboard = function (data) { From e344fd567b3e1bbc74727dc5a1a898ffb85aa1cf Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 27 Jul 2018 17:45:12 +0900 Subject: [PATCH 03/93] Add translations and remove googletagmanager --- i18n/po/ca/template-ca.po | 128 +++++++++- i18n/po/cs/template-cs.po | 130 +++++++++- i18n/po/de/template-de.po | 412 +++++++++++++++++++++----------- i18n/po/es-ES/template-es-ES.po | 130 +++++++++- i18n/po/fa/template-fa.po | 130 +++++++++- i18n/po/fr/template-fr.po | 134 ++++++++++- i18n/po/it/template-it.po | 130 +++++++++- i18n/po/ja/template-ja.po | 140 ++++++++++- i18n/po/ko/template-ko.po | 130 +++++++++- i18n/po/nl/template-nl.po | 130 +++++++++- i18n/po/pl/template-pl.po | 194 ++++++++++++--- i18n/po/pt-BR/template-pt-BR.po | 130 +++++++++- i18n/po/ru/template-ru.po | 130 +++++++++- i18n/po/sv-SE/template-sv-SE.po | 128 +++++++++- i18n/po/vi/template-vi.po | 401 ++++++++++++++++++++----------- i18n/po/zh-CN/template-zh-CN.po | 164 +++++++++++-- www/index.html | 7 +- 17 files changed, 2351 insertions(+), 397 deletions(-) diff --git a/i18n/po/ca/template-ca.po b/i18n/po/ca/template-ca.po index 515fcd814..088cd870b 100644 --- a/i18n/po/ca/template-ca.po +++ b/i18n/po/ca/template-ca.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Catalan\n" "Language: ca\n" -"PO-Revision-Date: 2018-07-04 09:26\n" +"PO-Revision-Date: 2018-07-27 08:43\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Compra & ven bitcoins" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Compra bitcoins" @@ -619,10 +620,14 @@ msgstr "S'està connectant a Glidera..." msgid "Connection reset by peer" msgstr "Connexió reiniciada per un parell" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contactes" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Adreces utilitzades freqüentment desades" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Continua" @@ -823,7 +828,7 @@ msgstr "Crea una cartera compartida" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Crea una cartera bitcoin" @@ -2533,6 +2538,14 @@ msgstr "Cerca transaccions" msgid "Search or enter bitcoin address" msgstr "Cerca o introdueix l'adreça bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Porta-retalls" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Teniu el porta-retalls buit" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Cerca transaccions" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Envia per correu electrònic" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Envia des de" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Enviat a" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Enganxa des del porta-retalls" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Enganxa l'adreça" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Transferència de cartera a cartera" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Escaneja el codi QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envia bitcoins més ràpid!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envia bitcoins més ràpid!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Deseu adreces utilitzades freqüentment i envieu-los bitcoins d'un sol toc" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Afegiu el primer contacte" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "La vostra cartera bitcoin és buida" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Per començar, compreu Bitcoin Cash (BCH) o Bitcoin Core (BTC), o compartiu la vostra adreça." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Podeu rebre bitcoins des de qualsevol cartera o servei." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Per començar, heu de crear una cartera bitcoin i obtenir uns quants bitcoins." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Compra Bitcoins ara" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Mostra la meva adreça" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Envia import màxim" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transaccions descarregades" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-de-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Comunitat" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Reddit de Bitcoin Cash" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Twitter de Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Explora Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Jocs de Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Notícies" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Xarxa minera" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Eines" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Gràfiques de preus del bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash gratis" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Les vostres carteres bitcoin ja estan a punt!" + diff --git a/i18n/po/cs/template-cs.po b/i18n/po/cs/template-cs.po index 14fe7faf2..5a3702736 100644 --- a/i18n/po/cs/template-cs.po +++ b/i18n/po/cs/template-cs.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Czech\n" "Language: cs\n" -"PO-Revision-Date: 2018-07-04 09:26\n" +"PO-Revision-Date: 2018-07-27 08:43\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Koupit & prodat Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Koupit Bitcoin" @@ -619,10 +620,14 @@ msgstr "Připojování ke Glidera..." msgid "Connection reset by peer" msgstr "Připojení přerušeno druhou stranou" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Kontakty" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Uložené, často používané adresy" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Pokračovat" @@ -823,7 +828,7 @@ msgstr "Vytvořit sdílenou peněženku" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Vytvořit Bitcoin peněženku" @@ -2533,6 +2538,14 @@ msgstr "Vyhledávání transakcí" msgid "Search or enter bitcoin address" msgstr "Vyhledat nebo zadat Bitcoin adresu" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Schránka" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Vaše schránka je prázdná" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Vyhledávání transakcí" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Poslat e-mailem" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Odeslat z" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Odeslat" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Vložit ze schránky" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Vložit adresu" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Převod mezi peněženkami" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Skenovat QR kód" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Odesílejte Bitcoin rychleji!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Odesílejte Bitcoin rychleji!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Uložte si často používané adresy a posílejte jim Bitcoin jedním kliknutím" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Přidat váš první kontakt" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Vaše Bitcoin peněženka je prázdná" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Chcete-li začít, nakupte Bitcoin Cash (BCH) nebo Bitcoin Core (BTC), nebo sdílejte svou adresu." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Můžete přijímat Bitcoin z jakékoliv peněženky nebo služby." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Chcete-li začít, budete muset vytvořit Bitcoin peněženku a Bitcoin získat." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Koupit Bitcoin" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Zobrazit mou adresu" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Odeslat maximální částku" @@ -3030,7 +3104,7 @@ msgstr "Chcete-li začít, nakupte Bitcoin nebo sdílejte svou adresu. Můžete #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Chcete-li začít, budete muset vytvořit Bitcoin peněženku a Bitcoin získat." +msgstr "Chcete-li začít, budete potřebovat vytvořit Bitcoin peněženku a získat Bitcoin." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transakcí staženo" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-z-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Komunita" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Prohlédnout Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash hry" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Novinky" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Těžební pool" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Nástroje" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Grafy cen Bitcoinu" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash zdarma" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Vaše Bitcoin peněženka je připravena!" + diff --git a/i18n/po/de/template-de.po b/i18n/po/de/template-de.po index 7b3a50d69..18d8ca0f4 100644 --- a/i18n/po/de/template-de.po +++ b/i18n/po/de/template-de.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: German\n" "Language: de\n" -"PO-Revision-Date: 2018-07-04 03:57\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -79,7 +79,7 @@ msgstr "Kontonummer" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "" +msgstr "Sofortige Transaktionen mit niedrigen Gebühren" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -226,7 +226,7 @@ msgstr "Betrag zu hoch" #: www/views/includes/walletHistory.html:31 msgid "Amount too low to spend" -msgstr "Betrag ist zu niedrig zum ausgeben" +msgstr "Betrag ist zu niedrig zum Ausgeben" #: src/js/controllers/tab-home.js:147 msgid "An update to this app is available. For your security, please update to the latest version." @@ -384,7 +384,7 @@ msgstr "Bitcoin-Netzwerk Gebührenübersicht" #: www/views/tab-home.html:83 #: www/views/tab-settings.html:107 msgid "Bitcoin Core Wallets" -msgstr "Bitcoin Core Brieftaschen" +msgstr "Bitcoin Core Wallets" #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Kaufe & Verkaufe Bitcoins" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Kaufe Bitcoins" @@ -547,7 +548,7 @@ msgstr "Schließen" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "" +msgstr "Münze" #: www/views/preferences.html:22 msgid "Color" @@ -563,7 +564,7 @@ msgstr "Beenden Sie den Backupvorgang um diese Option zu nutzen" #: www/views/bitpayCard.html:93 msgid "Completed" -msgstr "" +msgstr "Abgeschlossen" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 @@ -584,7 +585,7 @@ msgstr "Bestätigen & Beenden" #: www/views/buyAmazon.html:90 msgid "Confirm purchase" -msgstr "" +msgstr "Kauf bestätigen" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" @@ -619,10 +620,14 @@ msgstr "Verbinde mit Glidera..." msgid "Connection reset by peer" msgstr "Verbindung von Peer zurückgesetzt" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Kontakte" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Gespeicherte häufig verwendete Adressen" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Weiter" @@ -633,7 +638,7 @@ msgstr "Übersetzungen beitragen" #: src/js/controllers/confirm.js:130 msgid "Copay only supports Bitcoin Cash using new version numbers addresses" -msgstr "" +msgstr "Copay unterstützt nur Bitcoin Cash bei Adressen welche das neue Adressformat benutzen" #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" @@ -675,7 +680,7 @@ msgstr "In die Zwischenablage kopieren" #: src/js/controllers/buyMercadoLibre.js:102 msgid "Could not access Gift Card Service" -msgstr "" +msgstr "Der Geschenkkartendienst konnte nicht erreicht werden" #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" @@ -683,7 +688,7 @@ msgstr "Kein Zugriff auf Wallet des Servers. Überprüfen Sie bitte:" #: src/js/controllers/buyAmazon.js:102 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "Auf Amazon.com konnte nicht zugegriffen werden" #: src/js/services/profileService.js:511 msgid "Could not access wallet" @@ -707,13 +712,13 @@ msgstr "Adresse konnte nicht erstellt werden" #: src/js/controllers/topup.js:92 msgid "Could not create the invoice" -msgstr "" +msgstr "Die Rechnung konnte nicht erstellt werden" #: src/js/controllers/buyAmazon.js:164 #: src/js/controllers/buyMercadoLibre.js:164 #: src/js/controllers/topup.js:142 msgid "Could not create transaction" -msgstr "" +msgstr "Transaktion konnte nicht erstellt werden" #: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" @@ -737,7 +742,7 @@ msgstr "Zahlungsvorschlag konnte nicht gelöscht werden" #: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" -msgstr "" +msgstr "Konnte nicht duplizieren" #: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" @@ -749,13 +754,13 @@ msgstr "Dynamische Gebühr für den Level konnte nicht abgerufen werden: {{feeLe #: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" -msgstr "" +msgstr "Gebühren konnten nicht abgerufen werden" #: src/js/controllers/buyAmazon.js:122 #: src/js/controllers/buyMercadoLibre.js:122 #: src/js/controllers/topup.js:100 msgid "Could not get the invoice" -msgstr "" +msgstr "Konnte die Rechnung nicht erhalten" #: src/js/controllers/bitpayCard.js:66 msgid "Could not get transactions" @@ -800,7 +805,7 @@ msgstr "Zahlung kann nicht gesendet werden" #: src/js/controllers/buyMercadoLibre.js:318 #: src/js/controllers/topup.js:299 msgid "Could not send transaction" -msgstr "" +msgstr "Transaktion konnte nicht gesendet werden" #: www/views/walletDetails.html:210 msgid "Could not update transaction history" @@ -823,7 +828,7 @@ msgstr "Erstelle eine gemeinsame Wallet" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Erstelle Bitcoin-Wallet" @@ -859,7 +864,7 @@ msgstr "Aktuelle Gebühr für dieses Verfahren" #: src/js/services/feeService.js:15 msgid "Custom" -msgstr "" +msgstr "Eigene" #: www/views/customAmount.html:9 msgid "Custom Amount" @@ -867,7 +872,7 @@ msgstr "Benutzerdefinierter Betrag" #: src/js/controllers/preferencesFee.js:85 msgid "Custom Fee" -msgstr "" +msgstr "Eigene Gebühr" #: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:87 @@ -944,11 +949,11 @@ msgstr "Herunterladen" #: www/views/cashScan.html:37 msgid "Duplicate for BCH" -msgstr "Duplikat für BCH" +msgstr "Für BCH duplizieren" #: src/js/services/onGoingProcess.js:49 msgid "Duplicating wallet..." -msgstr "" +msgstr "Wallet wird dupliziert..." #: www/views/addresses.html:19 msgid "Each bitcoin wallet can generate billions of addresses from your 12-word backup. A new address is automatically generated and shown each time you receive a payment." @@ -960,7 +965,7 @@ msgstr "Wirtschaftlich" #: www/views/onboarding/collectEmail.html:27 msgid "Edit" -msgstr "" +msgstr "Bearbeiten" #: www/views/addressbook.add.html:29 #: www/views/addressbook.view.html:22 @@ -977,7 +982,7 @@ msgstr "Obergrenze für leere Adressen erreicht. Neue Adressen können nicht gen #: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." -msgstr "" +msgstr "Bitcoin Cash-Wallet-Erstellung und Betrieb innerhalb der App aktivieren." #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." @@ -993,7 +998,7 @@ msgstr "Pushbenachrichtigungen aktivieren" #: www/views/preferencesNotifications.html:33 msgid "Enable sound" -msgstr "" +msgstr "Sound einschalten" #: www/views/tab-scan.html:18 msgid "Enable the camera to get started." @@ -1014,11 +1019,11 @@ msgstr "Eingabe des Zwei-Faktor-Authentifizierungs-Codes für das BitPay Konto" #: www/views/amount.html:4 msgid "Enter amount" -msgstr "" +msgstr "Betrag eingeben" #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" -msgstr "" +msgstr "Eigene Gebühr eingeben" #: src/js/services/walletService.js:1029 msgid "Enter new spending password" @@ -1032,7 +1037,7 @@ msgstr "Wiederherstellungsphrase eingeben (BIP39)" #: www/views/onboarding/collectEmail.html:13 msgid "Enter your email" -msgstr "" +msgstr "Ihre E-Mail Adresse eingeben" #: www/views/backup.html:69 msgid "Enter your password" @@ -1123,12 +1128,12 @@ msgstr "Fehler beim bestätigen" #: src/js/controllers/buyAmazon.js:179 msgid "Error creating gift card" -msgstr "" +msgstr "Fehler beim Erstellen der Geschenkkarte" #: src/js/controllers/buyAmazon.js:94 #: src/js/controllers/buyMercadoLibre.js:94 msgid "Error creating the invoice" -msgstr "" +msgstr "Fehler beim Erstellen der Rechnung" #: src/js/services/profileService.js:412 msgid "Error creating wallet" @@ -1136,17 +1141,17 @@ msgstr "Fehler beim Erstellen des Wallets" #: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" -msgstr "" +msgstr "Fehler beim Abrufen der SendMax Informationen" #: src/js/controllers/buyAmazon.js:136 #: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Error in Payment Protocol" -msgstr "" +msgstr "Fehler im Zahlungsprotokoll" #: src/js/controllers/bitpayCardIntro.js:14 msgid "Error pairing BitPay Account" -msgstr "" +msgstr "Fehler beim Paaren mit BitPay Konto" #: src/js/controllers/paperWallet.js:41 msgid "Error scanning funds:" @@ -1201,7 +1206,7 @@ msgstr "Erweiterte öffentliche Schlüssel" #: src/js/services/onGoingProcess.js:20 msgid "Extracting Wallet information..." -msgstr "" +msgstr "Wallet-Informationen extrahieren..." #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1222,16 +1227,16 @@ msgstr "Gebühr" #: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" -msgstr "" +msgstr "Gebührenstufe" #: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" -msgstr "" +msgstr "Gebührenstufe ist nicht definiert" #: www/views/confirm.html:79 #: www/views/modals/txp-details.html:99 msgid "Fee:" -msgstr "" +msgstr "Gebühr:" #: src/js/controllers/feedback/send.js:23 msgid "Feedback could not be submitted. Please try again later." @@ -1243,7 +1248,7 @@ msgstr "BitPay Konto abrufen..." #: src/js/services/onGoingProcess.js:21 msgid "Fetching payment information" -msgstr "" +msgstr "Zahlungsinformationen abrufen" #: www/views/export.html:14 #: www/views/import.html:16 @@ -1252,7 +1257,7 @@ msgstr "Datei/Text" #: www/views/preferencesLogs.html:17 msgid "Filter setting" -msgstr "" +msgstr "Filtereinstellungen" #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 @@ -1285,7 +1290,7 @@ msgstr "Von BitPay Konto" #: www/views/tab-import-phrase.html:57 msgid "From Hardware Wallet" -msgstr "" +msgstr "Aus der Hardware-Wallet" #: www/views/tab-export-qrCode.html:5 msgid "From the destination device, go to Add wallet > Import wallet and scan this QR code" @@ -1301,7 +1306,7 @@ msgstr "Betrag gefunden:" #: www/views/topup.html:49 msgid "Funds to be added" -msgstr "" +msgstr "Hinzuzufügende Mittel" #: www/views/paperWallet.html:51 msgid "Funds transferred" @@ -1309,7 +1314,7 @@ msgstr "Betrag übermittelt" #: www/views/topup.html:103 msgid "Funds were added to debit card" -msgstr "" +msgstr "Mittel wurden auf die Debitkarte hinzugefügt" #: www/views/paperWallet.html:22 msgid "Funds will be transferred to" @@ -1317,7 +1322,7 @@ msgstr "Beträge werden überwiesen an" #: www/views/tab-receive.html:51 msgid "Generate new address" -msgstr "" +msgstr "Neue Adresse generieren" #: src/js/services/onGoingProcess.js:22 msgid "Generating .csv file..." @@ -1338,7 +1343,7 @@ msgstr "Erhalten Sie Neuigkeiten und Aktualisierungen von BitPay" #: www/views/onboarding/welcome.html:8 msgctxt "button" msgid "Get started" -msgstr "" +msgstr "Loslegen" #: www/views/bitpayCard.html:49 msgid "Get started" @@ -1355,20 +1360,20 @@ msgstr "Entgelt-Level werden abgerufen..." #: www/views/buyAmazon.html:43 #: www/views/buyMercadoLibre.html:42 msgid "Gift Card" -msgstr "Geschenk-Karte" +msgstr "Geschenkkarte" #: www/views/modals/mercadolibre-card-details.html:30 #: www/views/modals/mercadolibre-card-details.html:35 msgid "Gift Card is not available to use anymore" -msgstr "" +msgstr "Geschenkkarte kann nicht mehr verwendet werden" #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" -msgstr "" +msgstr "Geschenkkarte ist abgelaufen" #: www/views/buyAmazon.html:111 msgid "Gift card generated and ready to use." -msgstr "" +msgstr "Geschenkkarte generiert und einsatzbereit." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 @@ -1414,7 +1419,7 @@ msgstr "Hardware-Wallet" #: src/js/controllers/create.js:180 #: src/js/controllers/join.js:145 msgid "Hardware wallets are not yet supported with Bitcoin Cash" -msgstr "" +msgstr "Bitcoin Cash unterstützt keine Hardware-Wallets" #: www/views/tab-settings.html:20 msgid "Help & Support" @@ -1531,7 +1536,7 @@ msgstr "Wenn Sie einen Screenshot erstellen, kann die Sicherung von anderen Apps #: www/views/tab-import-hardware.html:42 #: www/views/tab-import-phrase.html:80 msgid "Import" -msgstr "" +msgstr "Import" #: www/views/import.html:3 msgid "Import Wallet" @@ -1580,13 +1585,13 @@ msgstr "QR code hat falsches Format" #: src/js/services/bwcError.js:113 msgid "Incorrect network address" -msgstr "" +msgstr "Falsche Netzwerkadresse" #: src/js/controllers/confirm.js:114 #: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient confirmed funds" -msgstr "" +msgstr "Unzureichende bestätigte Mittel" #: src/js/controllers/topup.js:165 #: src/js/controllers/topup.js:177 @@ -1606,7 +1611,7 @@ msgstr "Ungültig" #: src/js/controllers/buyMercadoLibre.js:137 #: src/js/controllers/topup.js:115 msgid "Invalid URL" -msgstr "" +msgstr "Ungültige URL" #: src/js/controllers/create.js:186 #: src/js/controllers/import.js:345 @@ -1635,7 +1640,7 @@ msgstr "Einladung um eine {{appName}} Wallet zu teilen" #: www/views/mercadoLibreCards.html:20 #: www/views/modals/mercadolibre-card-details.html:48 msgid "Invoice expired" -msgstr "" +msgstr "Rechnung abgelaufen" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1696,7 +1701,7 @@ msgstr "Letzter Monat" #: www/views/preferencesCash.html:18 #: www/views/tx-details.html:94 msgid "Learn more" -msgstr "" +msgstr "Weitere Informationen" #: www/views/backup.html:43 msgid "Let's verify your backup phrase." @@ -1737,15 +1742,15 @@ msgstr "Zeitsperre aktiv. Bitte auf die Entfernung des Zahlungsvorschlags warten #: www/views/includes/logOptions.html:3 msgid "Log options" -msgstr "" +msgstr "Log-Optionen" #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" -msgstr "" +msgstr "Abmelden" #: www/views/addresses.html:87 msgid "Low amount inputs" -msgstr "" +msgstr "Zu wenige Inputs" #: www/views/includes/walletHistory.html:27 msgid "Low fees" @@ -1777,11 +1782,11 @@ msgstr "Notiz" #: www/views/mercadoLibre.html:6 msgid "Mercado Livre Brazil Gift Cards" -msgstr "" +msgstr "Mercado Livre Brazil Geschenkkarten" #: src/js/controllers/buyMercadoLibre.js:98 msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." -msgstr "" +msgstr "Der MercadoLibre Geschenkkarten-Dienst ist aktuell nicht erreichbar. Bitte versuchen Sie es später noch einmal." #: www/views/modals/txp-details.html:131 msgid "Merchant Message" @@ -1791,7 +1796,7 @@ msgstr "Händlernachricht" #: www/views/buyMercadoLibre.html:54 #: www/views/topup.html:63 msgid "Miner Fee" -msgstr "" +msgstr "Miner-Gebühr" #: src/js/services/bwcError.js:134 msgid "Missing parameter" @@ -1828,13 +1833,13 @@ msgstr "Hinweis: Um eine Brieftasche aus einer 3rd-Party-Software zu importieren #: www/views/preferences.html:15 #: www/views/preferencesAlias.html:17 msgid "Name" -msgstr "" +msgstr "Name" #: www/views/buyAmazon.html:49 #: www/views/buyMercadoLibre.html:48 #: www/views/topup.html:56 msgid "Network Cost" -msgstr "" +msgstr "Netzwerkkosten" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1863,7 +1868,7 @@ msgstr "Keine Wallet" #: src/js/controllers/buyAmazon.js:115 #: src/js/controllers/buyMercadoLibre.js:115 msgid "No access key defined" -msgstr "" +msgstr "Kein Zugangsschlüssel definiert" #: www/views/onboarding/backupRequest.html:5 msgid "No backup, no bitcoin." @@ -1875,7 +1880,7 @@ msgstr "Noch keine Kontakte" #: www/views/preferencesLogs.html:16 msgid "No entries for this log level" -msgstr "" +msgstr "Keine Einträge für dieses Log-level" #: www/views/preferencesExternal.html:12 msgid "No hardware information available." @@ -1896,7 +1901,7 @@ msgstr "Keine aktuellen Transaktionen" #: src/js/controllers/buyAmazon.js:44 #: src/js/controllers/topup.js:47 msgid "No signing proposal: No private key" -msgstr "" +msgstr "Kein Unterzeichnungsvorschlag: Privater Schlüssel nicht vorhanden" #: www/views/walletDetails.html:204 msgid "No transactions yet" @@ -1915,7 +1920,7 @@ msgstr "Kein Wallet ausgewählt" #: src/js/controllers/confirm.js:85 #: src/js/controllers/topup.js:265 msgid "No wallets available" -msgstr "" +msgstr "Keine Wallets verfügbar" #: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" @@ -1923,19 +1928,19 @@ msgstr "Keine Wallet verfügbar um Guthaben zu erhalten" #: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" -msgstr "" +msgstr "Keine Wallet zur Unterstützung von Bitcoin Cash geeignet" #: src/js/controllers/cashScan.js:58 msgid "Non BIP44 wallet" -msgstr "" +msgstr "Wallet ist keine BIP44-Wallet" #: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" -msgstr "" +msgstr "Keine geeigneten BTC Wallets" #: src/js/services/feeService.js:12 msgid "Normal" -msgstr "" +msgstr "Normal" #: src/js/services/bwcError.js:80 msgid "Not authorized" @@ -1964,7 +1969,7 @@ msgstr "Notiz" #: www/views/backup.html:19 msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." -msgstr "" +msgstr "Hinweis: Wenn diese BCH-Wallet aus einer BTC-Wallet dupliziert wurde, verwenden sie die selbe Wiederherstellungsphrase." #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" @@ -1977,15 +1982,15 @@ msgstr "Benachrichtigungen" #: www/views/onboarding/collectEmail.html:9 msgid "Notifications by email" -msgstr "" +msgstr "Benachrichtigungen per e-Mail" #: www/views/tx-details.html:117 msgid "Notify me if confirmed" -msgstr "" +msgstr "Benachrichtige mich sobald sie bestätigt ist" #: www/views/preferencesNotifications.html:24 msgid "Notify me when transactions are confirmed" -msgstr "" +msgstr "Benachrichtigen Sie mich, wenn Transaktionen bestätigt werden" #: www/views/includes/backupNeededPopup.html:8 msgid "Now is a good time to backup your wallet. If this device is lost, it is impossible to access your funds without a backup." @@ -2004,7 +2009,7 @@ msgstr "Jetzt ist die perfekte Zeit um Ihre Umgebung zu überprüfen. In der Nä #: src/js/services/popupService.js:72 #: www/views/modals/chooseFeeLevel.html:6 msgid "OK" -msgstr "" +msgstr "Okay" #: www/views/modals/tx-status.html:12 #: www/views/modals/tx-status.html:24 @@ -2023,7 +2028,7 @@ msgstr "Oh nein!" #: src/js/controllers/buyMercadoLibre.js:306 msgid "Ok" -msgstr "" +msgstr "Okay" #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." @@ -2053,7 +2058,7 @@ msgstr "Öffne GitHub Projekt" #: src/js/controllers/bitpayCard.js:123 #: src/js/controllers/tx-details.js:192 msgid "Open Explorer" -msgstr "" +msgstr "Explorer öffnen" #: www/views/tab-scan.html:22 msgid "Open Settings" @@ -2069,11 +2074,11 @@ msgstr "Öffne Website" #: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" -msgstr "" +msgstr "bitcoincash.org öffnen?" #: src/js/controllers/cashScan.js:18 msgid "Open the recovery tool." -msgstr "" +msgstr "Öffnen Sie das Recovery-Tool." #: www/views/tab-receive.html:27 msgid "Open wallet" @@ -2081,7 +2086,7 @@ msgstr "Öffne Wallet" #: www/views/includes/incomingDataMenu.html:19 msgid "Open website" -msgstr "" +msgstr "Öffne Website" #: www/views/bitpayCardIntro.html:34 msgid "Order the BitPay Card" @@ -2173,7 +2178,7 @@ msgstr "Zahlung akzeptiert. Sie wird durch Glidera übermittelt. Falls ein Probl #: src/js/services/incomingData.js:152 msgid "Payment address was translated to new Bitcoin Cash address format:" -msgstr "" +msgstr "Die Zahlungsadresse wurde auf das neue Bitcoin Cash-Adressformat übersetzt:" #: www/views/modals/txp-details.html:107 msgid "Payment details" @@ -2186,7 +2191,7 @@ msgstr "Zahlungsanforderung" #: www/views/mercadoLibreCards.html:22 #: www/views/modals/mercadolibre-card-details.html:39 msgid "Pending" -msgstr "" +msgstr "Ausstehend" #: www/views/proposals.html:4 msgid "Pending Proposals" @@ -2232,7 +2237,7 @@ msgstr "Bitte Copay aktualisieren, um diese Aktion auszuführen" #: www/views/walletDetails.html:142 #: www/views/walletDetails.html:62 msgid "Please wait" -msgstr "" +msgstr "Bitte warten" #: src/js/controllers/import.js:238 msgid "Please, select your backup file" @@ -2240,7 +2245,7 @@ msgstr "Bitte die Sicherungsdatei wählen" #: www/views/bitpayCard.html:81 msgid "Pre-Auth Holds" -msgstr "" +msgstr "Pre-Auth Holds" #: www/views/tab-settings.html:40 msgid "Preferences" @@ -2264,7 +2269,7 @@ msgstr "höchste Priorität" #: www/views/includes/incomingDataMenu.html:80 msgid "Private Key" -msgstr "" +msgstr "Privater Schlüssel" #: src/js/controllers/paperWallet.js:136 msgid "Private key encrypted. Enter password" @@ -2298,11 +2303,11 @@ msgstr "Vorschläge" #: src/js/controllers/buyAmazon.js:282 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" -msgstr "" +msgstr "Kaufbetrag beschränkt ist auf {{limitPerDay}} {{currency}} pro Tag beschränkt" #: src/js/controllers/buyMercadoLibre.js:281 msgid "Purchase amount must be a value between 50 and 2000" -msgstr "" +msgstr "Kaufbetrag muss ein Wert zwischen 50 und 2000 sein" #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" @@ -2340,11 +2345,11 @@ msgstr "Mehr anzeigen" #: src/js/controllers/preferences.js:65 #: src/js/controllers/tx-details.js:54 msgid "Read more in our Wiki" -msgstr "" +msgstr "Lesen Sie mehr in unserem Wiki" #: src/js/controllers/cashScan.js:61 msgid "Read only wallet" -msgstr "" +msgstr "Schreibgeschützte Wallet" #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 @@ -2353,7 +2358,7 @@ msgstr "Empfangen" #: www/views/customAmount.html:44 msgid "Receive in" -msgstr "" +msgstr "Erhalten in" #: www/views/includes/walletHistory.html:24 #: www/views/tx-details.html:18 @@ -2402,7 +2407,7 @@ msgstr "Wallet wiederherstellen..." #: www/views/modals/mercadolibre-card-details.html:22 msgid "Redeem now" -msgstr "" +msgstr "Jetzt einlösen" #: src/js/controllers/modals/txpDetails.js:63 #: src/js/controllers/tx-details.js:80 @@ -2420,7 +2425,7 @@ msgstr "Release-Informationen" #: www/views/addressbook.view.html:36 #: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" -msgstr "" +msgstr "Entfernen" #: src/js/controllers/preferencesBitpayServices.js:7 msgid "Remove BitPay Account?" @@ -2503,7 +2508,7 @@ msgstr "Adresse auf neue Beträge überprüfen" #: www/views/modals/fingerprintCheck.html:11 msgid "Scan again" -msgstr "" +msgstr "Erneut scannen" #: src/js/services/fingerprintService.js:56 msgid "Scan your fingerprint please" @@ -2511,7 +2516,7 @@ msgstr "Scannen Sie bitte Ihren Fingerabdruck" #: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "Durchsuche deine Wallet nach Bitcoin Cash" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." @@ -2519,7 +2524,7 @@ msgstr "Prüfe Wallet auf neue Beträge..." #: www/views/includes/walletList.html:11 msgid "Scanning funds..." -msgstr "" +msgstr "Mittel werden durchsucht..." #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" @@ -2533,6 +2538,14 @@ msgstr "Transaktionen durchsuchen" msgid "Search or enter bitcoin address" msgstr "Bitcoin-Adresse suchen oder eingeben" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Zwischenablage" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Ihre Zwischenablage ist leer" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Transaktionen durchsuchen" @@ -2547,7 +2560,7 @@ msgstr "Sicherheit" #: www/views/modals/mercadolibre-card-details.html:64 msgid "See invoice" -msgstr "" +msgstr "Rechnung einsehen" #: www/views/tab-import-file.html:7 msgid "Select a backup file" @@ -2591,16 +2604,77 @@ msgid "Send by email" msgstr "Per E-Mail versenden" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Senden von" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Senden an" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Aus Zwischenablage einfügen" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Adresse einfügen" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Wallet-zu-Wallet-Überweisung" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "QR-Code scannen" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Versenden Sie Bitcoin schneller!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Versenden Sie Bitcoin schneller!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Speichern Sie häufig verwendete Adressen und senden Sie ihnen Bitcoin mit nur einem Tippen" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Ihren ersten Kontakt hinzufügen" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Ihre Bitcoin-Wallet ist leer" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Um loszulegen, können sie entweder Bitcoin Cash (BCH) oder Bitcoin Core (BTC) kaufen, oder uns ihre Adresse mitteilen." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Sie können Bitcoin von jeder Wallet oder jedem Dienst erhalten." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Um loszulegen müssen Sie eine Bitcoin-Wallet erstellen und einige Bitcoins erhalten." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Bitcoin jetzt kaufen" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Meine Adresse anzeigen" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Sende max. Betrag" #: www/views/includes/incomingDataMenu.html:46 msgid "Send payment to this address" -msgstr "" +msgstr "Zahlung an diese Adresse senden" #: www/views/feedback/rateApp.html:17 msgid "Send us feedback instead" @@ -2651,11 +2725,11 @@ msgstr "Antwort des Servers konnte nicht verifiziert werden" #: src/js/controllers/buyAmazon.js:97 #: src/js/controllers/buyMercadoLibre.js:97 msgid "Service not available" -msgstr "" +msgstr "Dienst ist nicht verfügbar" #: www/views/includes/homeIntegrations.html:3 msgid "Services" -msgstr "" +msgstr "Dienste" #: www/views/preferencesLogs.html:3 msgid "Session Log" @@ -2671,7 +2745,7 @@ msgstr "Passwort einrichten" #: src/js/controllers/preferencesFee.js:85 msgid "Set your own fee in satoshis/byte" -msgstr "" +msgstr "Legen Sie Ihre eigene Gebühr in Satoshis/byte fest" #: www/views/tab-settings.html:3 #: www/views/tabs.html:19 @@ -2747,24 +2821,24 @@ msgstr "Überspringen" #: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" -msgstr "" +msgstr "Zum Akzeptieren schieben" #: www/views/buyAmazon.html:96 msgid "Slide to buy" -msgstr "" +msgstr "Zum Kaufen schieben" #: src/js/controllers/confirm.js:365 msgid "Slide to pay" -msgstr "" +msgstr "Zum Bezahlen schieben" #: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" -msgstr "" +msgstr "Zum Senden schieben" #: www/views/cashScan.html:56 msgid "Some of your wallets are not eligible for Bitcoin Cash support. You can try to access BCH funds from these wallets using the" -msgstr "" +msgstr "Einige ihrer Wallets sind nicht zur Unterstützung von Bitcoin Cash geeignet. Sie können versuchen, auf BCH Mittel von diesen Wallets aus zuzugreifen indem Sie die" #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 @@ -2785,7 +2859,7 @@ msgstr "Berechtigungscode erforderlich" #: www/views/walletDetails.html:173 msgid "Spending this balance will need significant Bitcoin network fees" -msgstr "" +msgstr "Die Ausgabe dieses Betrages wird signifikante Bitcoin-Netzwerkgebühren erfordern" #: www/views/tab-send.html:28 msgid "Start sending bitcoin" @@ -2798,11 +2872,11 @@ msgstr "Sperre des Startups" #: www/views/mercadoLibreCards.html:21 #: www/views/modals/mercadolibre-card-details.html:42 msgid "Still pending" -msgstr "" +msgstr "Noch ausstehend" #: www/views/topup.html:101 msgid "Success" -msgstr "" +msgstr "Erfolg" #: src/js/services/feeService.js:14 msgid "Super Economy" @@ -2810,7 +2884,7 @@ msgstr "Niedrigste Priorität" #: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" -msgstr "" +msgstr "Bitcoin Cash unterstützen" #: www/views/paperWallet.html:7 msgid "Sweep" @@ -2840,7 +2914,7 @@ msgstr "Anzeigen durch tippen und halten" #: www/views/includes/walletInfo.html:3 msgid "Tap to recreate" -msgstr "" +msgstr "Zum neu erstellen tippen" #: www/views/includes/walletInfo.html:4 msgid "Tap to retry" @@ -2860,11 +2934,11 @@ msgstr "Nutzungsbedingungen" #: www/views/tab-create-personal.html:118 #: www/views/tab-import-phrase.html:68 msgid "Testnet" -msgstr "" +msgstr "Testnet" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" -msgstr "" +msgstr "Text" #: src/js/controllers/feedback/send.js:27 #: src/js/controllers/feedback/send.js:76 @@ -2999,7 +3073,7 @@ msgstr "Diese Wiederherstellungsphrase entstand mit einem Passwort. Zur Wiederhe #: www/views/tx-details.html:91 msgid "This transaction amount is too small compared to current Bitcoin network fees. Spending these funds will need a Bitcoin network fee cost comparable to the funds itself." -msgstr "" +msgstr "Dieser Betrag ist zu klein im Vergleich zu den aktuellen Bitcoin-Netzwerk-Gebühren. Diese Mittel benötigen eine Bitcoin Netzwerk Gebühr mit vergleichbarer Größe zu den Mitteln." #: www/views/tx-details.html:87 msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" @@ -3034,15 +3108,15 @@ msgstr "Um loszulegen müssen Sie eine Bitcoin-Wallet erstellen und einige Bitco #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" -msgstr "" +msgstr "Zum {{reason}} müssen Sie erst Ihr BitPay-Konto hinzufügen - {{email}}" #: src/js/services/onGoingProcess.js:48 msgid "Top up in progress..." -msgstr "" +msgstr "Aufladung in Bearbeitung..." #: src/js/controllers/topup.js:206 msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" -msgstr "" +msgstr "Laden sie {{amountStr}} auf die Debitkarte ({{cardLastNumber}}) auf" #: www/views/buyAmazon.html:61 #: www/views/buyMercadoLibre.html:60 @@ -3061,7 +3135,7 @@ msgstr "Gesamtanzahl der Copayer" #: www/views/addresses.html:81 msgid "Total wallet inputs" -msgstr "" +msgstr "Alle Wallet-Inputs" #: src/js/services/fingerprintService.js:63 #: src/js/services/fingerprintService.js:68 @@ -3074,7 +3148,7 @@ msgstr "Transaktion" #: www/views/confirm.html:126 msgid "Transaction Created" -msgstr "" +msgstr "Transaktion erstellt" #: www/views/preferencesAdvanced.html:29 #: www/views/preferencesHistory.html:3 @@ -3089,11 +3163,11 @@ msgstr "Transaktion wurde bereits übermittelt" #: src/js/controllers/buyMercadoLibre.js:301 #: src/js/controllers/topup.js:281 msgid "Transaction has not been created" -msgstr "" +msgstr "Transaktion wurde nicht erstellt" #: www/views/topup.html:104 msgid "Transaction initiated" -msgstr "" +msgstr "Transaktion eingeleitet" #: src/js/controllers/tx-details.js:119 msgid "Transaction not available at this time" @@ -3106,11 +3180,11 @@ msgstr "Transaktion konnte nicht gefunden werden" #: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." -msgstr "" +msgstr "Transaktionen ohne Gebühren werden nicht unterstützt." #: src/js/controllers/paperWallet.js:109 msgid "Transfer to" -msgstr "" +msgstr "Transfer zu" #: www/views/tab-send.html:67 msgid "Transfer to Wallet" @@ -3130,7 +3204,7 @@ msgstr "Wiederherstellungsphrase eingeben (in der Regel 12 Wörter)" #: src/js/controllers/backup.js:75 msgid "Uh oh..." -msgstr "" +msgstr "Oh oh..." #: www/views/tx-details.html:100 msgid "Unconfirmed" @@ -3178,12 +3252,12 @@ msgstr "Überprüfe Wiederherstellungsphrase..." #: www/views/modals/fingerprintCheck.html:4 msgid "Verify your identity" -msgstr "" +msgstr "Bestätigen Sie Ihre Identität" #: www/views/preferencesAbout.html:14 #: www/views/preferencesExternal.html:25 msgid "Version" -msgstr "" +msgstr "Version" #: www/views/tab-export-file.html:69 msgid "View" @@ -3200,7 +3274,7 @@ msgstr "Nutzungsbedingungen anzeigen" #: src/js/controllers/bitpayCard.js:122 #: src/js/controllers/tx-details.js:191 msgid "View Transaction on Explorer.Bitcoin.com" -msgstr "" +msgstr "Transaktion auf Explorer.Bitcoin.com ansehen" #: src/js/controllers/tab-home.js:148 msgid "View Update" @@ -3212,7 +3286,7 @@ msgstr "Auf blockchain anzeigen" #: www/views/mercadoLibre.html:26 msgid "Visit mercadolivre.com.br →" -msgstr "" +msgstr "Besuchen Sie mercadolivre.com.br →" #: www/views/walletDetails.html:182 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." @@ -3274,7 +3348,7 @@ msgstr "Wallet-Informationen" #: www/views/addresses.html:76 msgid "Wallet Inputs" -msgstr "" +msgstr "Wallet-Inputs" #: www/views/join.html:26 msgid "Wallet Invitation" @@ -3328,7 +3402,7 @@ msgstr "Wallet exstiert bereits" #: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" -msgstr "" +msgstr "Wallet bereits in {{appName}}" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3379,7 +3453,7 @@ msgstr "Wallet ist nicht beim Wallet-Service registiert. Neu erzeugen mit \"Neue #: www/views/backup.html:12 msgid "Wallet recovery phrase not available" -msgstr "" +msgstr "Wallet Wiederherstellungsphrase ist nicht verfügbar" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3387,7 +3461,7 @@ msgstr "Wallet-Dienst nicht gefunden" #: www/views/tab-home.html:69 msgid "Wallets" -msgstr "" +msgstr "Wallets" #: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 @@ -3424,7 +3498,7 @@ msgstr "Wir sind immer auf der Suche nach Möglichkeiten um {{appName}} zu verbe #: www/views/includes/incomingDataMenu.html:6 msgid "Website" -msgstr "" +msgstr "Webseite" #: www/views/preferencesLanguage.html:16 msgid "We’re always looking for translation contributions! You can make corrections or help to make this app available in your native language by joining our community on Crowdin." @@ -3504,11 +3578,11 @@ msgstr "Sie kontrollieren Ihre Bitcoins." #: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." -msgstr "" +msgstr "Sie sollten keine Gebühren welche höher als {{maxFeeRecommended}} satoshis/byte sind wählen." #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." -msgstr "" +msgstr "Sie müssen sich wieder anmelden um ihre BitPay-Karte aufzufüllen." #: www/views/preferencesNotifications.html:34 msgid "You'll receive email notifications about payments sent and received from your wallets." @@ -3516,12 +3590,12 @@ msgstr "Sie erhalten E-Mail Benachrichtigungen über gesendete und empfangen Zah #: www/views/bitpayCard.html:50 msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." -msgstr "" +msgstr "Ihre BitPay-Karte ist bereit. Fügen sie Mittel auf Ihre Karte hinzu um diesen bei Geschäften und Geldautomaten weltweit zu benutzen." #: www/views/mercadoLibre.html:57 #: www/views/mercadoLibreCards.html:6 msgid "Your Gift Cards" -msgstr "" +msgstr "Ihre Geschenkkarten" #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" @@ -3533,7 +3607,7 @@ msgstr "Ihre Bitcoin-Wallet ist fertig!" #: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." -msgstr "" +msgstr "Ihre Gebühren sind niedriger als empfohlen." #: www/views/feedback/send.html:42 msgid "Your ideas, feedback, or comments" @@ -3554,11 +3628,11 @@ msgstr "Passwort" #: www/views/buyAmazon.html:102 msgid "Your purchase could not be completed" -msgstr "" +msgstr "Ihre Bestellung konnte nicht abgeschlossen werden" #: www/views/buyAmazon.html:105 msgid "Your purchase was added to the list of pending" -msgstr "" +msgstr "Ihre Bestellung wurde in die Liste der anstehenden Bestellungen hinzugefügt" #: www/views/onboarding/backupRequest.html:10 msgid "Your wallet is never saved to cloud storage or standard device backups." @@ -3580,7 +3654,7 @@ msgstr "[Guthaben versteckt]" #: www/views/walletDetails.html:141 #: www/views/walletDetails.html:61 msgid "[Scanning Funds]" -msgstr "" +msgstr "[Mittel werden durchsucht...]" #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" @@ -3604,15 +3678,15 @@ msgstr "in Arbeit..." #: www/views/cashScan.html:57 msgid "recovery tool." -msgstr "" +msgstr "Wiederherstellungstool." #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" -msgstr "" +msgstr "{{amountStr}} für Amazon.com Geschenkkarte" #: src/js/controllers/buyMercadoLibre.js:237 msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" -msgstr "" +msgstr "{{amountStr}} für Mercado Livre Brazil Geschenkkarte" #: www/views/preferencesBwsUrl.html:21 msgid "{{appName}} depends on Bitcore Wallet Service (BWS) for blockchain information, networking and Copayer synchronization. The default configuration points to https://bws.bitpay.com (BitPay's public BWS instance)." @@ -3624,7 +3698,7 @@ msgstr "{{fee}} wird für Bitcoin-Netzwerkgebühren abgezogen werden." #: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" -msgstr "" +msgstr "{{tx.txp[wallet.id].feeRatePerStr}} von dem sendenden Betrag" #: www/views/walletDetails.html:218 msgid "{{updatingTxHistoryProgress}} transactions downloaded" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} Transaktionen werden heruntergeladen" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-von-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Community" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Erkunden Sie Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash Spiele" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Neuigkeiten" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Mining-Pool" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Werkzeuge" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Bitcoin Preis-Charts" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Kostenloses Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Ihre Bitcoin-Wallet ist fertig!" + diff --git a/i18n/po/es-ES/template-es-ES.po b/i18n/po/es-ES/template-es-ES.po index e062b4d1e..9338825d0 100644 --- a/i18n/po/es-ES/template-es-ES.po +++ b/i18n/po/es-ES/template-es-ES.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Spanish\n" "Language: es\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Comprar & Vender Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Comprar Bitcoin" @@ -619,10 +620,14 @@ msgstr "Conectando a Glidera..." msgid "Connection reset by peer" msgstr "Conexión re establecida" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contactos" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Direcciones frecuentes guardadas" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Continuar" @@ -823,7 +828,7 @@ msgstr "Crear billetera compartida" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Crear billetera" @@ -2533,6 +2538,14 @@ msgstr "Buscar transacciones" msgid "Search or enter bitcoin address" msgstr "Buscar o introducir dirección bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Portapapeles" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Portapapeles vacío" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Buscar transacciones" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Enviar por correo electrónico" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Enviar desde" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Enviar a" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Pegar portapapeles" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Pegar dirección" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Billetera a billetera" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Escanear código QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "¡Envía Bitcoin más rápido!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "¡Envía Bitcoin más rápido!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Guardar las direcciones que usas frecuentemente y envía Bitcoin en un click" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Añadie tu primer contacto" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Tu billetera Bitcoin está vacía" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Para empezar, compra Bitcoin Cash (BCH) o Bitcoin Core (BTC), o comparte tu dirección." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Puedes recibir bitcoin desde cualquier billetera o servicio." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Para empezar, necesitarás crear una billetera y obtener bitcoins." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Comprar Bitcoin ahora" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Ver mi dirección" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Enviar la máxima cantidad" @@ -3030,7 +3104,7 @@ msgstr "Para empezar, compra bitcoin o comparte tu dirección. Puedes recibir bi #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Para empezar, necesitarás crear una billetera y obtener bitcoins." +msgstr "Para empezar, necesitarás crear una billetera y obtener Bitcoins." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transacciones descargadas" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-de-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift - Cambia BTC a BCH" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Comunidad" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Reddit de Bitcoin Cash" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Twitter de Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Explora Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Juegos de Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Noticias" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Minería en la nube" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Herramientas" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Gráfica de precios Bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash gratis" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "¡Tus billeteras Bitcoin están listas!" + diff --git a/i18n/po/fa/template-fa.po b/i18n/po/fa/template-fa.po index aa4b76892..148ac9147 100644 --- a/i18n/po/fa/template-fa.po +++ b/i18n/po/fa/template-fa.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Persian\n" "Language: fa\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "خرید & فروش بیتکوین" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "خرید بیتکوین" @@ -619,10 +620,14 @@ msgstr "در حال اتصال به Glidera..." msgid "Connection reset by peer" msgstr "ریست اتصال توسط همکار" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "تماسها" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "آدرس های ذخیره شده که اغلب مورد استفاده قرار گرفته اند" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "ادامه" @@ -823,7 +828,7 @@ msgstr "ایجاد کیف پول مشترک" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "ایجاد کیف پول بیتکوین" @@ -2533,6 +2538,14 @@ msgstr "جستجوی تراکنش ها" msgid "Search or enter bitcoin address" msgstr "جستجو و یا وارد کردن آدرس بیتکوین" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "کلیپ بورد" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "کلیپ بورد شما خالی است" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "جستجوی تراکنش ها" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "ارسال توسط ایمیل" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "ارسال از" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "ارسال به" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "جای گذاری کلیپ برد" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "جای گذاری آدرس" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "انتقال پول از کیف پول به کیف پول" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "اسکن کد QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "ارسال سریع تر بیت کوین!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "ارسال سریع تر بیت کوین!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "ذخیره آدرس های اغلب استفاده شده و ارسال بیت کوین به آنها تنها با یک ضربه" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "اولین تماس خود اضافه کنید" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "کیف پول بیت کوین شما خالی است" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "برای شروع، Bitcoin Cash (BCH) یا Bitcoin Core (BTC) بخرید و یا آدرس خود را به اشتراک بگذارید." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "شما می توانید از هر کیف پول و یا خدمات بیت کوین دریافت کنید." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "برای شروع، شما نیاز دارید که یک کیف پول ایجاد کنید و مقداری بیتکوین تهیه کنید." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "خرید بیت کوین همین الان" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "نمایش آدرس من" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "ارسال حداکثر مقدار" @@ -3030,7 +3104,7 @@ msgstr "برای شروع، بیتکوین بخرید و یا آدرس خود ر #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "برای شروع، شما نیاز دارید که یک کیف پول ایجاد کنید و مقداری بیتکوین تهیه کنید." +msgstr "برای شروع، شما نیاز دارید که یک کیف پول بیت کوین ایجاد کرده و مقداری بیت کوین تهیه کنید." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} تراکنش دانلود شد" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}} از {{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "جامعه" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "توییتر Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "کاوش Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash Games" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "اخبار" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "استخر استخراج" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "ابزارها" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "نمودارهای قیمت بیت کوین" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "رایگان Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "کیف پول بیت کوین شما آماده است!" + diff --git a/i18n/po/fr/template-fr.po b/i18n/po/fr/template-fr.po index f49b0fe55..d87845d47 100644 --- a/i18n/po/fr/template-fr.po +++ b/i18n/po/fr/template-fr.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: French\n" "Language: fr\n" -"PO-Revision-Date: 2018-07-04 09:26\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -79,7 +79,7 @@ msgstr "Numéro de compte" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "Transactions instantanées à bas frais" +msgstr "Instant transactions with low fees" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Acheter & vendre des bitcoins" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Acheter des bitcoins" @@ -619,10 +620,14 @@ msgstr "Connexion à Glidera..." msgid "Connection reset by peer" msgstr "Connexion réinitialisée par un pair" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contacts" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Adresses fréquemment utilisées enregistrées" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Continuer" @@ -823,7 +828,7 @@ msgstr "Créer un portefeuille partagé" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Créer un portefeuille bitcoin" @@ -993,7 +998,7 @@ msgstr "Autoriser les notifications" #: www/views/preferencesNotifications.html:33 msgid "Enable sound" -msgstr "Activer le son" +msgstr "Malayu" #: www/views/tab-scan.html:18 msgid "Enable the camera to get started." @@ -2533,6 +2538,14 @@ msgstr "Rechercher des transactions" msgid "Search or enter bitcoin address" msgstr "Recherchez ou saisissez une adresse bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Presse-papiers" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Votre presse-papiers est vide" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Rechercher des transactions" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Envoyer par e-mail" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Envoyer à partir de" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Envoyer à" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Coller le contenu du presse-papiers" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Coller l'adresse" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Transfert de portefeuille à portefeuille" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Numérisez le code QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envoyez des Bitcoin plus vite !" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envoyez des Bitcoin plus vite !" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Enregistrez les adresses fréquemment utilisées et envoyez-leurs des Bitcoins en un seul geste" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Ajoutez votre premier contact" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Votre portefeuille Bitcoin est vide" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Pour commencer, achetez des Bitcoins Cash (BCH) ou des Bitcoins Core (BTC), ou partagez votre adresse." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Vous pouvez recevoir des Bitcoins de n'importe quel portefeuille ou service." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Pour commencer, vous aurez besoin de créer un portefeuille bitcoin et d'obtenir quelques bitcoins." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Acheter des Bitcoins maintenant" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Afficher mon adresse" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Envoyer le montant maximal" @@ -3030,7 +3104,7 @@ msgstr "Pour commencer, achetez des bitcoins ou partagez votre adresse. Vous pou #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Pour commencer, vous aurez besoin de créer un portefeuille bitcoin et d'obtenir quelques bitcoins." +msgstr "Pour commencer, vous aurez besoin de créer un portefeuille Bitcoin et d'obtenir quelques bitcoins." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transactions téléchargées" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-sur-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Communauté" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Reddit Bitcoin Cash" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Twitter Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Explorez Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Jeux Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Nouvelles" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Coopératives de mineurs" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Outils" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Graphiques du prix du Bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash Gratuit" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Vos portefeuilles bitcoin sont prêts !" + diff --git a/i18n/po/it/template-it.po b/i18n/po/it/template-it.po index 1fcaea030..62738bf84 100644 --- a/i18n/po/it/template-it.po +++ b/i18n/po/it/template-it.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Italian\n" "Language: it\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Comprare & Vendere Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Acquista Bitcoin" @@ -619,10 +620,14 @@ msgstr "Connessione a Glidera..." msgid "Connection reset by peer" msgstr "Connessione ripristinata dall'utente" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contatti" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Indirizzi più utilizzati salvati" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Continua" @@ -823,7 +828,7 @@ msgstr "Creare portafoglio condiviso" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Creare portafoglio bitcoin" @@ -2533,6 +2538,14 @@ msgstr "Cerca Transazioni" msgid "Search or enter bitcoin address" msgstr "Cerca o inserisci indirizzo bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Appunti" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Gli appunti sono vuoti" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Ricerca transazioni" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Invia via email" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Inviata Da" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Invia a" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Incolla appunti" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Incolla indirizzo" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Trasferimento da portafoglio a portafoglio" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Scansiona codice QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Invia Bitcoin più velocemente!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Invia Bitcoin più velocemente!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Salva gli indirizzi più utilizzati e invia Bitcoin con un solo tocco" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Aggiungi il tuo primo contatto" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Il tuo portafoglio Bitcoin è vuoto" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Per iniziare, acquista Bitcoin Cash (BCH) o Bitcoin Core (BTC), oppure condividi il tuo indirizzo." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Puoi ricevere Bitcoin da qualsiasi portafoglio o servizio." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Per iniziare, è necessario che tu crei un portafoglio bitcoin e ottenerne qualcuno." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Acquista subito Bitcoin" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Visualizza il mio indirizzo" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Inviare l'importo massimo" @@ -3030,7 +3104,7 @@ msgstr "Per iniziare, acquista bitcoin o condividi il tuo indirizzo. È possibil #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Per iniziare, è necessario che tu crei un portafoglio bitcoin e ottenerne qualcuno." +msgstr "Per iniziare, devi creare un portafoglio bitcoin e ottenere qualche bitcoin." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transazioni scaricate" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-di-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Community" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash su Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com su Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Esplora Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Giochi Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "News" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Mining Pool" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Strumenti" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Tabella prezzi Bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash gratis" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "I tuoi portafogli Bitcoin sono pronti!" + diff --git a/i18n/po/ja/template-ja.po b/i18n/po/ja/template-ja.po index e7df99c1b..30668ce9d 100644 --- a/i18n/po/ja/template-ja.po +++ b/i18n/po/ja/template-ja.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Japanese\n" "Language: ja\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -406,7 +406,7 @@ msgstr "ビットコインは世界で
最も安全な仮想通貨。" #: www/views/preferencesFee.html:11 msgid "Bitcoin transactions include a fee collected by miners on the network." -msgstr "ビットコインの取引はネットワークの安全を守る「採掘者」と呼ばれる者達に送る手数料が含まれます。" +msgstr "ビットコインの取引はネットワークの安全を守る「採掘者」と呼ばれる方達に送る手数料が含まれます。" #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" @@ -439,6 +439,7 @@ msgid "Buy & Sell Bitcoin" msgstr "ビットコインの購入&売却" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "ビットコインを購入" @@ -621,10 +622,14 @@ msgstr "Glidera に接続中…" msgid "Connection reset by peer" msgstr "接続がピアによってリセットされました" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "連絡先" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "よく使う保存済みのアドレス" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "続ける" @@ -825,7 +830,7 @@ msgstr "共有ウォレットを作成" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "ビットコインウォレット作成" @@ -995,7 +1000,7 @@ msgstr "プッシュ通知を有効化" #: www/views/preferencesNotifications.html:33 msgid "Enable sound" -msgstr "音を有効にする" +msgstr "サウンドを有効にする" #: www/views/tab-scan.html:18 msgid "Enable the camera to get started." @@ -1348,7 +1353,7 @@ msgstr "始めよう" #: www/views/addressbook.html:20 msgid "Get started by adding your first one." -msgstr "初めての連絡先を追加しましょう。" +msgstr "連絡先を追加しましょう。" #: src/js/services/onGoingProcess.js:23 msgid "Getting fee levels..." @@ -1873,7 +1878,7 @@ msgstr "バックアップは非常に重要です!" #: www/views/addressbook.html:19 msgid "No contacts yet" -msgstr "連絡先が無い" +msgstr "連絡先はありません" #: www/views/preferencesLogs.html:16 msgid "No entries for this log level" @@ -2006,7 +2011,7 @@ msgstr "今一度周りの環境をよく見てみましょう。隠しカメラ #: src/js/services/popupService.js:72 #: www/views/modals/chooseFeeLevel.html:6 msgid "OK" -msgstr "わかりました" +msgstr "OK" #: www/views/modals/tx-status.html:12 #: www/views/modals/tx-status.html:24 @@ -2535,6 +2540,14 @@ msgstr "取引を検索" msgid "Search or enter bitcoin address" msgstr "連絡先検索かビットコインアドレスを指定" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "クリップボード" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "クリップボードは空です" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "取引を検索" @@ -2593,9 +2606,70 @@ msgid "Send by email" msgstr "メールで送信" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "ここから送金" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "送金先:" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "クリップボードからペースト" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "アドレスをペースト" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "ウォレット間送金" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "QRコードを読み取る" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "ビットコイン送金をより高速に!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "ビットコイン送金をより高速に!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "よく使うアドレスを保存すればワンタップでビットコインを送金できます" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "最初の連絡先を追加" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "ビットコインウォレットが空です" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "始めるには、Bitcoin Cash (BCH) または Bitcoin Core (BTC) を購入するか、あなたのアドレスを共有してください。" + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "どのウォレットやサービスからでもビットコインを受け取ることができます。" + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "はじめに、ビットコインウォレットを作成し、ビットコインを入手する必要があります。" + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "今すぐビットコインを購入" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "自分のアドレスを表示" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "全残高を送金" @@ -3450,7 +3524,7 @@ msgstr "送金発生時のメール通知はどのメールアドレスで受け #: www/views/addresses.html:19 msgid "Why?" -msgstr "なぜ?" +msgstr "なぜですか?" #: www/views/feedback/rateApp.html:10 msgid "Would you be willing to rate {{appName}} in the app store?" @@ -3642,3 +3716,51 @@ msgstr "{{updatingTxHistoryProgress}} 個の取引ダウンロード済み" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}} の{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "コミュニティ" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Bitcoin.com を参照" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash ゲーム" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "ニュース" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "マイニングプール" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "ツール" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "ビットコインの価格チャート" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "無料 Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "ビットコインウォレットが完成しました!" + diff --git a/i18n/po/ko/template-ko.po b/i18n/po/ko/template-ko.po index cee1be7d1..6285496ae 100644 --- a/i18n/po/ko/template-ko.po +++ b/i18n/po/ko/template-ko.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Korean\n" "Language: ko\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "비트코인 구매 & 판매" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "비트코인 구매" @@ -619,10 +620,14 @@ msgstr "Glidera에 연결 중..." msgid "Connection reset by peer" msgstr "연결 실패" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "연락처" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "자주 사용하는 저장된 주소" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "계속하기" @@ -823,7 +828,7 @@ msgstr "공유 지갑 만들기" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "비트코인 지갑 만들기" @@ -2533,6 +2538,14 @@ msgstr "거래 기록 검색하기" msgid "Search or enter bitcoin address" msgstr "비트코인 주소를 찾거나 작성" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "클립보드" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "클립보드가 비어 있습니다" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "거래 기록 검색" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "이메일로 보내기" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "출처" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "보내기" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "클립보드 붙여넣기" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "주소 붙여넣기" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "지갑 간 전송" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "QR 코드 스캔" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "비트코인 속성 전송!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "비트코인 속성 전송!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "자주 사용하는 주소를 저장하고 한 번의 탭으로 저장된 주소에 비트코인 전송" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "첫 번째 연락처 추가" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "비트코인 지갑이 비어 있습니다" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "시작하려면 비트코인 캐시(BCH) 또는 비트코인 코어(BTC)를 구매하거나 주소를 공유합니다." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "지갑 또는 서비스에서 비트코인을 받을 수 있습니다." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "시작하시기 위해선 비트코인 지갑을 생성하시거나 비트코인을 구매하세요." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "지금 비트코인 구매" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "내 주소 보기" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "최대 수량 보내기" @@ -3030,7 +3104,7 @@ msgstr "시작하시려면 비트코인을 구매하시거나 주소를 등록 #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "시작하시기 위해선 비트코인 지갑을 생성하시거나 비트코인을 구매하세요." +msgstr "시작하려면 비트코인 지갑을 만들고 비트코인을 구매하십시오." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} 거래 내역 다운로드 완료" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.n}}의 {{wallet.m}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "커뮤니티" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "BCH Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com 트위터" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Bitcoin.com 탐색" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "BCH 게임" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "소식" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "채굴 풀" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "도구" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "비트코인 가격 차트" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "무료 BCH" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "비트코인 지갑이 완료되었습니다!" + diff --git a/i18n/po/nl/template-nl.po b/i18n/po/nl/template-nl.po index 754c41e21..b66d0b892 100644 --- a/i18n/po/nl/template-nl.po +++ b/i18n/po/nl/template-nl.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Dutch\n" "Language: nl\n" -"PO-Revision-Date: 2018-07-04 09:26\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Koop & Verkoop Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Bitcoin kopen" @@ -619,10 +620,14 @@ msgstr "Verbinding maken met Glidera..." msgid "Connection reset by peer" msgstr "Verbinding is gereset door peer" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contactpersonen" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Opgeslagen veelgebruikte adressen" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Ga verder" @@ -823,7 +828,7 @@ msgstr "Gedeelde Portemonnee Aanmaken" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Bitcoin portemonnee aanmaken" @@ -2533,6 +2538,14 @@ msgstr "Doorzoek Transacties" msgid "Search or enter bitcoin address" msgstr "Zoeken of bitcoin adres invullen" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Klembord" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Uw klembord is leeg" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Doorzoek transacties" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Verstuur via email" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Verzenden vanuit" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Verzenden naar" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Klembord plakken" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Adres plakken" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Portemonnee overdracht" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Scan QR-code" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Stuur Bitcoin sneller!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Stuur Bitcoin sneller!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Sla veelgebruikte adressen op en verstuur ze Bitcoin met een druk op de knop" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Uw eerste contact toevoegen" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Uw Bitcoin portemonnee is leeg" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Om aan de slag te gaan, koop Bitcoin Cash (BCH) of Bitcoin Core (BTC), of deel uw adres." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "U kunt Bitcoin ontvangen van elke portemonnee of dienst." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Om aan de slag te gaan zult u een bitcoin portemonnee moeten aanmaken en wat bitcoin moeten verkrijgen." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Bitcoin kopen" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Toon mijn adres" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Verzend maximale hoeveelheid" @@ -3030,7 +3104,7 @@ msgstr "Om aan de slag te gaan, koop bitcoin of deel uw adres. U kunt bitcoin on #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Om aan de slag te gaan zult u een bitcoin portemonnee moeten aanmaken en wat bitcoin moeten verkrijgen." +msgstr "Om aan de slag te gaan, zult u een Bitcoin-portemonnee aan moeten maken en wat Bitcoin moeten verkrijgen." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transacties gedownload" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-van-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Community" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Bitcoin.com verkennen" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash spellen" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Nieuws" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Mining Pool" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Hulpmiddelen" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Bitcoin prijs grafieken" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Gratis Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Uw bitcoin portemonnee is gereed!" + diff --git a/i18n/po/pl/template-pl.po b/i18n/po/pl/template-pl.po index ce075e00b..ef9888ca5 100644 --- a/i18n/po/pl/template-pl.po +++ b/i18n/po/pl/template-pl.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Polish\n" "Language: pl\n" -"PO-Revision-Date: 2018-07-04 03:58\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -79,7 +79,7 @@ msgstr "Numer konta" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "" +msgstr "Natychmiastowe transakcje z niskimi prowizjami" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -363,12 +363,12 @@ msgstr "Adres bitcoin" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "Salda Bitcoin Cash (BCH)" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" -msgstr "" +msgstr "Wsparcie Bitcoin Cash" #: www/views/tab-home.html:98 #: www/views/tab-settings.html:115 @@ -384,7 +384,7 @@ msgstr "Polityka prowizji sieci bitcoin" #: www/views/tab-home.html:83 #: www/views/tab-settings.html:107 msgid "Bitcoin Core Wallets" -msgstr "" +msgstr "Portfele Bitcoin Core" #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Kup & sprzedaj bitcoiny" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Kup bitcoiny" @@ -619,10 +620,14 @@ msgstr "Łączenie z Gildera..." msgid "Connection reset by peer" msgstr "Połączenie zostało zresetowane" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Kontakty" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Zapisane często używane adresy" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Dalej" @@ -823,7 +828,7 @@ msgstr "Utwórz współdzielony portfel" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Utwórz portfel bitcoin" @@ -977,7 +982,7 @@ msgstr "Puste adresy osiągnęły limit. Nowe adresy nie mogą być generowane." #: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." -msgstr "" +msgstr "Włącz tworzenie i obsługę portfela Bitcoin Cash w aplikacji." #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." @@ -993,7 +998,7 @@ msgstr "Włącz powiadomienia" #: www/views/preferencesNotifications.html:33 msgid "Enable sound" -msgstr "" +msgstr "Włącz dźwięk" #: www/views/tab-scan.html:18 msgid "Enable the camera to get started." @@ -1001,7 +1006,7 @@ msgstr "Włącz kamerę aby rozpocząć." #: www/views/tab-settings.html:49 msgid "Enabled" -msgstr "" +msgstr "Włączono" #: src/js/services/walletService.js:1047 #: src/js/services/walletService.js:1062 @@ -1586,7 +1591,7 @@ msgstr "Nieprawidłowy adres" #: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient confirmed funds" -msgstr "" +msgstr "Niewystarczające potwierdzone środki" #: src/js/controllers/topup.js:165 #: src/js/controllers/topup.js:177 @@ -1931,7 +1936,7 @@ msgstr "Nie BIP44 portfel" #: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" -msgstr "" +msgstr "Niewspierane portfele BTC" #: src/js/services/feeService.js:12 msgid "Normal" @@ -2004,7 +2009,7 @@ msgstr "Nadszedł czas, aby sprawdzić swoje otoczenie. Czy jesteś w pobliżu o #: src/js/services/popupService.js:72 #: www/views/modals/chooseFeeLevel.html:6 msgid "OK" -msgstr "" +msgstr "OK" #: www/views/modals/tx-status.html:12 #: www/views/modals/tx-status.html:24 @@ -2023,7 +2028,7 @@ msgstr "O nie!" #: src/js/controllers/buyMercadoLibre.js:306 msgid "Ok" -msgstr "" +msgstr "Ok" #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." @@ -2053,7 +2058,7 @@ msgstr "Otwórz projekt GitHub" #: src/js/controllers/bitpayCard.js:123 #: src/js/controllers/tx-details.js:192 msgid "Open Explorer" -msgstr "" +msgstr "Otwórz Explorer" #: www/views/tab-scan.html:22 msgid "Open Settings" @@ -2069,7 +2074,7 @@ msgstr "Otwórz stronę internetową" #: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" -msgstr "" +msgstr "Otworzyć bitcoincash.org?" #: src/js/controllers/cashScan.js:18 msgid "Open the recovery tool." @@ -2240,7 +2245,7 @@ msgstr "Proszę wybrać plik kopii zapasowej" #: www/views/bitpayCard.html:81 msgid "Pre-Auth Holds" -msgstr "" +msgstr "Wstrzymanie przedautoryzacyjne" #: www/views/tab-settings.html:40 msgid "Preferences" @@ -2353,7 +2358,7 @@ msgstr "Otrzymaj" #: www/views/customAmount.html:44 msgid "Receive in" -msgstr "" +msgstr "Otrzymaj w" #: www/views/includes/walletHistory.html:24 #: www/views/tx-details.html:18 @@ -2511,7 +2516,7 @@ msgstr "Proszę zeskanować linie papilarne" #: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "Skanuj portfele w poszukiwaniu Bitcoin Cash" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." @@ -2533,6 +2538,14 @@ msgstr "Szukaj transakcji" msgid "Search or enter bitcoin address" msgstr "Wyszukaj lub wpisz adres bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Schowek" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Schowek jest pusty" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Szukaj transakcji" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Wyślij przez e-mail" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Wyślij z" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Wyślij do" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Wklej ze schowka" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Wklej adres" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Transfer z portfela do portfela" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Zeskanuj kod QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Przesyłaj Bitcoiny szybciej!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Przesyłaj Bitcoiny szybciej!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Zapisz często używane adresy i wyślij im Bitcoin za pomocą jednego dotknięcia" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Dodaj swój pierwszy kontakt" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Twój portfel jest pusty" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Aby zacząć, kup Bitcoin Cash (BCH) lub Bitcoin Core (BTC), albo udostępnij swój adres." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Bitcoiny można odbierać z dowolnego portfela lub usługi." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Aby rozpocząć należy utworzyć portfel i dostać trochę bitcoinów." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Kup Bitcoin teraz" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Pokaż mój adres" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Wyślij całą kwotę" @@ -2764,7 +2838,7 @@ msgstr "Przesuń, aby wysłać" #: www/views/cashScan.html:56 msgid "Some of your wallets are not eligible for Bitcoin Cash support. You can try to access BCH funds from these wallets using the" -msgstr "" +msgstr "Niektóre z twoich portfeli nie kwalifikują się do wsparcia Bitcoin Cash. Dostęp do środków BCH z tych portfeli można spróbować uzyskać, korzystając z" #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 @@ -2785,7 +2859,7 @@ msgstr "Wymagane hasło wypłat" #: www/views/walletDetails.html:173 msgid "Spending this balance will need significant Bitcoin network fees" -msgstr "" +msgstr "Wydanie tego salda będzie wymagało znacznych opłat sieciowych Bitcoin" #: www/views/tab-send.html:28 msgid "Start sending bitcoin" @@ -2810,7 +2884,7 @@ msgstr "Super Ekonomiczna" #: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" -msgstr "" +msgstr "Wsparcie Bitcoin Cash" #: www/views/paperWallet.html:7 msgid "Sweep" @@ -2860,7 +2934,7 @@ msgstr "Warunki użytkowania" #: www/views/tab-create-personal.html:118 #: www/views/tab-import-phrase.html:68 msgid "Testnet" -msgstr "" +msgstr "Testnet" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" @@ -2999,7 +3073,7 @@ msgstr "Ta kluczowa fraza został utworzona przy użyciu hasła. Aby odzyskać p #: www/views/tx-details.html:91 msgid "This transaction amount is too small compared to current Bitcoin network fees. Spending these funds will need a Bitcoin network fee cost comparable to the funds itself." -msgstr "" +msgstr "Ta kwota transakcji jest zbyt mała w porównaniu z obecnymi opłatami sieci Bitcoin. Wydanie tych środków będzie wymagało opłaty sieciowej Bitcoin, która jest porównywalna do kosztów samych funduszy." #: www/views/tx-details.html:87 msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" @@ -3034,15 +3108,15 @@ msgstr "Aby rozpocząć należy utworzyć portfel i dostać trochę bitcoinów." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" -msgstr "" +msgstr "Aby móc wykonać czynność {{reason}}, musisz przedtem dodać swoje konto BitPay – {{email}}" #: src/js/services/onGoingProcess.js:48 msgid "Top up in progress..." -msgstr "" +msgstr "Doładowanie w trakcie..." #: src/js/controllers/topup.js:206 msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" -msgstr "" +msgstr "Doładuj o {{amountStr}} kartę debetową ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 #: www/views/buyMercadoLibre.html:60 @@ -3061,7 +3135,7 @@ msgstr "Liczba współwłaścicieli portfela" #: www/views/addresses.html:81 msgid "Total wallet inputs" -msgstr "" +msgstr "Dane wejściowe portfela łącznie" #: src/js/services/fingerprintService.js:63 #: src/js/services/fingerprintService.js:68 @@ -3200,7 +3274,7 @@ msgstr "Zobacz zasady użytkowania" #: src/js/controllers/bitpayCard.js:122 #: src/js/controllers/tx-details.js:191 msgid "View Transaction on Explorer.Bitcoin.com" -msgstr "" +msgstr "Zobacz transakcję na Explorer.Bitcoin.com" #: src/js/controllers/tab-home.js:148 msgid "View Update" @@ -3212,7 +3286,7 @@ msgstr "Zobacz na blockchainie" #: www/views/mercadoLibre.html:26 msgid "Visit mercadolivre.com.br →" -msgstr "" +msgstr "Odwiedź mercadolivre.com.br →" #: www/views/walletDetails.html:182 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." @@ -3274,7 +3348,7 @@ msgstr "Informacje o portfelu" #: www/views/addresses.html:76 msgid "Wallet Inputs" -msgstr "" +msgstr "Dane wejściowe portfela" #: www/views/join.html:26 msgid "Wallet Invitation" @@ -3328,7 +3402,7 @@ msgstr "Portfel już istnieje" #: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" -msgstr "" +msgstr "Portfel już w aplikacji {{appName}}" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3508,7 +3582,7 @@ msgstr "Nie należy ustawiać opłatę wyższą niż {{maxFeeRecommended}} satos #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." -msgstr "" +msgstr "Musisz zalogować się ponownie, aby wypełnić swoją kartę BitPay." #: www/views/preferencesNotifications.html:34 msgid "You'll receive email notifications about payments sent and received from your wallets." @@ -3580,7 +3654,7 @@ msgstr "[Balans ukryty]" #: www/views/walletDetails.html:141 #: www/views/walletDetails.html:61 msgid "[Scanning Funds]" -msgstr "" +msgstr "[Skanowanie środków]" #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" @@ -3612,7 +3686,7 @@ msgstr "{{amountStr}} dla karty upominkowej Amazon.com" #: src/js/controllers/buyMercadoLibre.js:237 msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" -msgstr "" +msgstr "{{amountStr}} na karcie podarunkowej Mercado Livre Brazil" #: www/views/preferencesBwsUrl.html:21 msgid "{{appName}} depends on Bitcore Wallet Service (BWS) for blockchain information, networking and Copayer synchronization. The default configuration points to https://bws.bitpay.com (BitPay's public BWS instance)." @@ -3624,7 +3698,7 @@ msgstr "{{fee}} zostanie potrącone jako prowizja sieci bitcoin." #: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" -msgstr "" +msgstr "{{tx.txp[wallet.id].feeRatePerStr}} wysyłanej kwoty" #: www/views/walletDetails.html:218 msgid "{{updatingTxHistoryProgress}} transactions downloaded" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} transakcje pobrane" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-z-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Społeczność" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Reddit Bitcoin Cash" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Twitter Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Poznaj Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Gry Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Aktualności" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Pula kopalni" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Narzędzia" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Wykresy kursu Bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Darmowa Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Twoje portfele Bitcoin są gotowe!" + diff --git a/i18n/po/pt-BR/template-pt-BR.po b/i18n/po/pt-BR/template-pt-BR.po index c83259bf9..6879b52c4 100644 --- a/i18n/po/pt-BR/template-pt-BR.po +++ b/i18n/po/pt-BR/template-pt-BR.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Comprar & Vender Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Comprar Bitcoin" @@ -619,10 +620,14 @@ msgstr "A conectar ao Glidera..." msgid "Connection reset by peer" msgstr "Ligação redefinida pelo mesmo nível" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Contactos" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Salvou os endereços usados com frequência" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Continuar" @@ -823,7 +828,7 @@ msgstr "Criar carteira partilhada" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Criar carteira bitcoin" @@ -2533,6 +2538,14 @@ msgstr "Procurar transações" msgid "Search or enter bitcoin address" msgstr "Procure ou digite o endereço bitcoin" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Área de transferência" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "A sua área de transferência está vazia" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Procurar transações" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Enviar por E-mail" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Enviar De" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Enviar para" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Colar na área de trabalho" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Colar endereço" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Transferência de carteira para carteira" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Digitalizar o código QR" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envie Bitcoin mais rápido!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Envie Bitcoin mais rápido!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Salvar endereços usados com frequência e enviar Bitcoin com apenas um toque" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Adicionar o seu primeiro contato" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Sua carteira de Bitcoin está vazia" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Para começar, compre Bitcoin Cash (BCH) ou Bitcoin Core (BTC) ou compartilhe o seu endereço." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Você pode receber bitcoin de qualquer carteira ou serviço." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Para começar, você precisa criar uma carteira de bitcoins e obter alguns bitcoins." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Compre Bitcoin agora" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Mostrar meu endereço" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Quantidade Máxima de envio" @@ -3030,7 +3104,7 @@ msgstr "Para começar, compre bitcoins ou compartilhe seu endereço. Você pode #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "Para começar, você precisa criar uma carteira de bitcoins e obter alguns bitcoins." +msgstr "Para começar, você precisará criar uma carteira e obter algum bitcoin." #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3636,3 +3710,51 @@ msgstr "Transações de {{updatingTxHistoryProgress}} transferidas" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-de-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Comunidade" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Twitter Bitcoin.com" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Explore Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Jogos Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Notícias" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Pool de mineração" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Ferramentas" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Gráficos de preço do Bitcoin" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash grátis" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "As suas carteiras de Bitcoin estão prontas!" + diff --git a/i18n/po/ru/template-ru.po b/i18n/po/ru/template-ru.po index 074fa9937..a9d5d2970 100644 --- a/i18n/po/ru/template-ru.po +++ b/i18n/po/ru/template-ru.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Russian\n" "Language: ru\n" -"PO-Revision-Date: 2018-07-04 09:27\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -79,7 +79,7 @@ msgstr "Номер учётной записи" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "Мгновенные транзакции с низкой оплатой" +msgstr "Мгновенные транзакции с низкой комиссией" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "Купить & продать биткойн" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "Купить биткойн" @@ -619,10 +620,14 @@ msgstr "Подключение к Glidera..." msgid "Connection reset by peer" msgstr "Соединение сброшено другой стороной" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "Контакты" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Сохраненные часто используемые адреса" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "Продолжить" @@ -823,7 +828,7 @@ msgstr "Создать общий кошелёк" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "Создать биткойн-кошелёк" @@ -2533,6 +2538,14 @@ msgstr "Поиск транзакций" msgid "Search or enter bitcoin address" msgstr "Найти или ввести биткойн-адрес" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "Буфер обмена" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "Буфер обмена пуст" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "Поиск транзакций" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "Отправить на email" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "Отправить от" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "Получатель" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "Вставить из буфера обмена" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "Вставить адрес" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "Перевод с кошелька на кошелек" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "Сканировать QR код" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Отправляйте биткойны еще быстрее!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "Отправляйте биткойны еще быстрее!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "Сохраняйте часто используемые адреса кошельков и отправляйте на них биткойны одним нажатием" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "Добавить первый контакт" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "Ваш кошелёк пуст" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "Чтобы начать работу, купите Bitcoin Cash (BCH) или Bitcoin Core (BTC), или поделитесь вашим адресом." + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "Вы можете получать биткойны с любого кошелька или сервиса." + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "Чтобы начать работу, вам нужно создать кошелёк и получить биткойн." + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "Купить биткойны сейчас" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "Показать мой адрес" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "Отправить макс. сумму" @@ -3636,3 +3710,51 @@ msgstr "{{updatingTxHistoryProgress}} транзакций загружено" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-из-{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "Сообщество" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "Обзор Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Игры Bitcoin Cash" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "Новости" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "Пул для майнинга" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "Инструменты" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "Динамика курса биткойна" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "Bitcoin Cash бесплатно" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "Ваши кошельки готовы!" + diff --git a/i18n/po/sv-SE/template-sv-SE.po b/i18n/po/sv-SE/template-sv-SE.po index bc496d6d5..7ffdda946 100644 --- a/i18n/po/sv-SE/template-sv-SE.po +++ b/i18n/po/sv-SE/template-sv-SE.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Swedish\n" "Language: sv\n" -"PO-Revision-Date: 2018-07-04 03:58\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "" @@ -619,10 +620,14 @@ msgstr "" msgid "Connection reset by peer" msgstr "" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "" @@ -823,7 +828,7 @@ msgstr "" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "" @@ -2533,6 +2538,14 @@ msgstr "" msgid "Search or enter bitcoin address" msgstr "" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "" + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "" + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "" + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "" @@ -3636,3 +3710,51 @@ msgstr "" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "" + diff --git a/i18n/po/vi/template-vi.po b/i18n/po/vi/template-vi.po index d965b6ee8..ef9db2029 100644 --- a/i18n/po/vi/template-vi.po +++ b/i18n/po/vi/template-vi.po @@ -11,11 +11,11 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Vietnamese\n" "Language: vi\n" -"PO-Revision-Date: 2018-07-04 03:58\n" +"PO-Revision-Date: 2018-07-27 08:44\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" -msgstr "(Đáng tin cậy)" +msgstr "(Tin cậy)" #: www/views/includes/txp.html:23 #: www/views/includes/walletHistory.html:64 @@ -28,7 +28,7 @@ msgstr "* A payment proposal can be deleted if 1) you are the creator, and no ot #: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" -msgstr "{{btx.feeRateStr}} của giao dịch" +msgstr "- {{btx.feeRateStr}} of the transaction" #: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" @@ -41,7 +41,9 @@ msgstr "Xếp hạng 5 sao giúp chúng tôi để {{appName}} đến tay nhiề #: www/views/mercadoLibre.html:18 #: www/views/mercadoLibre.html:40 msgid "Only redeemable on Mercado Livre (Brazil)" -msgstr "Only redeemable on Mercado Livre (Brazil)" +msgstr "Only redeemable on \n" +"Mercado Livre (Brazil) #\n\n" +"2" #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 @@ -54,7 +56,8 @@ msgstr "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size all #: src/js/controllers/confirm.js:395 msgid "A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided." -msgstr "A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided." +msgstr "Tổng cộng {{amountBelowFeeStr}} đã bị loại trừ. Số tiền này đến từ UTXOs nhỏ hơn chi phí mạng cung cấp.#\n" +"1" #: src/js/controllers/preferencesAbout.js:6 #: www/views/tab-settings.html:156 @@ -79,7 +82,7 @@ msgstr "Account Number" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "" +msgstr "2" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -124,338 +127,339 @@ msgstr "Add account" #: www/views/tab-create-personal.html:62 #: www/views/tab-create-shared.html:91 msgid "Add an optional password to secure the recovery phrase" -msgstr "" +msgstr "Add a password option to allow a secure cluster" #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "Thêm như một liên hệ" #: src/js/controllers/confirm.js:424 msgid "Add description" -msgstr "" +msgstr "Thêm mô tả" #: www/views/topup.html:6 msgid "Add funds" -msgstr "" +msgstr "Nạp tiền" #: src/js/services/bitpayAccountService.js:78 msgid "Add this BitPay account ({{email}})?" -msgstr "" +msgstr "Thêm BitPay ({{email}}) tài khoản này?" #: www/views/add.html:3 msgid "Add wallet" -msgstr "" +msgstr "Thêm ví" #: www/views/addressbook.view.html:26 #: www/views/customAmount.html:28 #: www/views/modals/paypro.html:24 msgid "Address" -msgstr "" +msgstr "Địa chỉ" #: www/views/addressbook.html:6 #: www/views/tab-settings.html:13 msgid "Address Book" -msgstr "" +msgstr "Sổ địa chỉ" #: www/views/preferencesInformation.html:41 msgid "Address Type" -msgstr "" +msgstr "Loại địa chỉ" #: www/views/addresses.html:64 msgid "Addresses With Balance" -msgstr "" +msgstr "Địa chỉ với số dư" #: www/views/tab-settings.html:149 msgid "Advanced" -msgstr "" +msgstr "Nâng cao" #: www/views/advancedSettings.html:3 msgid "Advanced Settings" -msgstr "" +msgstr "Cài đặt nâng cao" #: www/views/bitpayCard.html:62 msgid "All" -msgstr "" +msgstr "Tất cả" #: www/views/allAddresses.html:3 msgid "All Addresses" -msgstr "" +msgstr "Tất cả địa chỉ" #: www/views/modals/wallet-balance.html:18 msgid "All of your bitcoin wallet balance may not be available for immediate spending." -msgstr "" +msgstr "Tất cả số dư ví bitcoin của bạn có thể không có sẵn cho chi tiêu ngay lập tức." #: www/views/tab-receive.html:25 msgid "All signing devices must be added to this multisig wallet before bitcoin addresses can be created." -msgstr "" +msgstr "All contract device will be added to this multisig before the bitcoin address has been created." #: www/views/tab-scan.html:21 msgid "Allow Camera Access" -msgstr "" +msgstr "Allow camera access" #: www/views/onboarding/notifications.html:7 msgid "Allow notifications" -msgstr "" +msgstr "Allow notification" #: www/views/onboarding/disclaimer.html:14 msgid "Almost done! Let's review." -msgstr "" +msgstr "Most as completed! We see review." #: www/views/preferencesAltCurrency.html:4 #: www/views/tab-settings.html:79 msgid "Alternative Currency" -msgstr "" +msgstr "Money Currency instead" #: src/js/controllers/buyAmazon.js:98 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "Amazon.com is not available at this time. Please try again again." #: www/views/amount.html:44 #: www/views/customAmount.html:34 #: www/views/includes/output.html:7 msgid "Amount" -msgstr "" +msgstr "Quantity" #: src/js/services/bwcError.js:110 msgid "Amount below minimum allowed" -msgstr "" +msgstr "Maximum amount of the minimum amount" #: src/js/controllers/confirm.js:216 msgid "Amount too big" -msgstr "" +msgstr "Amount too large" #: www/views/includes/walletHistory.html:31 msgid "Amount too low to spend" -msgstr "" +msgstr "Amount too low for standard" #: src/js/controllers/tab-home.js:147 msgid "An update to this app is available. For your security, please update to the latest version." -msgstr "" +msgstr "Hotel have a Update for this application. To preserve your password, please please update the latest version." #: www/views/backupWarning.html:14 msgid "Anyone with your backup phrase can access or spend your bitcoin." -msgstr "" +msgstr "Każdy, kto ma Twoją kluczową là một trong những điều tuyệt vời nhất." #: www/views/addresses.html:94 msgid "Approximate Bitcoin network fee to transfer wallet's balance (with normal priority)" -msgstr "" +msgstr "La taxa approssimativa della rete Bitcoin cho mỗi lần gửi tiền theo yêu cầu của bạn" #: www/views/backupWarning.html:10 msgid "Are you being watched?" -msgstr "" +msgstr "Chúng tôi vigilen?" #: src/js/controllers/preferencesExternal.js:15 msgid "Are you being watched? Anyone with your recovery phrase can access or spend your bitcoin." -msgstr "" +msgstr "You are tracking? Bất cứ ai có thể phục hồi từ bạn, bạn có thể truy cập hoặc bitcoin chi tiêu của bạn." #: src/js/controllers/copayers.js:56 msgid "Are you sure you want to cancel and delete this wallet?" -msgstr "" +msgstr "Are you sure you want to cancel and remove this video?" #: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" -msgstr "" +msgstr "Bạn có chắc chắn muốn xóa địa chỉ liên hệ này không?" #: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" -msgstr "" +msgstr "Are you sure you want to delete this wallet?" #: src/js/controllers/modals/txpDetails.js:154 msgid "Are you sure you want to reject this transaction?" -msgstr "" +msgstr "Are you sure you want to reject this transaction?" #: src/js/controllers/modals/txpDetails.js:171 msgid "Are you sure you want to remove this transaction?" -msgstr "" +msgstr "Are you sure you want to remove this transaction?" #: src/js/controllers/onboarding/backupRequest.js:23 msgid "Are you sure you want to skip it?" -msgstr "" +msgstr "Are you sure you want to skip it?" #: www/views/modals/bitpay-card-confirmation.html:4 msgid "Are you sure you would like to log out of your BitPay Card account?" -msgstr "" +msgstr "Bạn có chắc chắn muốn đăng xuất khỏi tài khoản Thẻ BitPay của mình không?" #: src/js/controllers/preferencesBitpayCard.js:7 #: src/js/controllers/preferencesBitpayServices.js:20 msgid "Are you sure you would like to remove your BitPay Card ({{lastFourDigits}}) from this device?" -msgstr "" +msgstr "Are you sure you would like to remove your BitPay Card ({{lastFourDigits}}) from this device?" #: www/views/includes/walletInfo.html:10 msgid "Auditable" -msgstr "" +msgstr "Auditable" #: www/views/modals/wallet-balance.html:42 msgid "Available" -msgstr "" +msgstr "Available" #: www/views/includes/available-balance.html:3 msgid "Available Balance" -msgstr "" +msgstr "Available Balance" #: www/views/modals/chooseFeeLevel.html:24 #: www/views/preferencesFee.html:15 msgid "Average confirmation time" -msgstr "" +msgstr "Average confirmation time" #: www/views/join.html:143 #: www/views/tab-create-personal.html:113 #: www/views/tab-create-shared.html:142 #: www/views/tab-import-phrase.html:51 msgid "BIP32 path for address derivation" -msgstr "" +msgstr "Đường dẫn BIP32 cho dẫn xuất địa chỉ" #: www/views/cashScan.html:25 msgid "BTC wallets" -msgstr "" +msgstr "Ví BTC" #: www/views/preferences.html:34 msgid "Backup" -msgstr "" +msgstr "Backup" #: www/views/includes/backupNeededPopup.html:7 msgid "Backup Needed" -msgstr "" +msgstr "Backup Needed" #: src/js/controllers/lockSetup.js:87 msgid "Backup all livenet wallets before using this function" -msgstr "" +msgstr "Backup all livenet wallets before using this function" #: src/js/controllers/cashScan.js:64 #: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 msgid "Backup needed" -msgstr "" +msgstr "Cần sao lưu" #: www/views/includes/backupNeededPopup.html:9 msgid "Backup now" -msgstr "" +msgstr "Sao lưu ngay" #: www/views/onboarding/backupRequest.html:11 #: www/views/tab-export-file.html:89 msgid "Backup wallet" -msgstr "" +msgstr "Backup wallet" #: src/js/controllers/lockSetup.js:84 msgid "Backup your wallet before using this function" -msgstr "" +msgstr "Backup your wallet before using this function" #: src/js/services/profileService.js:446 msgid "Bad wallet invitation" -msgstr "" +msgstr "Bad wallet invitation" #: www/views/preferencesInformation.html:102 msgid "Balance By Address" -msgstr "" +msgstr "Balance By Address" #: www/views/includes/confirmBackupPopup.html:7 msgid "Be sure to store your recovery phrase in a secure place. If this app is deleted, your money cannot be recovered without it." -msgstr "" +msgstr "Hãy chắc chắn lưu trữ cụm từ khôi phục của bạn ở một nơi an toàn. Nếu ứng dụng này bị xóa, tiền của bạn không thể được phục hồi mà không có nó." #: www/views/preferencesBitpayServices.html:9 msgid "BitPay Visa® Cards" -msgstr "" +msgstr "BitPay Visa & reg; thẻ" #: www/views/addressbook.add.html:38 #: www/views/includes/incomingDataMenu.html:29 msgid "Bitcoin Address" -msgstr "" +msgstr "Bitcoin Address" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "Bitcoin Cash (BCH) Balances" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" -msgstr "" +msgstr "Bitcoin Cash Support" #: www/views/tab-home.html:98 #: www/views/tab-settings.html:115 msgid "Bitcoin Cash Wallets" -msgstr "" +msgstr "Bitcoin Cash Wallets" #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" -msgstr "" +msgstr "Bitcoin Network Fee Policy" #: www/views/tab-home.html:83 #: www/views/tab-settings.html:107 msgid "Bitcoin Core Wallets" -msgstr "" +msgstr "Bitcoin Core Wallets" #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" -msgstr "" +msgstr "Bitcoin cash Payment" #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." -msgstr "" +msgstr "Bitcoin is a currency." #: www/views/onboarding/disclaimer.html:15 msgid "Bitcoin is different – it cannot be safely held with a bank or web service." -msgstr "" +msgstr "–." #: www/views/onboarding/tour.html:18 msgid "Bitcoin is secure,
digital money." -msgstr "" +msgstr "Bitcoin là an toàn,
tiền kỹ thuật số." #: www/views/preferencesFee.html:11 msgid "Bitcoin transactions include a fee collected by miners on the network." -msgstr "" +msgstr "Bitcoin transactions include a fee collected by miners on the network." #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" -msgstr "" +msgstr "Bought {{amountUnitStr}}" #: www/views/modals/txp-details.html:36 msgid "Broadcast Payment" -msgstr "" +msgstr "Broadcast Payment" #: src/js/controllers/modals/txpDetails.js:64 #: src/js/controllers/tx-details.js:81 msgid "Broadcasted" -msgstr "" +msgstr "Broadcasted" #: src/js/services/onGoingProcess.js:11 msgid "Broadcasting transaction" -msgstr "" +msgstr "Broadcasting transaction" #: www/views/unsupported.html:6 msgid "Browser unsupported" -msgstr "" +msgstr "Browser unsupported" #: www/views/buyAmazon.html:5 #: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "Buy" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" -msgstr "" +msgstr "Buy & Sell Bitcoin" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" -msgstr "" +msgstr "Buy Bitcoin" #: www/views/mercadoLibre.html:22 #: www/views/mercadoLibre.html:50 msgid "Buy a Gift Card" -msgstr "" +msgstr "Buy a Gift Card" #: src/js/controllers/buyAmazon.js:334 msgid "Buy from" -msgstr "" +msgstr "Buy from" #: src/js/services/onGoingProcess.js:40 msgid "Buying Bitcoin..." -msgstr "" +msgstr "Mua Bitcoin..." #: src/js/services/onGoingProcess.js:12 msgid "Calculating fee" -msgstr "" +msgstr "Phí tính toán" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 @@ -474,65 +478,65 @@ msgstr "" #: www/views/modals/bitpay-card-confirmation.html:8 #: www/views/modals/confirmation.html:13 msgid "Cancel" -msgstr "" +msgstr "Hủy bỏ" #: www/views/copayers.html:36 msgid "Cancel invitation" -msgstr "" +msgstr "Hủy lời mời" #: src/js/controllers/onboarding/tour.js:52 msgid "Cannot Create Wallet" -msgstr "" +msgstr "Không thể tạo Wallet" #: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" -msgstr "" +msgstr "Cannot join the same wallet more that once" #: www/views/includes/bitpayCardsCard.html:2 msgid "Cards" -msgstr "" +msgstr "Cards" #: www/views/modals/paypro.html:30 msgid "Certified by" -msgstr "" +msgstr "Certified by" #: www/views/preferencesExternal.html:19 msgid "Check installation and retry." -msgstr "" +msgstr "Check installation and retry." #: www/views/tab-import-file.html:4 msgid "Choose a backup file from your computer" -msgstr "" +msgstr "Chọn tệp sao lưu từ máy tính của bạn" #: www/views/modals/wallets.html:9 msgid "Choose your destination wallet" -msgstr "" +msgstr "Choose your destination wallet" #: www/views/modals/wallets.html:10 msgid "Choose your source wallet" -msgstr "" +msgstr "Chọn ví nguồn của bạn" #: www/views/backup.html:61 msgid "Clear" -msgstr "" +msgstr "Clear" #: www/views/preferencesHistory.html:24 msgid "Clear cache" -msgstr "" +msgstr "Clear cache" #: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" -msgstr "" +msgstr "Click to accept" #: src/js/controllers/confirm.js:367 msgid "Click to pay" -msgstr "" +msgstr "Click to pay" #: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" -msgstr "" +msgstr "Click to send" #: www/views/customAmount.html:4 #: www/views/modals/mercadolibre-card-details.html:3 @@ -542,28 +546,28 @@ msgstr "" #: www/views/modals/wallet-balance.html:3 #: www/views/modals/wallets.html:5 msgid "Close" -msgstr "" +msgstr "Close" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "" +msgstr "Coin" #: www/views/preferences.html:22 msgid "Color" -msgstr "" +msgstr "Màu" #: www/views/preferencesAbout.html:21 msgid "Commit hash" -msgstr "" +msgstr "Commit hash" #: www/views/preferences.html:49 msgid "Complete the backup process to use this option" -msgstr "" +msgstr "Complete the backup process to use this option" #: www/views/bitpayCard.html:93 msgid "Completed" -msgstr "" +msgstr "Completed" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 @@ -575,95 +579,99 @@ msgstr "" #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" -msgstr "" +msgstr "Confirm" #: www/views/modals/terms.html:26 #: www/views/onboarding/disclaimer.html:44 msgid "Confirm & Finish" -msgstr "" +msgstr "Confirm & Finish" #: www/views/buyAmazon.html:90 msgid "Confirm purchase" -msgstr "" +msgstr "Confirm purchase" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" -msgstr "" +msgstr "Confirm your PIN" #: src/js/services/walletService.js:1033 msgid "Confirm your new spending password" -msgstr "" +msgstr "Confirm your new spending password" #: www/views/tx-details.html:98 msgid "Confirmations" -msgstr "" +msgstr "Confirmations" #: www/views/bitpayCard.html:68 #: www/views/modals/wallet-balance.html:61 msgid "Confirming" -msgstr "" +msgstr "Xác nhận" #: www/views/bitpayCardIntro.html:37 msgid "Connect my BitPay Card" -msgstr "" +msgstr "Kết nối thẻ BitPay của tôi" #: src/js/services/onGoingProcess.js:13 msgid "Connecting to Coinbase..." -msgstr "" +msgstr "Connecting to Coinbase..." #: src/js/services/onGoingProcess.js:14 msgid "Connecting to Glidera..." -msgstr "" +msgstr "Đang kết nối với Glidera ..." #: src/js/services/bwcError.js:53 msgid "Connection reset by peer" -msgstr "" +msgstr "Đặt lại kết nối theo ngang hàng" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" -msgstr "" +msgstr "Contacts" + +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "Save the regular usage" #: www/views/onboarding/notifications.html:9 msgid "Continue" -msgstr "" +msgstr "Continue" #: www/views/preferencesLanguage.html:26 msgid "Contribute Translations" -msgstr "" +msgstr "Contribute Translations" #: src/js/controllers/confirm.js:130 msgid "Copay only supports Bitcoin Cash using new version numbers addresses" -msgstr "" +msgstr "Copay chỉ hỗ trợ Bitcoin Cash bằng cách sử dụng số phiên bản mới" #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" -msgstr "" +msgstr "Copayer already in this wallet" #: src/js/services/bwcError.js:77 msgid "Copayer already voted on this spend proposal" -msgstr "" +msgstr "Coper is this option" #: src/js/services/bwcError.js:107 msgid "Copayer data mismatch" -msgstr "" +msgstr "Dữ liệu Copayer không khớp" #: www/views/includes/walletActivity.html:2 msgid "Copayer joined" -msgstr "" +msgstr "Copayer joined" #: www/views/preferencesInformation.html:94 msgid "Copayer {{$index}}" -msgstr "" +msgstr "Copayer {{$index}}" #: src/js/controllers/copayers.js:79 #: src/js/controllers/export.js:193 #: www/views/includes/copyToClipboard.html:4 msgid "Copied to clipboard" -msgstr "" +msgstr "Sao chép vào clipboard" #: www/views/tab-export-file.html:94 msgid "Copy this text as it is to a safe place (notepad or email)" -msgstr "" +msgstr "Copy this text as it is to a safe place (notepad or email)" #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 @@ -671,35 +679,35 @@ msgstr "" #: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" -msgstr "" +msgstr "Sao chép vào clipboard" #: src/js/controllers/buyMercadoLibre.js:102 msgid "Could not access Gift Card Service" -msgstr "" +msgstr "Could not access Gift Card Service" #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" -msgstr "" +msgstr "Could not access the wallet at the server. Please check:" #: src/js/controllers/buyAmazon.js:102 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "Could not access to Amazon.com" #: src/js/services/profileService.js:511 msgid "Could not access wallet" -msgstr "" +msgstr "Could not access wallet" #: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" -msgstr "" +msgstr "Could not add message to imported wallet without shared encrypting key" #: src/js/controllers/modals/txpDetails.js:199 msgid "Could not broadcast payment" -msgstr "" +msgstr "Could not broadcast payment" #: src/js/services/bwcError.js:41 msgid "Could not build transaction" -msgstr "" +msgstr "Cannot build transaction" #: src/js/services/walletService.js:854 msgid "Could not create address" @@ -823,7 +831,7 @@ msgstr "" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "" @@ -916,7 +924,7 @@ msgstr "" #: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" -msgstr "" +msgstr "Chi tiết" #: src/js/controllers/lockSetup.js:9 #: src/js/controllers/tab-settings.js:65 @@ -2533,6 +2541,14 @@ msgstr "" msgid "Search or enter bitcoin address" msgstr "" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "" @@ -2591,9 +2607,70 @@ msgid "Send by email" msgstr "" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "" + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "" + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "" + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "" @@ -3636,3 +3713,51 @@ msgstr "" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "" + diff --git a/i18n/po/zh-CN/template-zh-CN.po b/i18n/po/zh-CN/template-zh-CN.po index 8c274b798..eb8304e89 100644 --- a/i18n/po/zh-CN/template-zh-CN.po +++ b/i18n/po/zh-CN/template-zh-CN.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: emilold\n" "Language-Team: Chinese Simplified\n" "Language: zh\n" -"PO-Revision-Date: 2018-07-04 03:57\n" +"PO-Revision-Date: 2018-07-27 08:43\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -79,7 +79,7 @@ msgstr "帐号" #: www/views/tab-home.html:61 msgid "Instant transactions with low fees" -msgstr "" +msgstr "以较低费用进行即时交易" #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" @@ -363,12 +363,12 @@ msgstr "比特币地址" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "Bitcoin Cash (BCH) 余额" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" -msgstr "" +msgstr "Bitcoin Cash 支持" #: www/views/tab-home.html:98 #: www/views/tab-settings.html:115 @@ -384,7 +384,7 @@ msgstr "比特币网络手续费策略" #: www/views/tab-home.html:83 #: www/views/tab-settings.html:107 msgid "Bitcoin Core Wallets" -msgstr "" +msgstr "Bitcoin Core 钱包" #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" @@ -437,6 +437,7 @@ msgid "Buy & Sell Bitcoin" msgstr "购买或出售比特币" #: www/views/tab-send.html:35 +#: src/js/services/buyAndSellService.js:26 msgid "Buy Bitcoin" msgstr "购买比特币" @@ -619,10 +620,14 @@ msgstr "正在连接 Glidera..." msgid "Connection reset by peer" msgstr "连接被对方重置" -#: www/views/tab-send.html:45 +#: www/views/tab-send.html:85 msgid "Contacts" msgstr "联系人" +#: www/views/tab-send.html:86 +msgid "Saved frequently used addresses" +msgstr "保存的常用地址" + #: www/views/onboarding/notifications.html:9 msgid "Continue" msgstr "继续" @@ -653,7 +658,7 @@ msgstr "Copayer 加入" #: www/views/preferencesInformation.html:94 msgid "Copayer {{$index}}" -msgstr "" +msgstr "Copayer {{$index}}" #: src/js/controllers/copayers.js:79 #: src/js/controllers/export.js:193 @@ -823,7 +828,7 @@ msgstr "创建自己的免费钱包" #: www/views/onboarding/tour.html:51 #: www/views/tab-home.html:75 -#: www/views/tab-send.html:36 +#: www/views/tab-send.html:75 msgid "Create bitcoin wallet" msgstr "创建比特币的钱包" @@ -977,7 +982,7 @@ msgstr "已达到空地址限制。无法生成新的地址。" #: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." -msgstr "" +msgstr "在应用内启用 Bitcoin Cash 创建和操作。" #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." @@ -993,7 +998,7 @@ msgstr "启用推式通知" #: www/views/preferencesNotifications.html:33 msgid "Enable sound" -msgstr "" +msgstr "启用声音" #: www/views/tab-scan.html:18 msgid "Enable the camera to get started." @@ -1001,7 +1006,7 @@ msgstr "使该摄像机开始。" #: www/views/tab-settings.html:49 msgid "Enabled" -msgstr "" +msgstr "已启用" #: src/js/services/walletService.js:1047 #: src/js/services/walletService.js:1062 @@ -1586,7 +1591,7 @@ msgstr "网络地址不正确" #: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient confirmed funds" -msgstr "" +msgstr "确认的资金不足" #: src/js/controllers/topup.js:165 #: src/js/controllers/topup.js:177 @@ -2011,7 +2016,7 @@ msgstr "好的" #: www/views/modals/tx-status.html:36 #: www/views/modals/tx-status.html:46 msgid "OKAY" -msgstr "" +msgstr "确定" #: www/views/modals/terms.html:15 msgid "Official English Disclaimer" @@ -2053,7 +2058,7 @@ msgstr "打开 GitHub 项目" #: src/js/controllers/bitpayCard.js:123 #: src/js/controllers/tx-details.js:192 msgid "Open Explorer" -msgstr "" +msgstr "打开浏览器" #: www/views/tab-scan.html:22 msgid "Open Settings" @@ -2069,7 +2074,7 @@ msgstr "打开网站" #: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" -msgstr "" +msgstr "打开 bitcoincash.org?" #: src/js/controllers/cashScan.js:18 msgid "Open the recovery tool." @@ -2511,7 +2516,7 @@ msgstr "请扫描你的指纹" #: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "扫描您的 Bitcoin Cash 钱包" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." @@ -2533,6 +2538,14 @@ msgstr "搜索交易" msgid "Search or enter bitcoin address" msgstr "搜索或输入比特币地址" +#: src/js/controllers/tab-send.js:28 +msgid "Clipboard" +msgstr "剪贴板" + +#: src/js/controllers/tab-send.js:29 +msgid "Your Clipboard is empty" +msgstr "您的剪贴板为空" + #: www/views/modals/search.html:16 msgid "Search transactions" msgstr "搜索交易" @@ -2591,9 +2604,70 @@ msgid "Send by email" msgstr "通过电邮发送" #: src/js/controllers/confirm.js:177 +#: src/js/controllers/tab-send.js:94 msgid "Send from" msgstr "从发送" +#: src/js/controllers/tab-send.js:77 +msgid "Send to" +msgstr "发送到" + +#: www/views/tab-send.html:20 +msgid "Paste Clipboard" +msgstr "粘贴剪贴板" + +#: www/views/tab-send.html:21 +msgid "Paste Address" +msgstr "粘贴地址" + +#: www/views/tab-send.html:27 +msgid "Wallet to Wallet Transfer" +msgstr "钱包转账" + +#: www/views/tab-send.html:35 +msgid "Scan QR Code" +msgstr "扫描二维码" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "更快地发送比特币!" + +#: www/views/tab-send.html:46 +msgid "Send Bitcoin faster!" +msgstr "更快地发送比特币!" + +#: www/views/tab-send.html:50 +msgid "Save frequently used addresses and send them Bitcoin in just one tap" +msgstr "保存常用地址,只需点击一下即可将比特币发送到这些地址" + +#: www/views/tab-send.html:55 +msgid "Add your first contact" +msgstr "添加您的第一个联系人" + +#: www/views/tab-send.html:65 +msgid "Your Bitcoin wallet is empty" +msgstr "您的比特币钱包为空" + +#: www/views/tab-send.html:69 +msgid "To get started, buy Bitcoin Cash (BCH) or Bitcoin Core (BTC), or share your address." +msgstr "首先,购买 Bitcoin Cash (BCH) 或 Bitcoin Core (BTC),或者共享您的地址。" + +#: www/views/tab-send.html:70 +msgid "You can receive bitcoin from any wallet or service." +msgstr "您可以从任何钱包或服务接收比特币。" + +#: www/views/tab-send.html:72 +msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." +msgstr "若要开始,您将需要创建一个比特币的钱包,并获得一些比特币。" + +#: www/views/tab-send.html:74 +msgid "Buy Bitcoin now" +msgstr "立即购买比特币" + +#: www/views/tab-send.html:76 +msgid "Show my address" +msgstr "显示我的地址" + #: www/views/includes/itemSelector.html:8 msgid "Send max amount" msgstr "发送最大数量" @@ -2810,7 +2884,7 @@ msgstr "超级经济" #: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" -msgstr "" +msgstr "支持 Bitcoin Cash" #: www/views/paperWallet.html:7 msgid "Sweep" @@ -2860,7 +2934,7 @@ msgstr "使用条款" #: www/views/tab-create-personal.html:118 #: www/views/tab-import-phrase.html:68 msgid "Testnet" -msgstr "" +msgstr "测试网" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" @@ -3030,7 +3104,7 @@ msgstr "若要开始,请买比特币或共享您的地址。你可以从任何 #: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "若要开始,您将需要创建一个比特币的钱包,并获得一些比特币。" +msgstr "首先,您需要创建一个比特币钱包,并获得一些比特币。" #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" @@ -3200,7 +3274,7 @@ msgstr "查看服务条款" #: src/js/controllers/bitpayCard.js:122 #: src/js/controllers/tx-details.js:191 msgid "View Transaction on Explorer.Bitcoin.com" -msgstr "" +msgstr "在 Explorer.Bitcoin.com 上查看交易" #: src/js/controllers/tab-home.js:148 msgid "View Update" @@ -3596,7 +3670,7 @@ msgstr "我" #: www/views/addressbook.add.html:32 msgid "name@example.com" -msgstr "" +msgstr "name@example.com" #: www/views/preferencesHistory.html:15 msgid "preparing..." @@ -3636,3 +3710,51 @@ msgstr "下载的 {{updatingTxHistoryProgress}} 交易" msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}{{wallet.n}}" +#: src/js/services/shapeshiftService.js:8 +msgid "Shapeshift" +msgstr "Shapeshift" + +#: www/views/includes/community.html:3 +msgid "Community" +msgstr "社区" + +#: src/js/services/communityService.js:40 +msgid "Bitcoin Cash Reddit" +msgstr "Bitcoin Cash Reddit" + +#: src/js/services/communityService.js:47 +msgid "Bitcoin.com Twitter" +msgstr "Bitcoin.com Twitter" + +#: www/views/includes/nextSteps.html:3 +msgid "Explore Bitcoin.com" +msgstr "探索 Bitcoin.com" + +#: src/js/services/bitcoincomService.js:21 +msgid "Bitcoin Cash Games" +msgstr "Bitcoin Cash 游戏" + +#: src/js/services/bitcoincomService.js:28 +msgid "News" +msgstr "新闻" + +#: src/js/services/bitcoincomService.js:35 +msgid "Mining Pool" +msgstr "矿池" + +#: src/js/services/bitcoincomService.js:42 +msgid "Tools" +msgstr "工具" + +#: src/js/services/bitcoincomService.js:49 +msgid "Bitcoin Price Charts" +msgstr "比特币价格图表" + +#: src/js/services/bitcoincomService.js:56 +msgid "Free Bitcoin Cash" +msgstr "免费的 Bitcoin Cash" + +#: www/views/tab-home.html:30 +msgid "Your Bitcoin Wallets are ready!" +msgstr "您的比特币钱包已就绪!" + diff --git a/www/index.html b/www/index.html index 4c73317e3..ecc2d923c 100644 --- a/www/index.html +++ b/www/index.html @@ -11,9 +11,8 @@ - Bitcoin.com Wallet - Bitcoin.com Wallet - - + Bitcoin.com Wallet + @@ -31,7 +30,7 @@ - + From d122048a7b7d25a3934ef5557a778bfcff46317e Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 27 Jul 2018 17:46:19 +0900 Subject: [PATCH 04/93] Increment version --- app-template/bitcoincom/appConfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app-template/bitcoincom/appConfig.json b/app-template/bitcoincom/appConfig.json index fefcb9a4f..238f38002 100644 --- a/app-template/bitcoincom/appConfig.json +++ b/app-template/bitcoincom/appConfig.json @@ -24,9 +24,9 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "4.13.0", - "fullVersion": "4.13-rc1", - "androidVersion": "413000", + "version": "4.13.1", + "fullVersion": "4.13-rc2", + "androidVersion": "413100", "_extraCSS": "", "_enabledExtensions": { "coinbase": false, From a952edfe692ee0c82c873544d0a4a7e21a075315 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Tue, 31 Jul 2018 17:40:58 +0200 Subject: [PATCH 05/93] border-radius fix --- src/sass/buttons.scss | 1 + src/sass/views/includes/clickToAccept.scss | 1 + src/sass/views/includes/slideToAccept.scss | 3 +++ 3 files changed, 5 insertions(+) diff --git a/src/sass/buttons.scss b/src/sass/buttons.scss index a8512ae64..e343f8fd2 100644 --- a/src/sass/buttons.scss +++ b/src/sass/buttons.scss @@ -55,6 +55,7 @@ .button { border-radius: 6px; &.button-full { + border-radius: 0; display: block; } &-green { diff --git a/src/sass/views/includes/clickToAccept.scss b/src/sass/views/includes/clickToAccept.scss index a38455ac3..cbc7a2c75 100644 --- a/src/sass/views/includes/clickToAccept.scss +++ b/src/sass/views/includes/clickToAccept.scss @@ -8,6 +8,7 @@ click-to-accept { .click-to-accept { &__button.button.button-primary.button-standard { + border-radius: 0; height: 100%; max-width: 9999px; width: 100%; diff --git a/src/sass/views/includes/slideToAccept.scss b/src/sass/views/includes/slideToAccept.scss index 75502c6a8..24775116d 100644 --- a/src/sass/views/includes/slideToAccept.scss +++ b/src/sass/views/includes/slideToAccept.scss @@ -13,6 +13,9 @@ slide-to-accept { } .slide { + .button { + border-radius: 0; + } &__listener { height: 100%; width: 100%; From 18e00e5fcadbb6243b3c00bf87e57f5f0bb56240 Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Wed, 1 Aug 2018 16:59:13 +0800 Subject: [PATCH 06/93] Renames amount directive to formatted-amount, fixes formatting for crypto --- src/js/directives/amount.js | 92 ------------------ src/js/directives/formattedAmount.js | 96 +++++++++++++++++++ .../{amount.html => formatted-amount.html} | 0 3 files changed, 96 insertions(+), 92 deletions(-) delete mode 100644 src/js/directives/amount.js create mode 100644 src/js/directives/formattedAmount.js rename www/views/includes/{amount.html => formatted-amount.html} (100%) diff --git a/src/js/directives/amount.js b/src/js/directives/amount.js deleted file mode 100644 index 9622ca09d..000000000 --- a/src/js/directives/amount.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; - -/** - * @desc amount directive that can be used to display formatted financial values - * size-equal attribute is optional, defaults to false. - * @example fee = { - * value: 12.49382901, - * currency: 'BCH' - * } - * @example - * @example - */ -angular.module('bitcoincom.directives') - .directive('amount', [ - '$timeout', - function($timeout) { - return { - restrict: 'E', - scope: { - value: '=', - currency: '=', - sizeEqual: '=' - }, - templateUrl: 'views/includes/amount.html', - controller: ['$scope', function($scope) { - $scope.displaySizeEqual = typeof $scope.sizeEqual == 'undefined' ? false : true; - - var decimalPlaces = { - '0': ['BIF', 'CLP', 'DJF', 'GNF', 'ILS', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'], - '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], - '8': ['BCH', 'BTC'] - }; - - var numberWithCommas = function(x) { - return parseFloat(x).toLocaleString(); - }; - - var buildAmount = function(start, middle, end) { - $scope.start = start; - $scope.middle = middle; - $scope.end = end; - }; - - var getDecimalPlaces = function(currency) { - if (decimalPlaces['0'].indexOf($scope.currency.toUpperCase()) > -1) return '0'; - if (decimalPlaces['3'].indexOf($scope.currency.toUpperCase()) > -1) return '3'; - if (decimalPlaces['8'].indexOf($scope.currency.toUpperCase()) > -1) return '8'; - return '2'; - }; - - var formatNumbers = function(currency, value) { - switch (getDecimalPlaces(currency)) { - case '0': - var valueFormatted = numberWithCommas(Math.round(parseFloat(value))); - buildAmount(valueFormatted, '', ''); - break; - - case '2': - var valueProcessing = parseFloat(parseFloat(value).toFixed(2)); - var valueFormatted = numberWithCommas(valueProcessing); - buildAmount(valueFormatted, '', ''); - break; - - case '3': - var valueProcessing = parseFloat(parseFloat(value).toFixed(3)); - var valueFormatted = numberWithCommas(valueProcessing); - buildAmount(valueFormatted, '', ''); - break; - - case '8': - var valueFormatted = parseFloat(value).toFixed(8); - if (parseFloat(value) == 0) { - buildAmount('0', '', ''); - } else { - buildAmount(valueFormatted, '', ''); - var start = numberWithCommas(valueFormatted.slice(0, -5)); - var middle = valueFormatted.slice(-5, -2); - var end = valueFormatted.substr(valueFormatted.length - 2); - buildAmount(start, middle, end); - } - break; - } - } - - formatNumbers($scope.currency, $scope.value); - $scope.$watchGroup(['currency', 'value'], function() { - formatNumbers($scope.currency, $scope.value); - }); - }] - }; - } -]); \ No newline at end of file diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js new file mode 100644 index 000000000..ac74afd2b --- /dev/null +++ b/src/js/directives/formattedAmount.js @@ -0,0 +1,96 @@ +'use strict'; + +/** + * @desc amount directive that can be used to display formatted financial values + * size-equal attribute is optional, defaults to false. + * @example fee = { + * value: 12.49382901, + * currency: 'BCH' + * } + * @example + * @example + */ +angular.module('bitcoincom.directives') + .directive('formattedAmount', function(configService, uxLanguage) { + return { + restrict: 'E', + scope: { + value: '=', + currency: '=', + sizeEqual: '=' + }, + templateUrl: 'views/includes/formatted-amount.html', + controller: function($scope, $timeout) { + $scope.displaySizeEqual = !!$scope.sizeEqual; + + configService.whenAvailable(function(config) { + $timeout(function() { + var decimalPlaces = { + '0': ['BIF', 'CLP', 'DJF', 'GNF', 'ILS', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'], + '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], + '8': ['BCH', 'BTC'] + }; + var localizeNumbers = function(x, minimumFractionDigits = 0, useGrouping = true) { + return parseFloat(x).toLocaleString(uxLanguage.getCurrentLanguage(), { + minimumFractionDigits: minimumFractionDigits, + useGrouping: useGrouping + }); + }; + + var buildAmount = function(start, middle, end) { + $scope.start = start; + $scope.middle = middle; + $scope.end = end; + }; + + var getDecimalPlaces = function(currency) { + if (decimalPlaces['0'].indexOf($scope.currency.toUpperCase()) > -1) return '0'; + if (decimalPlaces['3'].indexOf($scope.currency.toUpperCase()) > -1) return '3'; + if (decimalPlaces['8'].indexOf($scope.currency.toUpperCase()) > -1) return '8'; + return '2'; + }; + + var formatNumbers = function(currency, value) { + switch (getDecimalPlaces(currency)) { + case '0': + var valueFormatted = localizeNumbers(Math.round(parseFloat(value))); + buildAmount(valueFormatted, '', ''); + break; + + case '3': + var valueProcessing = parseFloat(parseFloat(value).toFixed(3)); + var valueFormatted = localizeNumbers(valueProcessing); + buildAmount(valueFormatted, '', ''); + break; + + case '8': + var valueFormatted = parseFloat(value).toFixed(8); + if (parseFloat(value) == 0) { + buildAmount('0', '', ''); + } else { + var valueFormatted = localizeNumbers(valueFormatted, 8); + var start = valueFormatted.slice(0, -5); + var middle = valueFormatted.slice(-5, -2); + var end = valueFormatted.substr(valueFormatted.length - 2); + buildAmount(start, middle, end); + } + break; + + default: + var valueProcessing = parseFloat(parseFloat(value).toFixed(2)); + var valueFormatted = localizeNumbers(valueProcessing); + buildAmount(valueFormatted, '', ''); + break; + } + } + + formatNumbers($scope.currency, $scope.value); + $scope.$watchGroup(['currency', 'value'], function() { + formatNumbers($scope.currency, $scope.value); + }); + }); + }); + } + }; + } +); \ No newline at end of file diff --git a/www/views/includes/amount.html b/www/views/includes/formatted-amount.html similarity index 100% rename from www/views/includes/amount.html rename to www/views/includes/formatted-amount.html From 66c9cefb0c539ed1817b3ecb7674082a5eb9f924 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 3 Aug 2018 01:15:54 +0900 Subject: [PATCH 07/93] Fix the tx history --- src/js/services/walletService.js | 42 +++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 774fa0906..7ea98600f 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -343,21 +343,23 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim if (err) return cb(err); if (!txsFromServer.length) - return cb(); + return cb(null, []); - var res = lodash.takeWhile(txsFromServer, function(tx) { + /*var res = lodash.takeWhile(txsFromServer, function(tx) { return tx.txid != endingTxid; - }); + });*/ - return cb(null, res, res.length >= limit); + return cb(null, txsFromServer); }); }; var removeAndMarkSoftConfirmedTx = function(txs) { return lodash.filter(txs, function(tx) { - if (tx.confirmations >= root.SOFT_CONFIRMATION_LIMIT) - return tx; - tx.recent = true; + var isConfirm = (tx.confirmations >= root.SOFT_CONFIRMATION_LIMIT); + if (!isConfirm) { + tx.recent = true; + } + return isConfirm; }); } @@ -437,12 +439,14 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var endingTxid = confirmedTxs[0] ? confirmedTxs[0].txid : null; var endingTs = confirmedTxs[0] ? confirmedTxs[0].time : null; + $log.debug('Confirmed TXs. Got:' + confirmedTxs.length + '/' + txsFromLocal.length); + // First update progressFn(txsFromLocal, 0); wallet.completeHistory = txsFromLocal; function getNewTxs(newTxs, skip, next) { - getTxsFromServer(wallet, skip, endingTxid, requestLimit, function(err, res, shouldContinue) { + getTxsFromServer(wallet, skip, endingTxid, requestLimit, function(err, res) { if (err) { $log.warn(bwcError.msg(err, 'Server Error')); //TODO if (err instanceof errors.CONNECTION_ERROR || (err.message && err.message.match(/5../))) { @@ -454,7 +458,27 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim return next(err); } - newTxs = newTxs.concat(processNewTxs(wallet, lodash.compact(res))); + // Check if new txs are founds, if yes, lets investigate in the 50 next + // To be sure we are not missing txs by order (maybe a new tx is after the "endingTxid" + + var newDiscoveredTxs = res.filter(function (x) { + return confirmedTxs.filter(function (confX) { + return confX.txid == x.txid; + }).length == 0; + }); + + $log.debug('Discovering TXs. Got:' + newDiscoveredTxs.length); + + /*var newDiscoveredTxs = lodash.uniq(lodash.union(res, newTxs), function(x) { + return x.txid; + });*/ + + var shouldContinue = newDiscoveredTxs.length > 0; + + // If no new tx, no need to check + if (shouldContinue) { + newTxs = newTxs.concat(processNewTxs(wallet, lodash.compact(newDiscoveredTxs))); + } progressFn(newTxs.concat(txsFromLocal), newTxs.length); From 9c8ec7d3a21f890d73ac18dc84a82e76c99266fe Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 3 Aug 2018 01:17:01 +0900 Subject: [PATCH 08/93] Fix tx history --- src/js/services/walletService.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 7ea98600f..cb04ffbe3 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -345,10 +345,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim if (!txsFromServer.length) return cb(null, []); - /*var res = lodash.takeWhile(txsFromServer, function(tx) { - return tx.txid != endingTxid; - });*/ - return cb(null, txsFromServer); }); }; @@ -459,8 +455,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim } // Check if new txs are founds, if yes, lets investigate in the 50 next - // To be sure we are not missing txs by order (maybe a new tx is after the "endingTxid" - + // To be sure we are not missing txs by sorting (maybe a new tx is after the "endingTxid" var newDiscoveredTxs = res.filter(function (x) { return confirmedTxs.filter(function (confX) { return confX.txid == x.txid; @@ -469,10 +464,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim $log.debug('Discovering TXs. Got:' + newDiscoveredTxs.length); - /*var newDiscoveredTxs = lodash.uniq(lodash.union(res, newTxs), function(x) { - return x.txid; - });*/ - var shouldContinue = newDiscoveredTxs.length > 0; // If no new tx, no need to check From 9e5bd663a7c7146729de82d8d5772c2d361b3954 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 3 Aug 2018 10:37:49 +0900 Subject: [PATCH 09/93] Update appConfig.json --- app-template/bitcoincom/appConfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app-template/bitcoincom/appConfig.json b/app-template/bitcoincom/appConfig.json index 238f38002..084a586ce 100644 --- a/app-template/bitcoincom/appConfig.json +++ b/app-template/bitcoincom/appConfig.json @@ -24,9 +24,9 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "4.13.1", - "fullVersion": "4.13-rc2", - "androidVersion": "413100", + "version": "4.13.2", + "fullVersion": "4.13-rc3", + "androidVersion": "413200", "_extraCSS": "", "_enabledExtensions": { "coinbase": false, From 9f418583abd989dfbc98452cbdc46cfb036e1494 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Tue, 7 Aug 2018 16:11:47 +0200 Subject: [PATCH 10/93] formatted amount controller update + css + renames + included in views --- src/js/directives/formattedAmount.js | 29 +++++++++++++------ src/sass/components/components.scss | 2 +- .../{amount.scss => formatted-amount.scss} | 4 ++- www/views/amount.html | 12 ++++---- www/views/includes/formatted-amount.html | 2 +- www/views/includes/walletHistory.html | 5 ++-- www/views/includes/walletList.html | 8 +++-- www/views/tx-details.html | 8 ++--- www/views/walletDetails.html | 27 ++++++++--------- 9 files changed, 58 insertions(+), 39 deletions(-) rename src/sass/components/{amount.scss => formatted-amount.scss} (89%) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index ac74afd2b..3c787521a 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -15,16 +15,27 @@ angular.module('bitcoincom.directives') return { restrict: 'E', scope: { - value: '=', - currency: '=', - sizeEqual: '=' + value: '@', + currency: '@', + sizeEqual: '@' }, templateUrl: 'views/includes/formatted-amount.html', controller: function($scope, $timeout) { + if (!$scope.currency && $scope.value) { // If there is no currency available.. + // Try to extract currency from value.. + var currencySplit = $scope.value.split(" "); + if (currencySplit.length === 2) { + $scope.value = currencySplit[0]; + $scope.currency = currencySplit[1]; + } + } + $scope.displaySizeEqual = !!$scope.sizeEqual; configService.whenAvailable(function(config) { + console.log("WAIT!!"); $timeout(function() { + console.log("FIRED!!"); var decimalPlaces = { '0': ['BIF', 'CLP', 'DJF', 'GNF', 'ILS', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'], '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], @@ -44,9 +55,9 @@ angular.module('bitcoincom.directives') }; var getDecimalPlaces = function(currency) { - if (decimalPlaces['0'].indexOf($scope.currency.toUpperCase()) > -1) return '0'; - if (decimalPlaces['3'].indexOf($scope.currency.toUpperCase()) > -1) return '3'; - if (decimalPlaces['8'].indexOf($scope.currency.toUpperCase()) > -1) return '8'; + if (decimalPlaces['0'].indexOf(currency.toUpperCase()) > -1) return '0'; + if (decimalPlaces['3'].indexOf(currency.toUpperCase()) > -1) return '3'; + if (decimalPlaces['8'].indexOf(currency.toUpperCase()) > -1) return '8'; return '2'; }; @@ -59,7 +70,7 @@ angular.module('bitcoincom.directives') case '3': var valueProcessing = parseFloat(parseFloat(value).toFixed(3)); - var valueFormatted = localizeNumbers(valueProcessing); + var valueFormatted = localizeNumbers(valueProcessing, 3); buildAmount(valueFormatted, '', ''); break; @@ -78,11 +89,11 @@ angular.module('bitcoincom.directives') default: var valueProcessing = parseFloat(parseFloat(value).toFixed(2)); - var valueFormatted = localizeNumbers(valueProcessing); + var valueFormatted = localizeNumbers(valueProcessing, 2); buildAmount(valueFormatted, '', ''); break; } - } + }; formatNumbers($scope.currency, $scope.value); $scope.$watchGroup(['currency', 'value'], function() { diff --git a/src/sass/components/components.scss b/src/sass/components/components.scss index 0af55e5be..fb53508b0 100644 --- a/src/sass/components/components.scss +++ b/src/sass/components/components.scss @@ -8,4 +8,4 @@ @import "action-minor"; @import "expand-content"; @import "fee-summary"; -@import "amount.scss"; +@import "formatted-amount"; diff --git a/src/sass/components/amount.scss b/src/sass/components/formatted-amount.scss similarity index 89% rename from src/sass/components/amount.scss rename to src/sass/components/formatted-amount.scss index 363d38a20..6678572c9 100644 --- a/src/sass/components/amount.scss +++ b/src/sass/components/formatted-amount.scss @@ -1,4 +1,6 @@ -.amount { +.formatted-amount { + display: inline-block; + .start, .middle, .end, diff --git a/www/views/amount.html b/www/views/amount.html index 48637ec1b..ee969762a 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -16,11 +16,13 @@
- {{vm.amount || '0'}} {{vm.unit}} + + +
- {{vm.globalResult}} {{vm.unit}} +
- {{vm.alternativeAmount || '0.00'}} {{vm.alternativeUnit}} +
@@ -43,7 +45,7 @@
- Available Funds:{{vm.availableFunds}} + Available Funds:
@@ -53,7 +55,7 @@ diff --git a/www/views/includes/formatted-amount.html b/www/views/includes/formatted-amount.html index 361dededc..20063458d 100644 --- a/www/views/includes/formatted-amount.html +++ b/www/views/includes/formatted-amount.html @@ -1,4 +1,4 @@ -
{{start}}{{middle}}{{end}}{{currency}}
\ No newline at end of file diff --git a/www/views/includes/walletHistory.html b/www/views/includes/walletHistory.html index 4a40e93d8..296b35b1a 100644 --- a/www/views/includes/walletHistory.html +++ b/www/views/includes/walletHistory.html @@ -64,17 +64,16 @@ - (possible double spend) - {{btx.amountValueStr}} {{btx.amountUnitStr}} +
- {{btx.alternativeAmountStr}} +
diff --git a/www/views/includes/walletList.html b/www/views/includes/walletList.html index f7a061740..d5fb65302 100644 --- a/www/views/includes/walletList.html +++ b/www/views/includes/walletList.html @@ -7,8 +7,12 @@ Incomplete - {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} - {{wallet.status.totalBalanceAlternative ? wallet.status.totalBalanceAlternative : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} {{wallet.status.alternativeIsoCode}} + + + + + + Scanning funds... [Balance Hidden] diff --git a/www/views/tx-details.html b/www/views/tx-details.html index e3a7a06b4..467ce28e3 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -24,13 +24,13 @@ Receiving
-
{{btx.amountValueStr}} {{btx.amountUnitStr}}
+
- {{btx.alternativeAmountStr}} + ... - {{rate| currency:'':2}} {{alternativeIsoCode}} ({{rateDate | amDateFormat:'MM/DD/YYYY HH:mm a'}}) + ({{rateDate | amDateFormat:'MM/DD/YYYY HH:mm a'}})
@@ -115,7 +115,7 @@ Fee {{btx.feeStr || '...'}} - {{btx.feeFiatStr || '...'}} - {{btx.feeRateStr}} of the transaction + ...- {{btx.feeRateStr}} of the transaction
diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index 0f9e4961c..12506e05d 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -34,12 +34,12 @@ on-hold="hideToggle()" ng-style="{'transform': amountScale}" ng-class="{amount__balance: amountIsCollapsible}"> - {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}} +
- {{status.totalBalanceStr}} +
@@ -47,13 +47,14 @@ ng-show="selectedPriceDisplay=='crypto' && !updateStatusError && !wallet.balanceHidden && !wallet.scanning" on-hold="hideToggle()" ng-style="{'transform': amountScale}" + ng-if="status.totalBalanceStr" ng-class="{amount__balance: amountIsCollapsible}"> - {{status.totalBalanceStr}} +
- {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}} +
@@ -86,7 +87,7 @@   - {{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}} + @@ -127,12 +128,12 @@ on-hold="hideToggle()" ng-style="{'transform': amountScale}" ng-class="{amount__balance: amountIsCollapsible}"> - {{status.totalBalanceStr}} +
- {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}} +
@@ -142,12 +143,12 @@ on-hold="hideToggle()" ng-style="{'transform': amountScale}" ng-class="{amount__balance: amountIsCollapsible}"> - {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}} +
- {{status.totalBalanceStr}} +
@@ -180,7 +181,7 @@   - {{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}} + @@ -189,7 +190,7 @@
- diff --git a/www/views/tabs.html b/www/views/tabs.html index 3c2683a13..39d0acf73 100644 --- a/www/views/tabs.html +++ b/www/views/tabs.html @@ -11,7 +11,7 @@ - + From be2bc4cddb5b774c49baa14c51d89c2ad013c6b5 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 11:11:10 +1200 Subject: [PATCH 28/93] Showing From wallet in send tab. --- src/js/controllers/tab-send.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 33befb8f2..caa03e92b 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -208,6 +208,13 @@ angular.module('copayApp.controllers').controller('tabSendController', function( }; $scope.$on("$ionicView.beforeEnter", function(event, data) { + console.log('tab-send.beforeEnter sendFlowService.fromWalletId:', sendFlowService.fromWalletId); + var fromWalletId = sendFlowService.fromWalletId; + if (fromWalletId) { + $scope.fromWallet = profileService.getWallet(fromWalletId); + } else { + $scope.fromWallet = null; + } $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; From 1d025cbf35f9bf7fa8eb36e5bd708dea5a1f149f Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 11:42:25 +1200 Subject: [PATCH 29/93] Fixes for Android 4.4 --- src/js/directives/formattedAmount.js | 6 +++--- src/js/services/clipboardService.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 5bd307de3..d3e2e6347 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -32,10 +32,10 @@ angular.module('bitcoincom.directives') '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], '8': ['BCH', 'BTC'] }; - var localizeNumbers = function(x, minimumFractionDigits = 0, useGrouping = true) { + var localizeNumbers = function(x, minimumFractionDigits) { return parseFloat(x).toLocaleString(uxLanguage.getCurrentLanguage(), { minimumFractionDigits: minimumFractionDigits, - useGrouping: useGrouping + useGrouping: true }); }; @@ -80,7 +80,7 @@ angular.module('bitcoincom.directives') if (isNaN(parsed)) { buildAmount('-', '', ''); } else { - valueFormatted = localizeNumbers(Math.round(parsed)); + valueFormatted = localizeNumbers(Math.round(parsed), 0); buildAmount(valueFormatted, '', ''); } break; diff --git a/src/js/services/clipboardService.js b/src/js/services/clipboardService.js index 075cb749a..77ad3d018 100644 --- a/src/js/services/clipboardService.js +++ b/src/js/services/clipboardService.js @@ -13,7 +13,7 @@ angular.module('copayApp.services').factory('clipboardService', function ($http, nodeWebkitService.writeToClipboard(data); } else if (navigator && navigator.clipboard) { $log.debug("Use navigator clipboard.") - navigator.clipboard.writeText(data).catch(err => { + navigator.clipboard.writeText(data).catch(function onClipboardError(err) { $log.debug("Clipboard writing is not supported in your browser.."); }); } else if (clipboard.supported) { From 408d46e4d342eab340ea0033d16d2d43492a71b7 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 11:43:20 +1200 Subject: [PATCH 30/93] Hid the from wallet in the send screen for now, because it requires other layout changes to fit everything in, especially on small screens. --- src/js/controllers/tab-send.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index caa03e92b..33befb8f2 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -208,13 +208,6 @@ angular.module('copayApp.controllers').controller('tabSendController', function( }; $scope.$on("$ionicView.beforeEnter", function(event, data) { - console.log('tab-send.beforeEnter sendFlowService.fromWalletId:', sendFlowService.fromWalletId); - var fromWalletId = sendFlowService.fromWalletId; - if (fromWalletId) { - $scope.fromWallet = profileService.getWallet(fromWalletId); - } else { - $scope.fromWallet = null; - } $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; From be0c18244e8be335a62f15788e661eb0fa27b0d3 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 12:12:29 +1200 Subject: [PATCH 31/93] Review Transaction screen now displaying BCH addresses in cashaddr format. --- src/js/controllers/review.controller.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 858e115c1..886da26b8 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -403,16 +403,20 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit // Check if the recipient is a contact addressbookService.get(originCoin + address, function(err, contact) { if (!err && contact) { - handleDestinationAsContact(contact); + handleDestinationAsAddressOfContact(contact); } else { - vm.destination.address = address; + if (originCoin === 'bch') { + vm.destination.address = bitcoinCashJsService.readAddress(address).cashaddr; + } else { + vm.destination.address = address; + } vm.destination.kind = 'address'; } }); } - function handleDestinationAsContact(contact) { + function handleDestinationAsAddressOfContact(contact) { vm.destination.kind = 'contact'; vm.destination.name = contact.name; vm.destination.email = contact.email; From bf9b467bfe9324f493c0b90d6942ba459d5c5f66 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 13:01:48 +1200 Subject: [PATCH 32/93] Renamed sendFlowService functions to be more consistent. --- src/js/controllers/amount.js | 5 +- src/js/controllers/tab-send.js | 3 ++ .../controllers/walletSelectorController.js | 10 ++-- src/js/services/incomingData.js | 6 +-- src/js/services/sendFlowService.js | 48 ++++++++++++------- 5 files changed, 46 insertions(+), 26 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 8ff214d87..6f513663c 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -66,6 +66,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, } function onBeforeEnter(event, data) { + console.log('amount onBeforeEnter sendflow ', sendFlowService.getState()); initCurrencies(); @@ -209,7 +210,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, } function goBack() { - sendFlowService.previousState(); + sendFlowService.popState(); if (vm.thirdParty && vm.thirdParty.id === 'shapeshift') { $state.go('tabs.send').then(function() { $ionicHistory.clearHistory(); @@ -471,7 +472,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, confirmData['thirdParty'] = this.thirdParty; } - sendFlowService.map(confirmData); + sendFlowService.pushState(confirmData); if (!confirmData.fromWalletId) { $state.transitionTo('tabs.paymentRequest.confirm', confirmData); diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 33befb8f2..3f2c1a250 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -189,6 +189,8 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.startWalletToWalletTransfer = function() { console.log('startWalletToWalletTransfer()'); + var params = sendFlowService.getState(); + sendFlowService.pushState(params); $state.transitionTo('tabs.send.wallet-to-wallet', { fromWalletId: sendFlowService.fromWalletId }); @@ -208,6 +210,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( }; $scope.$on("$ionicView.beforeEnter", function(event, data) { + console.log('tab-send onBeforeEnter sendflow ', sendFlowService.getState()); $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index 69430dbb9..1c23bb24b 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -8,6 +8,8 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu var unitsFromSatoshis = 0; $scope.$on("$ionicView.beforeEnter", function(event, data) { + console.log('walletSelector onBeforeEnter sendflow', sendFlowService.getState()); + var config = configService.getSync().wallet.settings; priceDisplayAsFiat = config.priceDisplay === 'fiat'; unitDecimals = config.unitDecimals; @@ -182,16 +184,18 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.useWallet = function(wallet) { + var params = sendFlowService.getState(); if ($scope.type === 'origin') { // we're on the origin screen, set wallet to send from - $scope.params['fromWalletId'] = wallet.id; + params.fromWalletId = wallet.id; } else { // we're on the destination screen, set wallet to send to - $scope.params['toWalletId'] = wallet.id; + params.toWalletId = wallet.id; } + sendFlowService.pushState(params); $state.transitionTo(getNextStep(), $scope.params); }; $scope.goBack = function() { - sendFlowService.previousState(); + sendFlowService.popState(); $ionicHistory.goBack(); } diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 91de99cf3..934f53cc7 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -105,10 +105,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat params.thirdParty = []; params.thirdParty.id = serviceId; params.thirdParty.data = serviceData; - sendFlowService.map(params); + sendFlowService.pushState(params); $state.transitionTo('tabs.send.amount', params); } else { - sendFlowService.map(params); + sendFlowService.pushState(params); $state.transitionTo('tabs.send.origin', params); } }, 100); @@ -459,7 +459,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat 'notify': $state.current.name == 'tabs.send' ? false : true }).then(function() { $timeout(function() { - sendFlowService.map(stateParams); + sendFlowService.pushState(stateParams); // Need to do more here $state.transitionTo('tabs.send.origin', stateParams); }); }); diff --git a/src/js/services/sendFlowService.js b/src/js/services/sendFlowService.js index 1af112ed2..9daf0f4db 100644 --- a/src/js/services/sendFlowService.js +++ b/src/js/services/sendFlowService.js @@ -19,15 +19,17 @@ angular // Functions clear: clear, + getState: getState, map: map, - previousState: previousState, + popState: popState, + pushState: pushState, startSend: startSend }; return service; function clear() { - $log.debug("Reinitialize Send Flow variables with clear()"); + console.log("sendFlow clear()"); service.amount = ''; service.fromWalletId = ''; service.sendMax = false; @@ -38,41 +40,51 @@ angular } /** - * Clears all previous state - * @param {} params + * Handy for debugging */ - function startSend(params) { - console.log('startSend()'); - clear(); - Object.keys(params).forEach(function forNewParam(key) { - service[key] = params[key]; - }); - } - - function map(params) { - + function getState() { var currentState = {}; Object.keys(service).forEach(function forCurrentParam(key) { if (typeof service[key] !== 'function' && key !== 'previousStates') { currentState[key] = service[key]; } }); - service.previousStates.push(currentState); + return currentState; + } - // Do we want to inherit the previous state here, or clear first before adding new params? + /** + * Clears all previous state + */ + function startSend(params) { + console.log('startSend()'); + clear(); + map(params); + } + function map(params) { Object.keys(params).forEach(function forNewParam(key) { service[key] = params[key]; }); }; - function previousState() { + function popState() { + console.log('sendFlow pop'); if (service.previousStates.length) { - map(service.previousStates.pop()); + var params = service.previousStates.pop(); + clear(); + map(params); } else { clear(); } }; + + function pushState(params) { + console.log('sendFlow push'); + var currentParams = getState(); + service.previousStates.push(currentParams); + clear(); + map(params); + }; }; })(); \ No newline at end of file From b426209efb2f7a49e4338fd845edbfd593731a6c Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 13:06:50 +1200 Subject: [PATCH 33/93] Fix for clearing current state only. --- src/js/services/sendFlowService.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/js/services/sendFlowService.js b/src/js/services/sendFlowService.js index 9daf0f4db..29686b15b 100644 --- a/src/js/services/sendFlowService.js +++ b/src/js/services/sendFlowService.js @@ -30,13 +30,18 @@ angular function clear() { console.log("sendFlow clear()"); + clearCurrent(); + service.previousStates = []; + } + + function clearCurrent() { + console.log("sendFlow clearCurrent()"); service.amount = ''; service.fromWalletId = ''; service.sendMax = false; service.thirdParty = null; service.toAddress = ''; service.toWalletId = ''; - service.previousStates = []; } /** @@ -71,7 +76,7 @@ angular console.log('sendFlow pop'); if (service.previousStates.length) { var params = service.previousStates.pop(); - clear(); + clearCurrent(); map(params); } else { clear(); @@ -82,7 +87,7 @@ angular console.log('sendFlow push'); var currentParams = getState(); service.previousStates.push(currentParams); - clear(); + clearCurrent(); map(params); }; }; From a2dff98c63c67b19c93fad058fa504e9818e0418 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 13:12:44 +1200 Subject: [PATCH 34/93] Back button on Review Transaction screen works with sendFlowService. --- src/js/controllers/review.controller.js | 6 ++++++ www/views/review.html | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 886da26b8..e2e393501 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -49,6 +49,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit vm.memoExpanded = false; // Functions + vm.goBack = goBack; vm.onSuccessConfirm = onSuccessConfirm; var sendFlowData; @@ -395,6 +396,11 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit }; } + function goBack() { + sendFlowService.popState(); + $ionicHistory.goBack(); + } + function handleDestinationAsAddress(address, originCoin) { if (!address) { return; diff --git a/www/views/review.html b/www/views/review.html index cb7f21fbc..1eb648a01 100644 --- a/www/views/review.html +++ b/www/views/review.html @@ -3,8 +3,7 @@ {{'Review Transaction' | translate}} - - + From 0410182d4f151b1880443cc52898250c5cd3bc92 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 13:24:13 +1200 Subject: [PATCH 35/93] Incoming data working with sendFlowService. --- src/js/services/incomingData.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 934f53cc7..76b5885d4 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -82,7 +82,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }); // Timeout is required to enable the "Back" button $timeout(function() { - var params = {}; + var params = sendFlowService.getState(); if (amount) { params.amount = amount; From 188ddcba586054f87566f536f358708bb46435a2 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 13:25:06 +1200 Subject: [PATCH 36/93] Review transation copying state at startup so it doesn't contaminate the sendFlowController. --- src/js/controllers/review.controller.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index e2e393501..2b42339ce 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -75,8 +75,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit function onBeforeEnter(event, data) { + console.log('walletSelector onBeforeEnter sendflow ', sendFlowService.getState()); defaults = configService.getDefaults(); - sendFlowData = sendFlowService; + sendFlowData = sendFlowService.getState(); originWalletId = sendFlowData.fromWalletId; satoshis = parseInt(sendFlowData.amount, 10); toAddress = sendFlowData.toAddress; From e18364329805475d33a42e64b10cbf3e6b1c7baf Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 12:35:39 +0900 Subject: [PATCH 37/93] Remove from the route the stateparams, adapt some controllers in the new sendflowservice --- src/js/controllers/addressbookView.js | 8 +++++-- src/js/controllers/amount.js | 13 ++-------- src/js/controllers/shapeshift.js | 10 ++++---- src/js/controllers/tab-send.js | 24 +++++++++++++++---- .../controllers/walletSelectorController.js | 8 ++++--- src/js/routes.js | 8 +++---- src/js/services/incomingData.js | 12 ++++++---- 7 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/js/controllers/addressbookView.js b/src/js/controllers/addressbookView.js index 5f6881d10..89c1cd924 100644 --- a/src/js/controllers/addressbookView.js +++ b/src/js/controllers/addressbookView.js @@ -32,12 +32,16 @@ angular.module('copayApp.controllers').controller('addressbookViewController', f } else { to = $scope.addressbookEntry.address; } - $state.transitionTo('tabs.send.amount', { + + var stateParams = { toAddress: to, toName: $scope.addressbookEntry.name, toEmail: $scope.addressbookEntry.email, coin: $scope.addressbookEntry.coin - }); + }; + + sendFlowService.pushState(stateParams); + $state.transitionTo('tabs.send.origin'); }, 100); }; diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 6f513663c..d07f77c3f 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -78,7 +78,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, vm.maxAmount = parseFloat(passthroughParams.maxAmount); if (passthroughParams.thirdParty) { - vm.thirdParty = JSON.parse(passthroughParams.thirdParty); // Parse stringified JSON-object + vm.thirdParty = passthroughParams.thirdParty; // Parse stringified JSON-object if (vm.thirdParty) { if (vm.thirdParty.id === 'shapeshift') { if (!vm.thirdParty.data) { @@ -211,16 +211,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, function goBack() { sendFlowService.popState(); - if (vm.thirdParty && vm.thirdParty.id === 'shapeshift') { - $state.go('tabs.send').then(function() { - $ionicHistory.clearHistory(); - $state.go('tabs.home').then(function() { - $state.transitionTo('tabs.shapeshift'); - }); - }); - } else { - $ionicHistory.goBack(); - } + $ionicHistory.goBack(); } function paste(value) { diff --git a/src/js/controllers/shapeshift.js b/src/js/controllers/shapeshift.js index fcb43026d..4ede8a94f 100644 --- a/src/js/controllers/shapeshift.js +++ b/src/js/controllers/shapeshift.js @@ -63,16 +63,18 @@ angular.module('copayApp.controllers').controller('shapeshiftController', functi }; $scope.shapeshift = function() { - var params = { - thirdParty: JSON.stringify({id: 'shapeshift'}) + var stateParams = { + thirdParty: { + id: 'shapeshift' + } }; - sendFlowService.clear(); $state.go('tabs.home').then(function() { $ionicHistory.clearHistory(); $state.go('tabs.send').then(function() { $timeout(function () { - $state.transitionTo('tabs.send.origin', params); + sendFlowService.pushState(stateParams); + $state.transitionTo('tabs.send.origin'); }, 60); }); }); diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 3f2c1a250..55087859d 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -179,11 +179,18 @@ angular.module('copayApp.controllers').controller('tabSendController', function( } $log.debug('Got toAddress:' + toAddress + ' | ' + item.name); + + var stateParams = sendFlowService.getState(); + stateParams.toAddress = toAddress, + stateParams.coin = item.coin; + sendFlowService.pushState(stateParams); + + if (!stateParams.fromWalletId) { // If we have no toAddress or fromWallet + $state.transitionTo('tabs.send.origin'); + } else { + $state.transitionTo('tabs.send.amount'); + } - return $state.transitionTo('tabs.send.origin', { - toAddress: toAddress, - coin: item.coin - }); }); }; @@ -210,6 +217,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( }; $scope.$on("$ionicView.beforeEnter", function(event, data) { + console.log(data); console.log('tab-send onBeforeEnter sendflow ', sendFlowService.getState()); $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; @@ -225,5 +233,11 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.displayBalanceAsFiat = _config.wallet.settings.priceDisplay === 'fiat'; }); + var state = sendFlowService.getState(); + + if (data.direction == "back") { + sendFlowService.clear(); + } + }); -}); +}); \ No newline at end of file diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index 1c23bb24b..f4448486f 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -10,6 +10,8 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.$on("$ionicView.beforeEnter", function(event, data) { console.log('walletSelector onBeforeEnter sendflow', sendFlowService.getState()); + var stateParams = sendFlowService.getState(); + var config = configService.getSync().wallet.settings; priceDisplayAsFiat = config.priceDisplay === 'fiat'; unitDecimals = config.unitDecimals; @@ -20,7 +22,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); break; case 'tabs.send.destination': - if (data.stateParams.fromWalletId) { + if (stateParams.fromWalletId) { $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); } break; @@ -47,7 +49,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.isPaymentRequest = true; } if ($scope.params.thirdParty) { - $scope.thirdParty = JSON.parse($scope.params.thirdParty); // Parse stringified JSON-object + $scope.thirdParty = $scope.params.thirdParty; } }); @@ -96,7 +98,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu function getNextStep() { if ($scope.thirdParty) { - $scope.params.thirdParty = JSON.stringify($scope.thirdParty) // re-stringify JSON-object + $scope.params.thirdParty = $scope.thirdParty } if (!$scope.params.toWalletId && !$scope.params.toAddress) { // If we have no toAddress or fromWallet return 'tabs.send.destination'; diff --git a/src/js/routes.js b/src/js/routes.js index dea46a2cf..5dbcbe6a3 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -287,7 +287,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr */ .state('tabs.send.amount', { - url: '/amount/:thirdParty/:fromWalletId/:maxAmount/:minAmount/:toWalletId/:toAddress', + url: '/amount', views: { 'tab-send@tabs': { controller: 'amountController', @@ -306,7 +306,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.send.origin', { - url: '/origin/:thirdParty/:amount/:toAddress/:toWalletId/:coin', + url: '/origin', views: { 'tab-send@tabs': { controller: 'walletSelectorController', @@ -315,7 +315,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.send.destination', { - url: '/destination/:thirdParty/:amount/:fromWalletId', + url: '/destination', views: { 'tab-send@tabs': { controller: 'walletSelectorController', @@ -324,7 +324,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.send.confirm', { - url: '/confirm/:thirdParty/:amount/:fromWalletId/:toWalletId/:toAddress', + url: '/confirm', views: { 'tab-send@tabs': { controller: 'confirmController', diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 76b5885d4..86c928a5e 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -106,10 +106,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat params.thirdParty.id = serviceId; params.thirdParty.data = serviceData; sendFlowService.pushState(params); - $state.transitionTo('tabs.send.amount', params); + $state.transitionTo('tabs.send.amount'); } else { sendFlowService.pushState(params); - $state.transitionTo('tabs.send.origin', params); + $state.transitionTo('tabs.send.origin'); } }, 100); } @@ -388,11 +388,13 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat 'notify': $state.current.name == 'tabs.send' ? false : true }); $timeout(function() { - $state.transitionTo('tabs.send.origin', { + var stateParams = { toAddress: toAddress, coin: coin, noPrefix: 1 - }); + }; + sendFlowService.pushState(stateParams); + $state.transitionTo('tabs.send.origin'); }, 100); } @@ -460,7 +462,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }).then(function() { $timeout(function() { sendFlowService.pushState(stateParams); // Need to do more here - $state.transitionTo('tabs.send.origin', stateParams); + $state.transitionTo('tabs.send.origin'); }); }); } From 647e1261698eba7a9526d5abe93ff85a76ce2b3d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 12:49:35 +0900 Subject: [PATCH 38/93] Fix style css for the from wallet & activate the from wallet in the send tab --- src/js/controllers/tab-send.js | 3 ++ src/sass/views/tab-send.scss | 14 ++++---- www/css/main.css | 64 ++++++++++++---------------------- 3 files changed, 32 insertions(+), 49 deletions(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 55087859d..911548455 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -33,6 +33,9 @@ angular.module('copayApp.controllers').controller('tabSendController', function( text = text.substring(0, 200); } + var stateParams = sendFlowService.getState(); + $scope.fromWallet = profileService.getWallet(stateParams.fromWalletId); + $scope.clipboardHasAddress = false; $scope.clipboardHasContent = false; if ((text.indexOf('bitcoincash:') === 0 || text[0] === 'C' || text[0] === 'H' || text[0] === 'p' || text[0] === 'q') && text.replace('bitcoincash:', '').length === 42) { // CashAddr diff --git a/src/sass/views/tab-send.scss b/src/sass/views/tab-send.scss index 82b6f8d02..bf77984fd 100644 --- a/src/sass/views/tab-send.scss +++ b/src/sass/views/tab-send.scss @@ -2,15 +2,15 @@ @extend .deflash-blue; &-header{ - height: 300px; + //height: 300px; width: 100%; } &-contacts { - height: calc(100vh - 300px - 50px - 44px); /* screen size - button container - bottom-tab-menu - header top */ + //height: calc(100vh - 300px - 50px - 44px); /* screen size - button container - bottom-tab-menu - header top */ &.ios { - height: calc(100vh - 300px - 50px - 44px - 18px); // Remove the notification-bar height on iOS + //height: calc(100vh - 300px - 50px - 44px - 18px); // Remove the notification-bar height on iOS } - overflow: scroll; + //overflow: scroll; } .input { @@ -223,12 +223,12 @@ } } #tab-send-header { - height: 270px; + //height: 270px; } #tab-send-contacts { - height: calc(100vh - 270px - 50px - 44px); /* screen size - button container - bottom-tab-menu - header top */ + //height: calc(100vh - 270px - 50px - 44px); /* screen size - button container - bottom-tab-menu - header top */ &.ios { - height: calc(100vh - 270px - 50px - 44px - 18px); // Remove the notification-bar height on iOS + //height: calc(100vh - 270px - 50px - 44px - 18px); // Remove the notification-bar height on iOS } } } diff --git a/www/css/main.css b/www/css/main.css index 9845340ae..8602ba35d 100644 --- a/www/css/main.css +++ b/www/css/main.css @@ -11168,16 +11168,8 @@ qrcode { background-color: #fab915 !important; } #tab-send-header { - height: 300px; width: 100%; } -#tab-send-contacts { - height: calc(100vh - 300px - 50px - 44px); - /* screen size - button container - bottom-tab-menu - header top */ - overflow: scroll; } - #tab-send-contacts.ios { - height: calc(100vh - 300px - 50px - 44px - 18px); } - #tab-send .input { width: 100%; } #tab-send .input input { @@ -11358,14 +11350,7 @@ qrcode { #tab-send .send-wrapper .buttons .button-qr { height: 60px; } #tab-send .send-wrapper .buttons .button-qr span { - font-size: 16px; } - #tab-send #tab-send-header { - height: 270px; } - #tab-send #tab-send-contacts { - height: calc(100vh - 270px - 50px - 44px); - /* screen size - button container - bottom-tab-menu - header top */ } - #tab-send #tab-send-contacts.ios { - height: calc(100vh - 270px - 50px - 44px - 18px); } } + font-size: 16px; } } #wallet-origin-destination .header--request { padding: 30px 24px; @@ -15374,8 +15359,6 @@ log-options #check-bar .checkbox-icon { #view-review .fee-summary { position: absolute; bottom: 92px; } - #view-review .fee-summary-spacer { - height: 15px; } #view-review .shapeshift-banner, #view-review .bitpay-banner, #view-review .egifter-banner { box-shadow: none; } #view-review .warning { @@ -15551,31 +15534,28 @@ ion-content.padded-bottom-cta-with-summary { .fee-summary .amount .fee-crypto { color: #A7A7A7; } -.amount .start, -.amount .middle, -.amount .end, -.amount .currency { +.formatted-amount { display: inline-block; } - -.amount .start { - font-size: 1em; } - -.amount .middle { - font-size: 0.7857em; - margin-left: 5px; } - -.amount .end { - font-size: 0.7857em; - margin-left: 5px; } - -.amount.size-equal .middle, -.amount.size-equal .end { - font-size: 1em; } - -.amount .currency { - font-size: 1em; - margin-left: 5px; - text-transform: uppercase; } + .formatted-amount .start, + .formatted-amount .middle, + .formatted-amount .end, + .formatted-amount .currency { + display: inline-block; } + .formatted-amount .start { + font-size: 1em; } + .formatted-amount .middle { + font-size: 0.7857em; + margin-left: 5px; } + .formatted-amount .end { + font-size: 0.7857em; + margin-left: 5px; } + .formatted-amount.size-equal .middle, + .formatted-amount.size-equal .end { + font-size: 1em; } + .formatted-amount .currency { + font-size: 1em; + margin-left: 5px; + text-transform: uppercase; } /* This is for rules that don't yet have a home. * Our goal is to delete this file. Search the regex: /class=".*CLASS.*?"/ From a490f0ce1f42960fd87df7a3e561239fe5e42ee2 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 13:06:52 +0900 Subject: [PATCH 39/93] dead code --- src/js/controllers/tab-send.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 911548455..81b3e4ca5 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -236,8 +236,6 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.displayBalanceAsFiat = _config.wallet.settings.priceDisplay === 'fiat'; }); - var state = sendFlowService.getState(); - if (data.direction == "back") { sendFlowService.clear(); } From 7ce562ec648746153ae86e95c989d7f791469baa Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 16:11:29 +1200 Subject: [PATCH 40/93] Fix for Shapeshift now appearing again on Review Transaction screen. --- src/js/controllers/review.controller.js | 8 +++----- src/js/controllers/shapeshift.js | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 2b42339ce..0e5ceedce 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -88,11 +88,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit coin = vm.originWallet.coin; if (sendFlowData.thirdParty) { - // vm.thirdParty = JSON.parse(sendFlowData.thirdParty); // Parse stringified JSON-object - if (vm.thirdParty) { - handleThirdPartyInitIfBip70(); - handleThirdPartyInitIfShapeshift(); - } + vm.thirdParty = sendFlowData.thirdParty; + handleThirdPartyInitIfBip70(); + handleThirdPartyInitIfShapeshift(); } configService.get(function onConfig(err, configCache) { diff --git a/src/js/controllers/shapeshift.js b/src/js/controllers/shapeshift.js index 4ede8a94f..3538ebe1a 100644 --- a/src/js/controllers/shapeshift.js +++ b/src/js/controllers/shapeshift.js @@ -69,6 +69,8 @@ angular.module('copayApp.controllers').controller('shapeshiftController', functi } }; + // Starting new send flow, so ensure everything is reset + sendFlowService.clear(); $state.go('tabs.home').then(function() { $ionicHistory.clearHistory(); $state.go('tabs.send').then(function() { From 0ea97fc1c61fa3860e2eed4b80c202b3503c3d64 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 13:14:44 +0900 Subject: [PATCH 41/93] Fix state pop on the send flow --- src/js/controllers/review.controller.js | 1 - src/js/controllers/walletSelectorController.js | 16 +++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 2b42339ce..70a349b37 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -398,7 +398,6 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit } function goBack() { - sendFlowService.popState(); $ionicHistory.goBack(); } diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index f4448486f..74ed874d4 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -7,9 +7,16 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu var unitDecimals = 0; var unitsFromSatoshis = 0; - $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.$on("$ionicView.beforeEnter", onBeforeEnter); + $scope.$on("$ionicView.enter", onEnter); + + function onBeforeEnter(event, data) { console.log('walletSelector onBeforeEnter sendflow', sendFlowService.getState()); + if (data.direction == "back") { + sendFlowService.popState(); + } + var stateParams = sendFlowService.getState(); var config = configService.getSync().wallet.settings; @@ -51,9 +58,9 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu if ($scope.params.thirdParty) { $scope.thirdParty = $scope.params.thirdParty; } - }); + }; - $scope.$on("$ionicView.enter", function(event, data) { + function onEnter (event, data) { configService.whenAvailable(function(config) { $scope.selectedPriceDisplay = config.wallet.settings.priceDisplay; }); @@ -65,7 +72,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu prepareWalletLists(); formatRequestedAmount(); - }); + }; function formatRequestedAmount() { if ($scope.params.amount) { @@ -197,7 +204,6 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu }; $scope.goBack = function() { - sendFlowService.popState(); $ionicHistory.goBack(); } From 77f62100760a60fb46d2d3e578d86dc6f900c15b Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 13:15:21 +0900 Subject: [PATCH 42/93] Fix pop state on the send flow --- src/js/controllers/amount.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index d07f77c3f..b945be92c 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -68,6 +68,10 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, function onBeforeEnter(event, data) { console.log('amount onBeforeEnter sendflow ', sendFlowService.getState()); + if (data.direction == "back") { + sendFlowService.popState(); + } + initCurrencies(); passthroughParams = sendFlowService; @@ -210,7 +214,6 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, } function goBack() { - sendFlowService.popState(); $ionicHistory.goBack(); } From cbf66a2176224d8190d0eac14bb47a9c7983aaba Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 17:54:20 +1200 Subject: [PATCH 43/93] Fix for formatting amounts on Android 4.4. --- src/js/directives/formattedAmount.js | 48 ++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index d3e2e6347..c0c341631 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -33,10 +33,15 @@ angular.module('bitcoincom.directives') '8': ['BCH', 'BTC'] }; var localizeNumbers = function(x, minimumFractionDigits) { - return parseFloat(x).toLocaleString(uxLanguage.getCurrentLanguage(), { + var parsed = parseFloat(x); + var opts = { minimumFractionDigits: minimumFractionDigits, useGrouping: true - }); + }; + var lang = uxLanguage.getCurrentLanguage(); + var localized = parsed.toLocaleString(lang, opts); + var corrected = ensureEnoughFractionalDigits(localized, x, minimumFractionDigits); + return corrected; }; var buildAmount = function(start, middle, end) { @@ -61,7 +66,6 @@ angular.module('bitcoincom.directives') }; var formatNumbers = function() { - // During watch, may be changed from having a separate currency value, // to both being in value. Don't want to use previous currency value. // Try to extract currency from value.. @@ -128,6 +132,44 @@ angular.module('bitcoincom.directives') $scope.$watchGroup(['currency', 'value'], function onFormattedAmountWatch() { formatNumbers(); }); + + /** + * On Android 4.4, toLocaleString() only returns 3 fractional digits when 8 is specified. + */ + function ensureEnoughFractionalDigits(localizedString, number, desiredFractionDigits) { + if (desiredFractionDigits === 0) { + // Assume it is OK + return localizedString; + } + var fractionalRe = /^(\d*\D)(\d+)$/; + var match = fractionalRe.exec(localizedString); + if (match.length !== 3) { + // Don't know what's happening, just return what we have + return localizedString; + } + + var decimals = match[2]; + var decimalCount = decimals.length; + if (decimalCount >= desiredFractionDigits) { + // Everything is OK. + return localizedString; + } + + if (typeof number !== 'number') { + number = parseFloat(number); + } + + var fixed = number.toFixed(desiredFractionDigits); + var fixedMatch = fractionalRe.exec(fixed); + if (fixedMatch.length !== 3) { + // Don't know what's happening, just return what we have + return localizedString; + } + + // Keeps locale decimal separator. + var enough = match[1] + fixedMatch[2]; + return enough; + } }); } }; From c68b1e77f66f22458c476d8af07c63ff38fc6e40 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 15:09:43 +0900 Subject: [PATCH 44/93] clean controller and remove old firebase event --- src/js/controllers/backup.js | 5 +++-- src/js/controllers/confirm.js | 4 +--- src/js/controllers/create.js | 4 ++-- src/js/controllers/tab-home.js | 4 +--- src/js/routes.js | 7 ++++++- src/js/services/firebaseEventsService.js | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index 0eec71f12..6ec7089c6 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('backupController', - function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, lodash, profileService, bwcService, walletService, ongoingProcess, popupService, gettextCatalog, $ionicModal, firebaseEventsService) { + function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, lodash, profileService, bwcService, walletService, ongoingProcess, popupService, gettextCatalog, $ionicModal) { if ($state.current.name == 'onboarding.backup') { $scope.onboarding = true; @@ -89,7 +89,8 @@ angular.module('copayApp.controllers').controller('backupController', $scope.setFlow(2); }) } else { - firebaseEventsService.logEvent('backed_up_wallet'); + + //firebaseEventsService.logEvent('backed_up_wallet'); openConfirmBackupModal(); } }; diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index c98064fcc..76950df73 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, $ionicLoading, ionicToast, addressbookService, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, bitcoreCash, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bitcoinCashJsService, bwcError, txConfirmNotification, externalLinkService, firebaseEventsService, soundService, clipboardService) { +angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $timeout, $ionicScrollDelegate, $ionicLoading, ionicToast, addressbookService, gettextCatalog, walletService, platformInfo, lodash, configService, $state, $log, profileService, bitcore, bitcoreCash, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, feeService, bitcoinCashJsService, bwcError, txConfirmNotification, soundService, clipboardService) { var countDown = null; var FEE_TOO_HIGH_LIMIT_PER = 15; @@ -708,8 +708,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( }], [channel, "adjust"]); window.BitAnalytics.LogEventHandlers.postEvent(log); - // Should be removed - firebaseEventsService.logEvent('sent_bitcoin', { coin: $scope.wallet.coin }); $timeout(function() { $scope.$digest(); }, 100); diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index a25300a4a..a21053e2d 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('createController', - function($scope, $rootScope, $timeout, $log, lodash, $state, $ionicScrollDelegate, $ionicHistory, profileService, configService, gettextCatalog, ledger, trezor, intelTEE, derivationPathHelper, ongoingProcess, walletService, storageService, popupService, appConfigService, pushNotificationsService, firebaseEventsService, $ionicNavBarDelegate) { + function($scope, $timeout, $log, lodash, $state, $ionicScrollDelegate, $ionicHistory, profileService, configService, gettextCatalog, ledger, trezor, intelTEE, derivationPathHelper, ongoingProcess, walletService, popupService, appConfigService, pushNotificationsService, $ionicNavBarDelegate) { /* For compressed keys, m*73 + n*34 <= 496 */ var COPAYER_PAIR_LIMITS = { @@ -268,7 +268,7 @@ angular.module('copayApp.controllers').controller('createController', }, 100); } else { - firebaseEventsService.logEvent('wallet_created', { coin: opts.coin }); + //firebaseEventsService.logEvent('wallet_created', { coin: opts.coin }); $state.go('tabs.home'); } } diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 3d63ae41f..32e320932 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('tabHomeController', - function($rootScope, sendFlowService, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate, signVerifyMessageService) { + function($rootScope, sendFlowService, $timeout, $scope, $state, $stateParams, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, $ionicNavBarDelegate) { var wallet; var listeners = []; var notifications = []; @@ -98,8 +98,6 @@ angular.module('copayApp.controllers').controller('tabHomeController', } $scope.showServices = true; - pushNotificationsService.init(); - firebaseEventsService.init(); $timeout(function() { $ionicScrollDelegate.resize(); diff --git a/src/js/routes.js b/src/js/routes.js index 5dbcbe6a3..b5a9c91fe 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1207,7 +1207,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }); }) - .run(function($rootScope, $state, $location, $log, $timeout, startupService, ionicToast, fingerprintService, $ionicHistory, $ionicPlatform, $window, appConfigService, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService, configService, emailService, /* plugins START HERE => */ buydotbitcoindotcomService, glideraService, amazonService, bitpayCardService, applicationService, mercadoLibreService, rateService) { + .run(function($rootScope, $state, $location, $log, $timeout, startupService, ionicToast, fingerprintService, $ionicHistory, $ionicPlatform, $window, appConfigService, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService, configService, emailService, /* plugins START HERE => */ buydotbitcoindotcomService, pushNotificationsService, glideraService, amazonService, bitpayCardService, applicationService, mercadoLibreService, rateService) { $ionicPlatform.ready(function() { @@ -1231,6 +1231,11 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }); + configService.whenAvailable(function(config) { + pushNotificationsService.init(); + }); + //firebaseEventsService.init(); + var channel = "ga"; if (platformInfo.isCordova) { channel = "firebase"; diff --git a/src/js/services/firebaseEventsService.js b/src/js/services/firebaseEventsService.js index d81e682d7..d6ce6f1cc 100644 --- a/src/js/services/firebaseEventsService.js +++ b/src/js/services/firebaseEventsService.js @@ -1,5 +1,5 @@ 'use strict'; -angular.module('copayApp.services').factory('firebaseEventsService', function firebaseEventsService($log, $state, $ionicHistory, sjcl, platformInfo, lodash, appConfigService, profileService, configService) { +angular.module('copayApp.services').factory('firebaseEventsService', function firebaseEventsService($log, platformInfo) { var root = {}; var useEvents = platformInfo.isCordova && !platformInfo.isWP; From b742eadd4e1f24329326ea7ca5711f1013d7bd61 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 15:13:29 +0900 Subject: [PATCH 45/93] clean and remove bug home --- src/js/controllers/tab-home.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 32e320932..b6fec52d4 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -20,7 +20,12 @@ angular.module('copayApp.controllers').controller('tabHomeController', $scope.bannerUrl = ''; - $scope.$on("$ionicView.afterEnter", function() { + $scope.$on("$ionicView.beforeEnter", onBeforeEnter); + $scope.$on("$ionicView.enter", onEnter); + $scope.$on("$ionicView.afterEnter", onAfterEnter); + $scope.$on("$ionicView.leave", onLeave); + + function onAfterEnter () { startupService.ready(); bannerService.getBanner(function (banner) { @@ -28,9 +33,9 @@ angular.module('copayApp.controllers').controller('tabHomeController', $scope.bannerUrl = banner.url; $scope.bannerIsLoading = false; }); - }); + }; - $scope.$on("$ionicView.beforeEnter", function(event, data) { + function onBeforeEnter (event, data) { if (!$scope.homeTip) { storageService.getHomeTipAccepted(function(error, value) { @@ -52,11 +57,10 @@ angular.module('copayApp.controllers').controller('tabHomeController', } }); } - }); - - $scope.$on("$ionicView.enter", function(event, data) { + }; + + function onEnter(event, data) { $ionicNavBarDelegate.showBar(true); - updateAllWallets(); addressbookService.list(function(err, ab) { if (err) $log.error(err); @@ -104,13 +108,13 @@ angular.module('copayApp.controllers').controller('tabHomeController', $scope.$apply(); }, 10); }); - }); + }; - $scope.$on("$ionicView.leave", function(event, data) { + function onLeave (event, data) { lodash.each(listeners, function(x) { x(); }); - }); + }; $scope.createdWithinPastDay = function(time) { return timeService.withinPastDay(time); From 9076ad209809c5feef52c7690eab1ef6a0fa2676 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 15:35:03 +0900 Subject: [PATCH 46/93] add update wallet --- src/js/controllers/tab-home.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index b6fec52d4..51d500de7 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -61,6 +61,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', function onEnter(event, data) { $ionicNavBarDelegate.showBar(true); + updateAllWallets(); addressbookService.list(function(err, ab) { if (err) $log.error(err); From 4cf68076a01a0b3e27ff9286113e8c3f5c330066 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Thu, 9 Aug 2018 15:35:31 +0900 Subject: [PATCH 47/93] remove comment on bitanalytics --- bitanalytics/bitanalytics.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bitanalytics/bitanalytics.js b/bitanalytics/bitanalytics.js index c8c0d8870..d04b2a0bd 100644 --- a/bitanalytics/bitanalytics.js +++ b/bitanalytics/bitanalytics.js @@ -6256,7 +6256,6 @@ var ClickAction = /** @class */ (function (_super) { // Add event listener to all the elements found for (var i = 0; i < elements.length; i++) { var element = elements[i]; - console.log('init ' + this.name); element.addEventListener('click', this.listener); } }; @@ -6413,7 +6412,6 @@ var AdjustChannel = /** @class */ (function (_super) { _this.eventTypes = config.eventTypes; var os = _this.adjustedOs(config.os); _this.advertisingId = _this.getAdvertisingId(os); - console.log('Advertising ID for adjust: ' + _this.advertisingId); // TODO: Different initialisation for Cordova. var sessionParams = { app_version: config.appVersion, @@ -6656,7 +6654,7 @@ var MixpanelChannel = /** @class */ (function (_super) { function MixpanelChannel(name, config) { var _this = _super.call(this, name) || this; if (!config.token) { - throw new DOMException('[BitAnalytics] Config incorrect.'); + throw new Error('[BitAnalytics] Config incorrect.'); } _this.mixpanelInstance = mixpanel; mixpanel.init(config.token, config.config); @@ -7037,7 +7035,7 @@ var LogEventHandlers = /** @class */ (function () { _this.channels.push(channel); } catch (error) { - console.log('[BitAnalytics] ' + error.name + ': ' + error.message); + console.log(error.message); } }); }; From de33fe58681546f6929dd15d46852aaeebd68784 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 18:58:21 +1200 Subject: [PATCH 48/93] Refactored formattedAmount. --- src/js/directives/formattedAmount.js | 333 ++++++++++++++------------- 1 file changed, 170 insertions(+), 163 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index c0c341631..cbe288fa5 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -1,5 +1,6 @@ 'use strict'; +(function(){ /** * @desc amount directive that can be used to display formatted financial values * size-equal attribute is optional, defaults to false. @@ -10,168 +11,174 @@ * @example * @example */ -angular.module('bitcoincom.directives') - .directive('formattedAmount', function(uxLanguage) { - return { - restrict: 'E', - scope: { - value: '@', - currency: '@', - sizeEqual: '@' - }, - templateUrl: 'views/includes/formatted-amount.html', - controller: function($scope, $timeout) { - $scope.canShow = false; - - $scope.displaySizeEqual = !!$scope.sizeEqual; - - $timeout(function onFormattedAmountTimeout() { - - var decimalPlaces = { - '0': ['BIF', 'CLP', 'DJF', 'GNF', 'ILS', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'], - '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], - '8': ['BCH', 'BTC'] - }; - var localizeNumbers = function(x, minimumFractionDigits) { - var parsed = parseFloat(x); - var opts = { - minimumFractionDigits: minimumFractionDigits, - useGrouping: true - }; - var lang = uxLanguage.getCurrentLanguage(); - var localized = parsed.toLocaleString(lang, opts); - var corrected = ensureEnoughFractionalDigits(localized, x, minimumFractionDigits); - return corrected; - }; - - var buildAmount = function(start, middle, end) { - $scope.start = start; - $scope.middle = middle; - $scope.end = end; - }; - - var getDecimalPlaces = function(currency) { - if (decimalPlaces['0'].indexOf(currency.toUpperCase()) > -1) return '0'; - if (decimalPlaces['3'].indexOf(currency.toUpperCase()) > -1) return '3'; - if (decimalPlaces['8'].indexOf(currency.toUpperCase()) > -1) return '8'; - return '2'; - }; - - var getDecimalSeparator = function() { - var testNum = 1.5; - var testString = testNum.toLocaleString(uxLanguage.getCurrentLanguage()); - // Some environments let you set decimal separators that are more than one character - var separator = /^1(.+)5$/.exec(testString)[1] - return separator; - }; - - var formatNumbers = function() { - // During watch, may be changed from having a separate currency value, - // to both being in value. Don't want to use previous currency value. - // Try to extract currency from value.. - var currencySplit = $scope.value.split(" "); - if (currencySplit.length === 2) { - $scope.currency = currencySplit[1]; - } - $scope.currency = $scope.currency || ''; - - - var parsed = parseFloat($scope.value); - var valueFormatted = ''; - var valueProcessing = ''; - switch (getDecimalPlaces($scope.currency)) { - case '0': - if (isNaN(parsed)) { - buildAmount('-', '', ''); - } else { - valueFormatted = localizeNumbers(Math.round(parsed), 0); - buildAmount(valueFormatted, '', ''); - } - break; - - case '3': - if (isNaN(parsed)) { - buildAmount('-' + getDecimalSeparator() + '---', '', ''); - } else { - valueProcessing = parsed.toFixed(3); - valueFormatted = localizeNumbers(valueProcessing, 3); - buildAmount(valueFormatted, '', ''); - } - break; - - case '8': - if (isNaN(parsed)) { - buildAmount('-' + getDecimalSeparator() + '---', '', ''); - } else if (parsed === 0) { - buildAmount('0', '', ''); - } else { - valueFormatted = parsed.toFixed(8); - valueFormatted = localizeNumbers(valueFormatted, 8); - var start = valueFormatted.slice(0, -5); - var middle = valueFormatted.slice(-5, -2); - var end = valueFormatted.substr(valueFormatted.length - 2); - buildAmount(start, middle, end); - - } - break; - - default: // 2 - if (isNaN(parsed)) { - buildAmount('-' + getDecimalSeparator() + '--', '', ''); - } else { - valueProcessing = parseFloat(parsed.toFixed(2)); - valueFormatted = localizeNumbers(valueProcessing, 2); - buildAmount(valueFormatted, '', ''); - } - break; - } - $scope.canShow = true; - }; - - formatNumbers(); - $scope.$watchGroup(['currency', 'value'], function onFormattedAmountWatch() { - formatNumbers(); - }); - - /** - * On Android 4.4, toLocaleString() only returns 3 fractional digits when 8 is specified. - */ - function ensureEnoughFractionalDigits(localizedString, number, desiredFractionDigits) { - if (desiredFractionDigits === 0) { - // Assume it is OK - return localizedString; - } - var fractionalRe = /^(\d*\D)(\d+)$/; - var match = fractionalRe.exec(localizedString); - if (match.length !== 3) { - // Don't know what's happening, just return what we have - return localizedString; - } - - var decimals = match[2]; - var decimalCount = decimals.length; - if (decimalCount >= desiredFractionDigits) { - // Everything is OK. - return localizedString; - } - - if (typeof number !== 'number') { - number = parseFloat(number); - } - - var fixed = number.toFixed(desiredFractionDigits); - var fixedMatch = fractionalRe.exec(fixed); - if (fixedMatch.length !== 3) { - // Don't know what's happening, just return what we have - return localizedString; - } - - // Keeps locale decimal separator. - var enough = match[1] + fixedMatch[2]; - return enough; - } - }); + angular + .module('bitcoincom.directives') + .directive('formattedAmount', function() { + return { + restrict: 'E', + scope: { + value: '@', + currency: '@', + sizeEqual: '@' + }, + templateUrl: 'views/includes/formatted-amount.html', + controller: formattedAmountController } - }; + }); + + function formattedAmountController($scope, $timeout, uxLanguage) { + $scope.canShow = false; + + $scope.displaySizeEqual = !!$scope.sizeEqual; + + $timeout(function onFormattedAmountTimeout() { + + var decimalPlaces = { + '0': ['BIF', 'CLP', 'DJF', 'GNF', 'ILS', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'], + '3': ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'], + '8': ['BCH', 'BTC'] + }; + + formatNumbers(); + $scope.$watchGroup(['currency', 'value'], function onFormattedAmountWatch() { + formatNumbers(); + }); + + function buildAmount(start, middle, end) { + $scope.start = start; + $scope.middle = middle; + $scope.end = end; + }; + + /** + * On Android 4.4, toLocaleString() only returns 3 fractional digits when 8 is specified. + */ + function ensureEnoughFractionDigits(localizedString, number, desiredFractionDigits) { + if (desiredFractionDigits === 0) { + // Assume it is OK + return localizedString; + } + var fractionalRe = /^-*(\d*\D)(\d+)$/; + var match = fractionalRe.exec(localizedString); + if (!match || match.length !== 3) { + // Don't know what's happening, just return what we have + return localizedString; + } + + var decimals = match[2]; + var decimalCount = decimals.length; + if (decimalCount >= desiredFractionDigits) { + // Everything is OK. + return localizedString; + } + + if (typeof number !== 'number') { + number = parseFloat(number); + } + + var fixed = number.toFixed(desiredFractionDigits); + var fixedMatch = fractionalRe.exec(fixed); + if (!fixedMatch || fixedMatch.length !== 3) { + // Don't know what's happening, just return what we have + return localizedString; + } + + // Keeps locale decimal separator. + var enough = match[1] + fixedMatch[2]; + return enough; + } + + function formatNumbers() { + // During watch, may be changed from having a separate currency value, + // to both being in value. Don't want to use previous currency value. + // Try to extract currency from value.. + var currencySplit = $scope.value.split(" "); + if (currencySplit.length === 2) { + $scope.currency = currencySplit[1]; + } + $scope.currency = $scope.currency || ''; + + + var parsed = parseFloat($scope.value); + var valueFormatted = ''; + var valueProcessing = ''; + switch (getDecimalPlaces($scope.currency)) { + case '0': + if (isNaN(parsed)) { + buildAmount('-', '', ''); + } else { + valueFormatted = localizeNumbers(Math.round(parsed), 0); + buildAmount(valueFormatted, '', ''); + } + break; + + case '3': + if (isNaN(parsed)) { + buildAmount('-' + getDecimalSeparator() + '---', '', ''); + } else { + valueProcessing = parsed.toFixed(3); + valueFormatted = localizeNumbers(valueProcessing, 3); + buildAmount(valueFormatted, '', ''); + } + break; + + case '8': + if (isNaN(parsed)) { + buildAmount('-' + getDecimalSeparator() + '---', '', ''); + } else if (parsed === 0) { + buildAmount('0', '', ''); + } else { + valueFormatted = parsed.toFixed(8); + valueFormatted = localizeNumbers(valueFormatted, 8); + var start = valueFormatted.slice(0, -5); + var middle = valueFormatted.slice(-5, -2); + var end = valueFormatted.substr(valueFormatted.length - 2); + buildAmount(start, middle, end); + + } + break; + + default: // 2 + if (isNaN(parsed)) { + buildAmount('-' + getDecimalSeparator() + '--', '', ''); + } else { + valueProcessing = parseFloat(parsed.toFixed(2)); + valueFormatted = localizeNumbers(valueProcessing, 2); + buildAmount(valueFormatted, '', ''); + } + break; + } + $scope.canShow = true; + }; + + function getDecimalPlaces(currency) { + if (decimalPlaces['0'].indexOf(currency.toUpperCase()) > -1) return '0'; + if (decimalPlaces['3'].indexOf(currency.toUpperCase()) > -1) return '3'; + if (decimalPlaces['8'].indexOf(currency.toUpperCase()) > -1) return '8'; + return '2'; + }; + + function getDecimalSeparator() { + var testNum = 1.5; + var testString = testNum.toLocaleString(uxLanguage.getCurrentLanguage()); + // Some environments let you set decimal separators that are more than one character + var separator = /^1(.+)5$/.exec(testString)[1] + return separator; + }; + + function localizeNumbers(x, minimumFractionDigits) { + var parsed = parseFloat(x); + var opts = { + minimumFractionDigits: minimumFractionDigits, + useGrouping: true + }; + var lang = uxLanguage.getCurrentLanguage(); + var localized = parsed.toLocaleString(lang, opts); + var corrected = ensureEnoughFractionDigits(localized, x, minimumFractionDigits); + return corrected; + }; + + }); } -); \ No newline at end of file + +})(); \ No newline at end of file From ac8cdcf5be83bf28f87ed0f76b3308318cd92652 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Thu, 9 Aug 2018 18:59:03 +1200 Subject: [PATCH 49/93] Android 4.4 fix for Amount screen, removal of  . --- www/views/amount.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/views/amount.html b/www/views/amount.html index 57a8e46ce..bceda146f 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -37,14 +37,14 @@
- Available Funds: + Available Funds:
From 420305cf017555a82db7513feb1342500ea94e90 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 9 Aug 2018 10:15:55 +0200 Subject: [PATCH 50/93] shapeshift moved to default services and communities fix --- src/js/controllers/tab-home.js | 4 ++-- src/js/services/servicesService.js | 7 ++++++- src/js/services/shapeshiftService.js | 12 ------------ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 51d500de7..9a8c28b9a 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('tabHomeController', - function($rootScope, sendFlowService, $timeout, $scope, $state, $stateParams, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, $ionicNavBarDelegate) { + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, sendFlowService, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate, signVerifyMessageService) { var wallet; var listeners = []; var notifications = []; @@ -58,7 +58,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', }); } }; - + function onEnter(event, data) { $ionicNavBarDelegate.showBar(true); updateAllWallets(); diff --git a/src/js/services/servicesService.js b/src/js/services/servicesService.js index f2344dd01..316009957 100644 --- a/src/js/services/servicesService.js +++ b/src/js/services/servicesService.js @@ -1,7 +1,12 @@ 'use strict' angular.module('copayApp.services').factory('servicesService', function(configService, $log, lodash) { var root = {}; - var services = []; + var services = [{ + name: 'shapeshift', + title: 'Shapeshift', + icon: 'icon-shapeshift', + sref: 'tabs.shapeshift', + }]; root.register = function(serviceInfo) { $log.info('Adding Services entry:' + serviceInfo.name); diff --git a/src/js/services/shapeshiftService.js b/src/js/services/shapeshiftService.js index 7cf6b4e03..1ce9672ce 100644 --- a/src/js/services/shapeshiftService.js +++ b/src/js/services/shapeshiftService.js @@ -137,17 +137,5 @@ angular.module('copayApp.services').factory('shapeshiftService', function ($http }); }; - var servicesItem = { - name: 'shapeshift', - title: 'Shapeshift', - icon: 'icon-shapeshift', - sref: 'tabs.shapeshift', - }; - - var register = function() { - servicesService.register(servicesItem); - }; - - register(); return root; }); From 25965f626874c5e1c2cc6d0ece67795682e5e4f5 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 9 Aug 2018 10:17:29 +0200 Subject: [PATCH 51/93] shapeshift moved to default services and communities fix --- src/js/controllers/tab-home.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 9a8c28b9a..9c4f2bee9 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('tabHomeController', - function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, sendFlowService, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate, signVerifyMessageService) { + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, bannerService, communityService, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, sendFlowService, storageService, txpModalService, appConfigService, startupService, addressbookService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate, signVerifyMessageService) { var wallet; var listeners = []; var notifications = []; From ee0042b6e7c6efe5442aa3f3885cd4ae1be2c7f2 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 9 Aug 2018 13:39:27 +0200 Subject: [PATCH 52/93] sendMax bugfix when returning to previous screen --- src/js/controllers/amount.js | 14 ++++++++++---- src/js/controllers/review.controller.js | 2 +- www/views/amount.html | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 73ebfd150..8e458045e 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -29,6 +29,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, vm.finish = finish; vm.goBack = goBack; vm.loadMore = loadMore; + vm.next = next; vm.openPopup = openPopup; vm.pushDigit = pushDigit; vm.removeDigit = removeDigit; @@ -478,7 +479,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, // Currency - var next = 10; + var nextCurrencies = 10; var completeAlternativeList = []; var popularCurrencyList = [ @@ -537,12 +538,17 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, function loadMore() { $timeout(function() { - vm.altCurrencyList = completeAlternativeList.slice(0, next); - next += 10; + vm.altCurrencyList = completeAlternativeList.slice(0, nextCurrencies); + nextCurrencies += 10; vm.listComplete = vm.altCurrencyList.length >= completeAlternativeList.length; $scope.$broadcast('scroll.infiniteScrollComplete'); }, 100); - }; + } + + function next() { + useSendMax = false; + vm.finish(); + } function findCurrency(search) { if (!search) initCurrencies(); diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index a3b015348..afe3cd97d 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -223,7 +223,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit // Grab stateParams tx = { amount: parseInt(sendFlowData.amount), - sendMax: sendFlowData.sendMax === 'true' ? true : false, + sendMax: sendFlowData.sendMax, fromWalletId: sendFlowData.fromWalletId, toAddress: sendFlowData.toAddress, paypro: txPayproData, diff --git a/www/views/amount.html b/www/views/amount.html index bceda146f..8d263eae3 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -90,7 +90,7 @@ +
From afb3a1d49fe7115cd339f19e7e13da370c668333 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 12:46:00 +1200 Subject: [PATCH 55/93] wallet-balance directive displaying basic crypto balance. --- src/js/directives/walletBalanceDirective.js | 88 +++++++++++++++++++++ src/sass/components/components.scss | 1 + src/sass/components/wallet-balance.scss | 3 + www/views/includes/wallet-balance.html | 3 + www/views/tab-send.html | 3 +- 5 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/js/directives/walletBalanceDirective.js create mode 100644 src/sass/components/wallet-balance.scss create mode 100644 www/views/includes/wallet-balance.html diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js new file mode 100644 index 000000000..aaf9de99b --- /dev/null +++ b/src/js/directives/walletBalanceDirective.js @@ -0,0 +1,88 @@ +'use strict'; + +(function(){ + + angular + .module('bitcoincom.directives') + .directive('walletBalance', function() { + return { + restrict: 'E', + scope: { + displayAsFiat: '@', + totalBalanceSat: '@', + wallet: '@' + }, + templateUrl: 'views/includes/wallet-balance.html', + controller: walletBalanceController + } + }); + + function walletBalanceController($log, $scope, $timeout, uxLanguage) { + console.log('walletBalanceController'); + var cryptoBalanceHasBeenDisplayed = false; + + formatBalance(); + $scope.$watchGroup(['displayAsFiat', 'totalBalanceSat'], function onWalletBalanceWatch() { + formatBalance(); + }); + + function displayCryptoBalance(wallet) { + console.log('displayCryptoBalance()'); + if (wallet.status) { + if (wallet.status.totalBalanceStr) { + $scope.displayAmount = wallet.status.totalBalanceStr; + $scope.cachedBalanceUpdatedOn = ''; + console.log('Displaying wallet.status.totalBalanceStr'); + + } else if (wallet.status.cachedBalance) { + $scope.displayAmount = wallet.status.cachedBalance; + $scope.cachedBalanceUpdatedOn = wallet.status.cachedBalanceUpdatedOn; + console.log('Displaying wallet.status.cachedBalance'); + + } else { + $scope.displayAmount = ''; + $scope.cachedBalanceUpdatedOn = ''; + console.log('Displaying "" from status'); + } + } else if (wallet.cachedBalance) { + $scope.displayAmount = cachedBalance; + $scope.cachedBalanceUpdatedOn = ''; + console.log('Displaying cachedBalance'); + + } else { + $scope.displayAmount = ''; + $scope.cachedBalanceUpdatedOn = ''; + console.log('Displaying "" without status'); + } + cryptoBalanceHasBeenDisplayed = true; + } + + function displayFiatBalance(wallet) { + + } + + function formatBalance() { + //console.log('formatBalance() with wallet:', $scope.wallet,); + console.log('formatBalance() with displayAsFiat: "' + $scope.displayAsFiat + '"'); + var wallet = null; + try { + wallet = JSON.parse($scope.wallet); + } catch (e) { + $log.error('Error parsing wallet to display balance.', e); + $scope.displayAmount = ''; + $scope.cachedBalanceUpdatedOn = ''; + } + + if (!$scope.displayAsFiat || $scope.displayAsFiat && !cryptoBalanceHasBeenDisplayed) { + displayCryptoBalance(wallet); + } + + if ($scope.displayAsFiat) { + displayFiatBalance(wallet); + } + + + } + } +})(); + diff --git a/src/sass/components/components.scss b/src/sass/components/components.scss index fb53508b0..4d2bd695e 100644 --- a/src/sass/components/components.scss +++ b/src/sass/components/components.scss @@ -9,3 +9,4 @@ @import "expand-content"; @import "fee-summary"; @import "formatted-amount"; +@import "wallet-balance"; diff --git a/src/sass/components/wallet-balance.scss b/src/sass/components/wallet-balance.scss new file mode 100644 index 000000000..faf4e8611 --- /dev/null +++ b/src/sass/components/wallet-balance.scss @@ -0,0 +1,3 @@ +.wallet-balance-directive { + display: inline-block; +} \ No newline at end of file diff --git a/www/views/includes/wallet-balance.html b/www/views/includes/wallet-balance.html new file mode 100644 index 000000000..0cd1ee659 --- /dev/null +++ b/www/views/includes/wallet-balance.html @@ -0,0 +1,3 @@ +
+ {{displayAmount}}{{· (cachedBalanceUpdatedOn * 1000 | amTimeAgo)}} +
\ No newline at end of file diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 3378b53ed..236c3db6f 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -16,8 +16,9 @@ >

{{fromWallet.name}}

+ - + From 355ed27b87accb55bc22901366b57666649744ce Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 13:04:44 +1200 Subject: [PATCH 56/93] wallet balance directive displaying fiat balance from wallet status. --- src/js/directives/walletBalanceDirective.js | 62 ++++++++++++--------- www/views/includes/wallet-balance.html | 2 +- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js index aaf9de99b..a13d30a98 100644 --- a/src/js/directives/walletBalanceDirective.js +++ b/src/js/directives/walletBalanceDirective.js @@ -28,37 +28,41 @@ function displayCryptoBalance(wallet) { console.log('displayCryptoBalance()'); - if (wallet.status) { - if (wallet.status.totalBalanceStr) { - $scope.displayAmount = wallet.status.totalBalanceStr; - $scope.cachedBalanceUpdatedOn = ''; - console.log('Displaying wallet.status.totalBalanceStr'); - } else if (wallet.status.cachedBalance) { - $scope.displayAmount = wallet.status.cachedBalance; - $scope.cachedBalanceUpdatedOn = wallet.status.cachedBalanceUpdatedOn; - console.log('Displaying wallet.status.cachedBalance'); - - } else { - $scope.displayAmount = ''; - $scope.cachedBalanceUpdatedOn = ''; - console.log('Displaying "" from status'); - } - } else if (wallet.cachedBalance) { - $scope.displayAmount = cachedBalance; - $scope.cachedBalanceUpdatedOn = ''; - console.log('Displaying cachedBalance'); - - } else { - $scope.displayAmount = ''; - $scope.cachedBalanceUpdatedOn = ''; - console.log('Displaying "" without status'); + if (wallet.status && wallet.status.totalBalanceStr) { + setDisplay(wallet.status.totalBalanceStr, ''); + cryptoBalanceHasBeenDisplayed = true; + return; } - cryptoBalanceHasBeenDisplayed = true; + + if (wallet.cachedBalance) { + setDisplay(wallet.cachedBalance, wallet.cachedBalanceUpdatedOn); + return; + } + + if (wallet.cachedStatus && wallet.cachedStatus.totalBalanceStr) { + setDisplay(wallet.cachedStatus.totalBalanceStr, ''); + return; + } + + setDisplay('', ''); } function displayFiatBalance(wallet) { - + var displayAmount = ''; + if (wallet.status && wallet.status.alternativeBalanceAvailable) { + displayAmount = wallet.status.totalBalanceAlternative + ' ' + wallet.status.alternativeIsoCode; + setDisplay(displayAmount, ''); + return; + } + + if (wallet.cachedStatus && wallet.cachedStatus.alternativeBalanceAvailable) { + displayAmount = wallet.cachedStatus.totalBalanceAlternative + ' ' + wallet.cachedStatus.alternativeIsoCode; + setDisplay(displayAmount, ''); + return; + } + + getFiatBalance(wallet); } function formatBalance() { @@ -80,8 +84,14 @@ if ($scope.displayAsFiat) { displayFiatBalance(wallet); } + } + function getFiatBalance(wallet) { + } + function setDisplay(amount, cachedBalanceUpdatedOn) { + $scope.displayAmount = amount; + $scope.cachedBalanceUpdatedOn = cachedBalanceUpdatedOn; } } })(); diff --git a/www/views/includes/wallet-balance.html b/www/views/includes/wallet-balance.html index 0cd1ee659..03baa8cac 100644 --- a/www/views/includes/wallet-balance.html +++ b/www/views/includes/wallet-balance.html @@ -1,3 +1,3 @@ -
+
{{displayAmount}}{{· (cachedBalanceUpdatedOn * 1000 | amTimeAgo)}}
\ No newline at end of file From d7285a72e46858c559e38180b118e93590ca07da Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 13:26:12 +1200 Subject: [PATCH 57/93] wallet-balance directive retrieves alternative amount when needed. --- src/js/directives/walletBalanceDirective.js | 26 +++++++++++++-------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js index a13d30a98..d318b370d 100644 --- a/src/js/directives/walletBalanceDirective.js +++ b/src/js/directives/walletBalanceDirective.js @@ -17,8 +17,7 @@ } }); - function walletBalanceController($log, $scope, $timeout, uxLanguage) { - console.log('walletBalanceController'); + function walletBalanceController($log, $scope, txFormatService) { var cryptoBalanceHasBeenDisplayed = false; formatBalance(); @@ -29,7 +28,7 @@ function displayCryptoBalance(wallet) { console.log('displayCryptoBalance()'); - if (wallet.status && wallet.status.totalBalanceStr) { + if (wallet.status && wallet.status.isValid && wallet.status.totalBalanceStr) { setDisplay(wallet.status.totalBalanceStr, ''); cryptoBalanceHasBeenDisplayed = true; return; @@ -40,7 +39,7 @@ return; } - if (wallet.cachedStatus && wallet.cachedStatus.totalBalanceStr) { + if (wallet.cachedStatus && wallet.status.isValid && wallet.cachedStatus.totalBalanceStr) { setDisplay(wallet.cachedStatus.totalBalanceStr, ''); return; } @@ -50,13 +49,13 @@ function displayFiatBalance(wallet) { var displayAmount = ''; - if (wallet.status && wallet.status.alternativeBalanceAvailable) { + if (wallet.status && wallet.status.isValid && wallet.status.alternativeBalanceAvailable) { displayAmount = wallet.status.totalBalanceAlternative + ' ' + wallet.status.alternativeIsoCode; setDisplay(displayAmount, ''); return; } - if (wallet.cachedStatus && wallet.cachedStatus.alternativeBalanceAvailable) { + if (wallet.cachedStatus && wallet.cachedStatus.isValid && wallet.cachedStatus.alternativeBalanceAvailable) { displayAmount = wallet.cachedStatus.totalBalanceAlternative + ' ' + wallet.cachedStatus.alternativeIsoCode; setDisplay(displayAmount, ''); return; @@ -66,15 +65,12 @@ } function formatBalance() { - //console.log('formatBalance() with wallet:', $scope.wallet,); - console.log('formatBalance() with displayAsFiat: "' + $scope.displayAsFiat + '"'); var wallet = null; try { wallet = JSON.parse($scope.wallet); } catch (e) { $log.error('Error parsing wallet to display balance.', e); - $scope.displayAmount = ''; - $scope.cachedBalanceUpdatedOn = ''; + setDisplay('', ''); } if (!$scope.displayAsFiat || $scope.displayAsFiat && !cryptoBalanceHasBeenDisplayed) { @@ -87,6 +83,16 @@ } function getFiatBalance(wallet) { + if (!(wallet.status && wallet.status.isValid)) { + $log.warn('Abandoning call to get fiat balance, because no valid wallet status.'); + return; + } + + txFormatService.formatAlternativeStr(wallet.coin, wallet.status.totalBalanceSat, function onFormatAlernativeStr(formatted) { + if (formatted) { + setDisplay(formatted, ''); + } + }); } function setDisplay(amount, cachedBalanceUpdatedOn) { From 82ede65363e42463926eb655b65d12e6b3f82a10 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 10:43:54 +0900 Subject: [PATCH 58/93] New decimal on the review screen --- www/views/review.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/views/review.html b/www/views/review.html index 1eb648a01..db6d279d4 100644 --- a/www/views/review.html +++ b/www/views/review.html @@ -11,8 +11,8 @@

{{vm.sendingTitle}}

-

{{vm.primaryAmount}} {{vm.primaryCurrency}}

-

{{vm.secondaryAmount}} {{vm.secondaryCurrency}}

+

+

From 82c0746ff808555e040f6e5b2a11eb5b7b63c57a Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 13:48:59 +1200 Subject: [PATCH 59/93] wallet-balance directive uses formatted-amount. --- src/js/directives/walletBalanceDirective.js | 6 ++++-- www/views/includes/wallet-balance.html | 2 +- www/views/tab-send.html | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js index d318b370d..5b2a41b6c 100644 --- a/src/js/directives/walletBalanceDirective.js +++ b/src/js/directives/walletBalanceDirective.js @@ -65,19 +65,21 @@ } function formatBalance() { + var displayAsFiat = $scope.displayAsFiat === 'true'; var wallet = null; try { wallet = JSON.parse($scope.wallet); } catch (e) { $log.error('Error parsing wallet to display balance.', e); setDisplay('', ''); + return; } - if (!$scope.displayAsFiat || $scope.displayAsFiat && !cryptoBalanceHasBeenDisplayed) { + if (!displayAsFiat || displayAsFiat && !cryptoBalanceHasBeenDisplayed) { displayCryptoBalance(wallet); } - if ($scope.displayAsFiat) { + if (displayAsFiat) { displayFiatBalance(wallet); } } diff --git a/www/views/includes/wallet-balance.html b/www/views/includes/wallet-balance.html index 03baa8cac..0818bf343 100644 --- a/www/views/includes/wallet-balance.html +++ b/www/views/includes/wallet-balance.html @@ -1,3 +1,3 @@
- {{displayAmount}}{{· (cachedBalanceUpdatedOn * 1000 | amTimeAgo)}} + {{· (cachedBalanceUpdatedOn * 1000 | amTimeAgo)}}
\ No newline at end of file diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 236c3db6f..a4051b8f1 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -16,7 +16,7 @@ >

{{fromWallet.name}}

- + From b70bd804dc09c40b430daf9664da1d2ec359c7dc Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 10:56:01 +0900 Subject: [PATCH 60/93] crypto decimal --- www/views/review.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/review.html b/www/views/review.html index db6d279d4..f2970da51 100644 --- a/www/views/review.html +++ b/www/views/review.html @@ -89,7 +89,7 @@
Fee: Less than 1 cent
Fee: {{vm.feeFiat}} {{vm.feeCurrency}}
- {{vm.feeCrypto}} {{vm.origin.currency}} +
From 4c9ff1b28b65323e285a8d5fbf1d702f18820e0f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 11:11:53 +0900 Subject: [PATCH 61/93] Handle error in the review screen --- src/js/controllers/review.controller.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index afe3cd97d..d41d4a9b0 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -116,7 +116,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit if (!tx || !vm.originWallet) return; if (vm.paymentExpired) { - popupService.showAlert(null, gettextCatalog.getString('This bitcoin payment request has expired.')); + popupService.showAlert(null, gettextCatalog.getString('This bitcoin payment request has expired.', function () { + $ionicHistory.goBack(); + })); vm.sendStatus = ''; $timeout(function() { $scope.$apply(); @@ -486,20 +488,26 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit walletService.getAddress(vm.originWallet, false, function onReturnWalletAddress(err, returnAddr) { if (err) { ongoingProcess.set('connectingShapeshift', false); - popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString()); + popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString(), function () { + $ionicHistory.goBack(); + }); return; } walletService.getAddress(toWallet, false, function onWithdrawalWalletAddress(err, withdrawalAddr) { if (err) { ongoingProcess.set('connectingShapeshift', false); - popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString()); + popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString(), function () { + $ionicHistory.goBack(); + }); return; } shapeshiftService.shiftIt(vm.originWallet.coin, toWallet.coin, withdrawalAddr, returnAddr, function onShiftIt(err, shapeshiftData) { if (err && err != null) { ongoingProcess.set('connectingShapeshift', false); - popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString()); + popupService.showAlert(gettextCatalog.getString('Shapeshift Error'), err.toString(), function () { + $ionicHistory.goBack(); + }); } else { vm.memo = 'ShapeShift Order:\nhttps://www.shapeshift.io/#/status/' + shapeshiftData.orderId; vm.memoExpanded = !!vm.memo; @@ -640,7 +648,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit $timeout(function() { $scope.$apply(); }); - popupService.showAlert(gettextCatalog.getString('Error at confirm'), bwcError.msg(msg)); + popupService.showAlert(gettextCatalog.getString('Error at confirm'), bwcError.msg(msg), function () { + $ionicHistory.goBack(); + }); }; function setupTx(tx) { @@ -825,7 +835,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit if (tx.sendMax && sendMaxInfo.amount == 0) { ongoingProcess.set('calculatingFee', false); setNotReady(gettextCatalog.getString('Insufficient confirmed funds')); - popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Not enough funds for fee')); + popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Not enough funds for fee'), function () { + $ionicHistory.goBack(); + }); return cb('no_funds'); } From 18c8f4cf07929d0cab601964ded35f7cf2ff78f5 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 14:17:42 +1200 Subject: [PATCH 62/93] formatted-amount for transaction proposals and wallet activity. --- www/views/includes/txp.html | 2 +- www/views/includes/walletActivity.html | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/www/views/includes/txp.html b/www/views/includes/txp.html index 4a1f07aaf..82391bfa2 100644 --- a/www/views/includes/txp.html +++ b/www/views/includes/txp.html @@ -24,7 +24,7 @@ (possible double spend)
- – {{tx.amountStr}} + –
diff --git a/www/views/includes/walletActivity.html b/www/views/includes/walletActivity.html index 3a2b78ab1..e1fdb504f 100644 --- a/www/views/includes/walletActivity.html +++ b/www/views/includes/walletActivity.html @@ -10,7 +10,7 @@
Payment Sent
- {{notification.amountStr}} +
@@ -19,7 +19,7 @@
Payment Received
- {{notification.amountStr}} +
@@ -27,7 +27,7 @@ Proposal Deleted: {{notification.message}}
- {{notification.amountStr}}: + :
@@ -35,7 +35,7 @@ Proposal Rejected: {{notification.message}}
- {{notification.amountStr}}: + :
@@ -43,7 +43,7 @@ New Proposal: {{notification.message}}
- {{notification.amountStr}} +
@@ -51,7 +51,7 @@ Proposal Accepted: {{notification.message}}
- {{notification.amountStr}} +
From 0410ad149109f7e458f11d6f1c2f81d3eacc2c35 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 11:21:29 +0900 Subject: [PATCH 63/93] Add tracking shapeshift --- src/js/routes.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/js/routes.js b/src/js/routes.js index b5a9c91fe..d2b78aac3 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1277,6 +1277,13 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr }); window.BitAnalytics.ActionHandlers.trackAction(actionTabOpen); + var actionShapeShiftStart = new window.BitAnalytics.ActionFactory.createAction('click', { + name: 'shapeshift_start_click', + class: 'track_shapeshift_start_click', + channels: [channel] + }); + window.BitAnalytics.ActionHandlers.trackAction(actionShapeShiftStart); + // Init language uxLanguage.init(function (lang) { From 4dd334087b6f84537c3e7d05a772acd5279a2df3 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 14:24:41 +1200 Subject: [PATCH 64/93] Removed formatted amount from the entry of the Amount screen as it was causing a bug. --- www/views/amount.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/views/amount.html b/www/views/amount.html index 8d263eae3..ab56052ab 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -16,12 +16,12 @@
- + {{vm.amount || '0'}} {{vm.unit}}
- + {{vm.alternativeAmount || '0.00'}} {{vm.alternativeUnit}}
From 8d404f19081d93169d72632386ea087a42be2185 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 16:19:24 +1200 Subject: [PATCH 65/93] Handle null wallet. --- src/js/directives/walletBalanceDirective.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js index 5b2a41b6c..4c42a42f9 100644 --- a/src/js/directives/walletBalanceDirective.js +++ b/src/js/directives/walletBalanceDirective.js @@ -66,6 +66,11 @@ function formatBalance() { var displayAsFiat = $scope.displayAsFiat === 'true'; + if (!$scope.wallet) { + setDisplay('', ''); + return; + } + var wallet = null; try { wallet = JSON.parse($scope.wallet); From 3ff0f50a7b5de1e49a89661268a37dccc2fbaaa3 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 16:20:26 +1200 Subject: [PATCH 66/93] Added quotes. --- www/views/tab-send.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/tab-send.html b/www/views/tab-send.html index a4051b8f1..43918cac8 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -16,7 +16,7 @@ >

{{fromWallet.name}}

- + From ee84235d3adf8e149bdf8769877359ce0e5c14b0 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 14:05:46 +0900 Subject: [PATCH 67/93] Top bar message --- src/js/controllers/walletSelectorController.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index 74ed874d4..89d77cc3e 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -34,6 +34,9 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu } break; default: + if (!stateParams.thirdParty) { + $scope.sendFlowTitle = gettextCatalog.getString('Send'); + } // nop } From 812ed5f1cd772c6b03191d16c819f9dd814bc265 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 17:13:24 +1200 Subject: [PATCH 68/93] wallet-balance workaround for wallet not being stringify-able, and hence not being interpolatable, and hence not being able to pass it to the directive. --- src/js/directives/walletBalanceDirective.js | 55 ++++++++++++--------- www/views/tab-send.html | 8 ++- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/js/directives/walletBalanceDirective.js b/src/js/directives/walletBalanceDirective.js index 4c42a42f9..1fea59203 100644 --- a/src/js/directives/walletBalanceDirective.js +++ b/src/js/directives/walletBalanceDirective.js @@ -10,7 +10,12 @@ scope: { displayAsFiat: '@', totalBalanceSat: '@', - wallet: '@' + // The Wallet object is sometimes not stringify()-able, so not interpolatable, + // so can't be passed to a directive. + walletStatus: '@', + walletCachedBalance: '@', + walletCachedBalanceUpdatedOn: '@', + walletCachedStatus: '@' }, templateUrl: 'views/includes/wallet-balance.html', controller: walletBalanceController @@ -25,38 +30,38 @@ formatBalance(); }); - function displayCryptoBalance(wallet) { + function displayCryptoBalance(walletStatus, walletCachedBalance, walletCachedBalanceUpdatedOn, walletCachedStatus) { console.log('displayCryptoBalance()'); - if (wallet.status && wallet.status.isValid && wallet.status.totalBalanceStr) { - setDisplay(wallet.status.totalBalanceStr, ''); + if (walletStatus && walletStatus.isValid && walletStatus.totalBalanceStr) { + setDisplay(walletStatus.totalBalanceStr, ''); cryptoBalanceHasBeenDisplayed = true; return; } - if (wallet.cachedBalance) { - setDisplay(wallet.cachedBalance, wallet.cachedBalanceUpdatedOn); + if (walletCachedBalance) { + setDisplay(walletCachedBalance, walletCachedBalanceUpdatedOn); return; } - if (wallet.cachedStatus && wallet.status.isValid && wallet.cachedStatus.totalBalanceStr) { - setDisplay(wallet.cachedStatus.totalBalanceStr, ''); + if (walletCachedStatus && walletCachedStatus.isValid && walletCachedStatus.totalBalanceStr) { + setDisplay(walletCachedStatus.totalBalanceStr, ''); return; } setDisplay('', ''); } - function displayFiatBalance(wallet) { + function displayFiatBalance(walletStatus, walletCachedStatus) { var displayAmount = ''; - if (wallet.status && wallet.status.isValid && wallet.status.alternativeBalanceAvailable) { - displayAmount = wallet.status.totalBalanceAlternative + ' ' + wallet.status.alternativeIsoCode; + if (walletStatus && walletStatus.isValid && walletStatus.alternativeBalanceAvailable) { + displayAmount = walletStatus.totalBalanceAlternative + ' ' + walletStatus.alternativeIsoCode; setDisplay(displayAmount, ''); return; } - if (wallet.cachedStatus && wallet.cachedStatus.isValid && wallet.cachedStatus.alternativeBalanceAvailable) { - displayAmount = wallet.cachedStatus.totalBalanceAlternative + ' ' + wallet.cachedStatus.alternativeIsoCode; + if (walletCachedStatus && walletCachedStatus.isValid && walletCachedStatus.alternativeBalanceAvailable) { + displayAmount = walletCachedStatus.totalBalanceAlternative + ' ' + walletCachedStatus.alternativeIsoCode; setDisplay(displayAmount, ''); return; } @@ -66,26 +71,30 @@ function formatBalance() { var displayAsFiat = $scope.displayAsFiat === 'true'; - if (!$scope.wallet) { - setDisplay('', ''); - return; + + var walletStatusObj = null; + var walletCachedBalance = null; + var walletCachedBalanceUpdatedOn = null; + var walletCachedStatusObj = null; + + try { + walletStatusObj = JSON.parse($scope.walletStatus); + } catch (e) { + $log.warn('Failed to parse walletStatus.', e); } - var wallet = null; try { - wallet = JSON.parse($scope.wallet); + walletCachedStatusObj = JSON.parse($scope.walletCachedStatus); } catch (e) { - $log.error('Error parsing wallet to display balance.', e); - setDisplay('', ''); - return; + $log.warn('Failed to parse walletCachedStatus.', e); } if (!displayAsFiat || displayAsFiat && !cryptoBalanceHasBeenDisplayed) { - displayCryptoBalance(wallet); + displayCryptoBalance(walletStatusObj, walletCachedBalance, walletCachedBalanceUpdatedOn, walletCachedStatusObj); } if (displayAsFiat) { - displayFiatBalance(wallet); + displayFiatBalance(walletStatusObj, walletCachedStatusObj); } } diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 43918cac8..339ac3556 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -16,7 +16,13 @@ >

{{fromWallet.name}}

- + From d88d3365ad746e976a8cb9aa48b86096f77b6ba5 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 19:09:55 +1200 Subject: [PATCH 69/93] Fix for long amounts on iPhone 5 / SE. Fix for buttons below amounts on iPhone 5 / SE. --- src/sass/views/amount.scss | 60 +++++++++++++++++++++----------------- www/views/amount.html | 27 +++++++++-------- 2 files changed, 48 insertions(+), 39 deletions(-) diff --git a/src/sass/views/amount.scss b/src/sass/views/amount.scss index ca32c6ac4..bf4d3506a 100644 --- a/src/sass/views/amount.scss +++ b/src/sass/views/amount.scss @@ -305,7 +305,8 @@ &.very-long { input, .unit, .primary-amount-display { - font-size: 0.9em; + font-size: 1.2em; // OK for iPhone 5 / SE with BCH to 8dp + @media (min-width: 375px) { font-size: 1.3em; @@ -382,41 +383,46 @@ .available-funds { color: #6F6F70; + text-align: left; + } + + .change-currency { + text-align: right; } .warning { color: $v-warning-color-2; } - .extra, - button.extra { - /*display: flex;*/ - flex: 0 1 auto; - } - - button.extra { - background: none; - border: none; - color: #000; - font-family: 'ProximaNova'; - font-size: 14px; + .extra { + flex: 1; line-height: normal; - min-height: auto; - min-width: auto; - padding: 0; - } - .button .icon:before { - font-size: 14px; - line-height: normal; - } - + .button { + background: none; + border: none; + border-radius: 0; + color: #000; + font-family: 'ProximaNova'; + font-size: 14px; + line-height: normal; + min-height: auto; + min-width: auto; + padding: 0; + } - .button { - span { - display: flex; - align-items: center; - justify-content: center; + .button .icon:before { + font-size: 14px; + line-height: normal; + } + + + .button { + span { + display: flex; + align-items: center; + justify-content: center; + } } } } diff --git a/www/views/amount.html b/www/views/amount.html index 8d263eae3..b69431b6b 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -14,14 +14,14 @@
+ ng-class="{long: vm.amount.length > 5, 'very-long': vm.amount.length > 8}"> - + {{vm.amount || '0'}} {{vm.unit}}
- + {{vm.alternativeAmount || '0.00'}} {{vm.alternativeUnit}}
@@ -34,17 +34,20 @@
- -
+ +
+
- Available Funds: + Available Funds: +
From 9e118350007d5231348c4e8d1dbe7ef7231bfd37 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Fri, 10 Aug 2018 19:45:43 +1200 Subject: [PATCH 70/93] Equal sized digits on Wallet Details alternative balance. --- www/views/walletDetails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index 2480099b5..6e05862aa 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -46,7 +46,7 @@ class="size-14 amount-alternative" ng-if="status.totalBalanceStr && wallet.network == 'livenet'" ng-style="{opacity: altAmountOpacity}"> - + From 9e28c4ec4539a32bfa33b90ef005b3bfc357a0ae Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 17:20:04 +0900 Subject: [PATCH 71/93] Fix bug send max with thirdparty (Shapeshift) --- src/js/controllers/amount.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 8e458045e..00c9461f5 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -464,7 +464,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, }; if (vm.thirdParty) { - confirmData['thirdParty'] = this.thirdParty; + confirmData.thirdParty = vm.thirdParty; } sendFlowService.pushState(confirmData); From dd75f581e7d068d8e0582bf6509d8e72535addca Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Fri, 10 Aug 2018 10:47:16 +0200 Subject: [PATCH 72/93] move stateParams and fromWallet outside of the clipboar function --- src/js/controllers/tab-send.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 81b3e4ca5..3f1da01fc 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -28,14 +28,15 @@ angular.module('copayApp.controllers').controller('tabSendController', function( }; $scope.$on("$ionicView.enter", function(event, data) { + + var stateParams = sendFlowService.getState(); + $scope.fromWallet = profileService.getWallet(stateParams.fromWalletId); + clipboardService.readFromClipboard(function(text) { if (text.length > 200) { text = text.substring(0, 200); } - var stateParams = sendFlowService.getState(); - $scope.fromWallet = profileService.getWallet(stateParams.fromWalletId); - $scope.clipboardHasAddress = false; $scope.clipboardHasContent = false; if ((text.indexOf('bitcoincash:') === 0 || text[0] === 'C' || text[0] === 'H' || text[0] === 'p' || text[0] === 'q') && text.replace('bitcoincash:', '').length === 42) { // CashAddr From 3365a61d6234c72fcfdddd0dd6e434a97ad6e59f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 17:47:21 +0900 Subject: [PATCH 73/93] invalidate cache --- src/js/controllers/tab-home.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 9c4f2bee9..318fcece2 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -214,6 +214,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', var j = 0; lodash.each(wallets, function(wallet) { + walletService.invalidateCache(wallet); // Temporary solution, to have the good balance, when we ask to reload the wallets. walletService.getStatus(wallet, {}, function(err, status) { if (err) { From 5185c6ee3ccb579064e29c8f42ad57d3320a9904 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 18:41:47 +0900 Subject: [PATCH 74/93] Fix amount --- src/js/directives/formattedAmount.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 1a05fd360..9f70b37ed 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -90,7 +90,7 @@ // to both being in value. Don't want to use previous currency value. // Try to extract currency from value.. var currencySplit = $scope.value.split(" "); - if (currencySplit.length === 2) { + if (currencySplit.length === 2 && !$scope.currency) { $scope.currency = currencySplit[1]; } $scope.currency = $scope.currency || ''; From daf9bb535653cedec9f5ea1c484d10fcf42ddf2e Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 18:43:28 +0900 Subject: [PATCH 75/93] Notify to reload home tab --- src/js/controllers/tab-receive.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 190f1b752..c822b4521 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -158,6 +158,10 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi soundService.play('misc/payment_received.mp3'); } + // Notify new tx + $scope.$emit('bwsEvent', $scope.wallet.id); + + $scope.$apply(function () { $scope.showingPaymentReceived = true; }); From 949cbc76979d6ec964594c97cd5630d6b647c879 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 10 Aug 2018 19:04:53 +0900 Subject: [PATCH 76/93] Cleaning code --- src/js/controllers/walletSelectorController.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index 89d77cc3e..ba5b4c418 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -17,7 +17,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu sendFlowService.popState(); } - var stateParams = sendFlowService.getState(); + $scope.params = sendFlowService.getState(); var config = configService.getSync().wallet.settings; priceDisplayAsFiat = config.priceDisplay === 'fiat'; @@ -29,18 +29,17 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); break; case 'tabs.send.destination': - if (stateParams.fromWalletId) { + if ($scope.params.fromWalletId) { $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); } break; default: - if (!stateParams.thirdParty) { + if (!$scope.params.thirdParty) { $scope.sendFlowTitle = gettextCatalog.getString('Send'); } // nop } - $scope.params = sendFlowService; $scope.coin = false; // Wallets to show (for destination screen or contacts) $scope.type = $scope.params['fromWalletId'] ? 'destination' : 'origin'; // origin || destination fromWalletId = $scope.params['fromWalletId']; From e4c5da0d4414a00e4eace80139859322c57e2350 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Fri, 10 Aug 2018 12:07:24 +0200 Subject: [PATCH 77/93] thirdParty fix --- src/js/services/incomingData.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 86c928a5e..4c2b71de8 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -447,7 +447,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat amount: thirdPartyData.amount, toAddress: thirdPartyData.toAddress, coin: coin, - thirdParty: JSON.stringify(thirdPartyData) + thirdParty: thirdPartyData }; // fee @@ -455,6 +455,8 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat stateParams.requiredFeeRate = thirdPartyData.requiredFeeRate * 1024; } + sendFlowService.pushState(thirdPartyData); + scannerService.pausePreview(); $state.go('tabs.send', {}, { 'reload': true, From f86ab3faecc9febf2b5de91c1001ddc85eb5c6f9 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Fri, 10 Aug 2018 12:42:28 +0200 Subject: [PATCH 78/93] revert code cleanup --- src/js/controllers/walletSelectorController.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index ba5b4c418..89d77cc3e 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -17,7 +17,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu sendFlowService.popState(); } - $scope.params = sendFlowService.getState(); + var stateParams = sendFlowService.getState(); var config = configService.getSync().wallet.settings; priceDisplayAsFiat = config.priceDisplay === 'fiat'; @@ -29,17 +29,18 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); break; case 'tabs.send.destination': - if ($scope.params.fromWalletId) { + if (stateParams.fromWalletId) { $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); } break; default: - if (!$scope.params.thirdParty) { + if (!stateParams.thirdParty) { $scope.sendFlowTitle = gettextCatalog.getString('Send'); } // nop } + $scope.params = sendFlowService; $scope.coin = false; // Wallets to show (for destination screen or contacts) $scope.type = $scope.params['fromWalletId'] ? 'destination' : 'origin'; // origin || destination fromWalletId = $scope.params['fromWalletId']; From d28ba24e1c63500c1129c0e1aa2dfd5d297487d2 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Fri, 10 Aug 2018 15:10:44 +0200 Subject: [PATCH 79/93] receive specific amount fix to use sendFlowService --- src/js/controllers/tab-receive.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index c822b4521..0e80f4382 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('tabReceiveController', function($rootScope, $scope, $timeout, $log, $ionicModal, $state, $ionicHistory, $ionicPopover, storageService, platformInfo, walletService, profileService, configService, lodash, gettextCatalog, popupService, bwcError, bitcoinCashJsService, $ionicNavBarDelegate, txFormatService, soundService, clipboardService) { +angular.module('copayApp.controllers').controller('tabReceiveController', function($rootScope, $scope, $timeout, $log, $ionicModal, $state, $ionicHistory, $ionicPopover, storageService, platformInfo, walletService, profileService, configService, lodash, gettextCatalog, popupService, bwcError, bitcoinCashJsService, $ionicNavBarDelegate, sendFlowService, txFormatService, soundService, clipboardService) { var listeners = []; $scope.bchAddressType = { type: 'cashaddr' }; @@ -18,9 +18,10 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.displayBalanceAsFiat = true; $scope.requestSpecificAmount = function() { - $state.go('tabs.paymentRequest.amount', { + sendFlowService.pushState({ toWalletId: $scope.wallet.credentials.walletId }); + $state.go('tabs.paymentRequest.amount'); }; $scope.setAddress = function(newAddr, copyAddress) { From 5445ddbecd62bc3585bc6c08883b02d865ce07d0 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 10:00:39 +1200 Subject: [PATCH 80/93] Fix for wallet selection header when in Shapeshift flow. Also fixed a coin already present bug that occurred in subsequent Shapeshift flows. --- src/js/controllers/amount.js | 5 +-- src/js/controllers/review.controller.js | 4 +- src/js/controllers/tab-send.js | 8 ++-- .../controllers/walletSelectorController.js | 24 +++++----- src/js/services/incomingData.js | 5 ++- src/js/services/sendFlowService.js | 44 +++++++++++-------- 6 files changed, 47 insertions(+), 43 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 00c9461f5..c2dcc6cd4 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -67,15 +67,14 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, } function onBeforeEnter(event, data) { - console.log('amount onBeforeEnter sendflow ', sendFlowService.getState()); - if (data.direction == "back") { sendFlowService.popState(); } + console.log('amount onBeforeEnter after back sendflow ', sendFlowService.state); initCurrencies(); - passthroughParams = sendFlowService; + passthroughParams = sendFlowService.getStateClone(); vm.fromWalletId = passthroughParams.fromWalletId; vm.toWalletId = passthroughParams.toWalletId; diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index d41d4a9b0..3c528c1f9 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -75,9 +75,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit function onBeforeEnter(event, data) { - console.log('walletSelector onBeforeEnter sendflow ', sendFlowService.getState()); + console.log('walletSelector onBeforeEnter sendflow ', sendFlowService.state); defaults = configService.getDefaults(); - sendFlowData = sendFlowService.getState(); + sendFlowData = sendFlowService.getStateClone(); originWalletId = sendFlowData.fromWalletId; satoshis = parseInt(sendFlowData.amount, 10); toAddress = sendFlowData.toAddress; diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 3f1da01fc..9ac6c35cb 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -29,7 +29,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.$on("$ionicView.enter", function(event, data) { - var stateParams = sendFlowService.getState(); + var stateParams = sendFlowService.getStateClone(); $scope.fromWallet = profileService.getWallet(stateParams.fromWalletId); clipboardService.readFromClipboard(function(text) { @@ -184,7 +184,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $log.debug('Got toAddress:' + toAddress + ' | ' + item.name); - var stateParams = sendFlowService.getState(); + var stateParams = sendFlowService.getStateClone(); stateParams.toAddress = toAddress, stateParams.coin = item.coin; sendFlowService.pushState(stateParams); @@ -200,7 +200,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.startWalletToWalletTransfer = function() { console.log('startWalletToWalletTransfer()'); - var params = sendFlowService.getState(); + var params = sendFlowService.getStateClone(); sendFlowService.pushState(params); $state.transitionTo('tabs.send.wallet-to-wallet', { fromWalletId: sendFlowService.fromWalletId @@ -222,7 +222,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( $scope.$on("$ionicView.beforeEnter", function(event, data) { console.log(data); - console.log('tab-send onBeforeEnter sendflow ', sendFlowService.getState()); + console.log('tab-send onBeforeEnter sendflow ', sendFlowService.state); $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index ba5b4c418..7a7c5a463 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -11,13 +11,12 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.$on("$ionicView.enter", onEnter); function onBeforeEnter(event, data) { - console.log('walletSelector onBeforeEnter sendflow', sendFlowService.getState()); - if (data.direction == "back") { sendFlowService.popState(); } + console.log('walletSelector onBeforeEnter after back sendflow', sendFlowService.state); - $scope.params = sendFlowService.getState(); + $scope.params = sendFlowService.getStateClone(); var config = configService.getSync().wallet.settings; priceDisplayAsFiat = config.priceDisplay === 'fiat'; @@ -29,7 +28,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); break; case 'tabs.send.destination': - if ($scope.params.fromWalletId) { + if ($scope.params.fromWalletId && !$scope.params.thirdParty) { $scope.sendFlowTitle = gettextCatalog.getString('Wallet to Wallet Transfer'); } break; @@ -45,7 +44,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu fromWalletId = $scope.params['fromWalletId']; if ($scope.type === 'destination' && $scope.params.toAddress) { - $state.transitionTo(getNextStep()); + $state.transitionTo(getNextStep($scope.params)); } if ($scope.params.coin) { @@ -105,13 +104,10 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu } } - function getNextStep() { - if ($scope.thirdParty) { - $scope.params.thirdParty = $scope.thirdParty - } - if (!$scope.params.toWalletId && !$scope.params.toAddress) { // If we have no toAddress or fromWallet + function getNextStep(params) { + if (!params.toWalletId && !params.toAddress) { // If we have no toAddress or fromWallet return 'tabs.send.destination'; - } else if (!$scope.params.amount) { // If we have no amount + } else if (!params.amount) { // If we have no amount return 'tabs.send.amount'; } else { // If we do have them return 'tabs.send.review'; @@ -195,14 +191,16 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu $scope.useWallet = function(wallet) { - var params = sendFlowService.getState(); + var params = sendFlowService.getStateClone(); if ($scope.type === 'origin') { // we're on the origin screen, set wallet to send from params.fromWalletId = wallet.id; } else { // we're on the destination screen, set wallet to send to params.toWalletId = wallet.id; } sendFlowService.pushState(params); - $state.transitionTo(getNextStep(), $scope.params); + var nextStep = getNextStep(params); + console.log('walletSelector nextStep', nextStep); + $state.transitionTo(nextStep, $scope.params); }; $scope.goBack = function() { diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 4c2b71de8..9fad8b0f5 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -82,7 +82,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }); // Timeout is required to enable the "Back" button $timeout(function() { - var params = sendFlowService.getState(); + var params = sendFlowService.getStateClone(); if (amount) { params.amount = amount; @@ -455,7 +455,8 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat stateParams.requiredFeeRate = thirdPartyData.requiredFeeRate * 1024; } - sendFlowService.pushState(thirdPartyData); + // This does not make sense, thirdPartyData gets added by stateParams below + //sendFlowService.pushState(thirdPartyData); scannerService.pausePreview(); $state.go('tabs.send', {}, { diff --git a/src/js/services/sendFlowService.js b/src/js/services/sendFlowService.js index 29686b15b..fcb061c26 100644 --- a/src/js/services/sendFlowService.js +++ b/src/js/services/sendFlowService.js @@ -9,17 +9,21 @@ angular function sendFlowService($log) { var service = { - amount: '', - fromWalletId: '', - sendMax: false, - thirdParty: null, - toAddress: '', - toWalletId: '', + // A separate state variable so we can ensure it is cleared of everything, + // even other properties added that this service does not know about. (such as "coin") + state: { + amount: '', + fromWalletId: '', + sendMax: false, + thirdParty: null, + toAddress: '', + toWalletId: '' + }, previousStates: [], // Functions clear: clear, - getState: getState, + getStateClone: getStateClone, map: map, popState: popState, pushState: pushState, @@ -36,22 +40,24 @@ angular function clearCurrent() { console.log("sendFlow clearCurrent()"); - service.amount = ''; - service.fromWalletId = ''; - service.sendMax = false; - service.thirdParty = null; - service.toAddress = ''; - service.toWalletId = ''; + service.state = { + amount: '', + fromWalletId: '', + sendMax: false, + thirdParty: null, + toAddress: '', + toWalletId: '' + } } /** * Handy for debugging */ - function getState() { + function getStateClone() { var currentState = {}; - Object.keys(service).forEach(function forCurrentParam(key) { - if (typeof service[key] !== 'function' && key !== 'previousStates') { - currentState[key] = service[key]; + Object.keys(service.state).forEach(function forCurrentParam(key) { + if (typeof service.state[key] !== 'function' && key !== 'previousStates') { + currentState[key] = service.state[key]; } }); return currentState; @@ -68,7 +74,7 @@ angular function map(params) { Object.keys(params).forEach(function forNewParam(key) { - service[key] = params[key]; + service.state[key] = params[key]; }); }; @@ -85,7 +91,7 @@ angular function pushState(params) { console.log('sendFlow push'); - var currentParams = getState(); + var currentParams = getStateClone(); service.previousStates.push(currentParams); clearCurrent(); map(params); From 84fd483f1911b584bd4d8134028916ad79ee569a Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 10:47:00 +1200 Subject: [PATCH 81/93] Fix for removing dark portion of Review Transaction screen below personal note. --- src/sass/views/review.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sass/views/review.scss b/src/sass/views/review.scss index 79bca1896..c530a1cef 100644 --- a/src/sass/views/review.scss +++ b/src/sass/views/review.scss @@ -1,5 +1,4 @@ #view-review { - background-color: #494949; slide-to-accept, slide-to-accept-success { margin-bottom: constant(safe-area-inset-bottom); /* iOS 11.0 */ From 80c9d682b59628c88b03b8034149e2eaa8ffff2d Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 11:23:15 +1200 Subject: [PATCH 82/93] Fix in formatted-amount of display of subcent fees in transactions details page. --- src/js/directives/formattedAmount.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 9f70b37ed..68bb50781 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -86,15 +86,24 @@ } function formatNumbers() { + console.log('formatNumbers() "' + $scope.value + '", "' + $scope.currency + '"'); + // Might get "< 0.01 USD" being passed in. // During watch, may be changed from having a separate currency value, // to both being in value. Don't want to use previous currency value. // Try to extract currency from value.. var currencySplit = $scope.value.split(" "); - if (currencySplit.length === 2 && !$scope.currency) { - $scope.currency = currencySplit[1]; + if (currencySplit.length >= 2 && !$scope.currency) { + $scope.currency = currencySplit[currencySplit.length - 1]; } $scope.currency = $scope.currency || ''; + // Redo this when we have proper formatting for low fees + if ($scope.value.indexOf("<") === 0) { + buildAmount($scope.value, '', ''); + $scope.currency = ''; + $scope.canShow = true; + return; + } var parsed = parseFloat($scope.value); var valueFormatted = ''; From 098d454b8ba5e467be1bb30d8f193cdbc15b19b6 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 15:43:20 +1200 Subject: [PATCH 83/93] Fixed formatting of numbers in the thousands. --- src/js/directives/formattedAmount.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 68bb50781..55051f07d 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -105,6 +105,9 @@ return; } + // Remove thousands separators for parseFloat() + $scope.value = $scope.value.replace(',', ''); + var parsed = parseFloat($scope.value); var valueFormatted = ''; var valueProcessing = ''; From a29a41b6472f996330121ad2ddc3b039cd27878d Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 15:48:20 +1200 Subject: [PATCH 84/93] Removed console.log(). --- src/js/directives/formattedAmount.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 55051f07d..f66a0ac78 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -86,7 +86,6 @@ } function formatNumbers() { - console.log('formatNumbers() "' + $scope.value + '", "' + $scope.currency + '"'); // Might get "< 0.01 USD" being passed in. // During watch, may be changed from having a separate currency value, // to both being in value. Don't want to use previous currency value. From 430f4644eb191dc240ae0a11add7ef79fecbfe0a Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Mon, 13 Aug 2018 13:32:20 +0900 Subject: [PATCH 85/93] Fix formatted amount. --- src/js/directives/formattedAmount.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index f66a0ac78..1f51d33e3 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -90,11 +90,12 @@ // During watch, may be changed from having a separate currency value, // to both being in value. Don't want to use previous currency value. // Try to extract currency from value.. + $scope.currency = $scope.currency || ''; + var currencySplit = $scope.value.split(" "); - if (currencySplit.length >= 2 && !$scope.currency) { + if (currencySplit.length >= 2 && $scope.currency.length === 0) { $scope.currency = currencySplit[currencySplit.length - 1]; } - $scope.currency = $scope.currency || ''; // Redo this when we have proper formatting for low fees if ($scope.value.indexOf("<") === 0) { From 6de4f2ecda3fb91e251c79126953c49bd739f671 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 16:45:46 +1200 Subject: [PATCH 86/93] Enlarged Wallet Details header to fit Receive and Send buttons without covering the unlocked balance. --- src/js/controllers/walletDetails.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index e6a8e2351..1aaef7581 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -304,6 +304,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun }; function refreshAmountSection(scrollPos) { + var AMOUNT_HEIGHT_BASE = 270; $scope.showBalanceButton = false; if ($scope.status) { $scope.showBalanceButton = ($scope.status.totalBalanceSat != $scope.status.spendableAmount); @@ -315,16 +316,16 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun } scrollPos = scrollPos || 0; - var amountHeight = 210 - scrollPos; + var amountHeight = AMOUNT_HEIGHT_BASE - scrollPos; if (amountHeight < 80) { amountHeight = 80; } var contentMargin = amountHeight; - if (contentMargin > 210) { - contentMargin = 210; + if (contentMargin > AMOUNT_HEIGHT_BASE) { + contentMargin = AMOUNT_HEIGHT_BASE; } - var amountScale = (amountHeight / 210); + var amountScale = (amountHeight / AMOUNT_HEIGHT_BASE); if (amountScale < 0.5) { amountScale = 0.5; } From 0b71daf04d6a3c7241a5c785843bd42488445c7b Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 13 Aug 2018 16:51:38 +1200 Subject: [PATCH 87/93] Removed previous fix as it is superceded by a better one. --- src/sass/views/walletDetails.scss | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/sass/views/walletDetails.scss b/src/sass/views/walletDetails.scss index 79326951e..858229d85 100644 --- a/src/sass/views/walletDetails.scss +++ b/src/sass/views/walletDetails.scss @@ -262,11 +262,6 @@ padding-top: 45px; } - .button-white-outline.button-outline.activated { - color: $v-primary-color; - border-color: white; - } - .item.item-footer { font-weight: lighter; } From 52e1b5e8116969ade33515e62ab5038da8045d41 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Mon, 13 Aug 2018 14:13:49 +0900 Subject: [PATCH 88/93] Manage the currency state --- src/js/directives/formattedAmount.js | 26 ++++++++++++++++-------- www/views/includes/formatted-amount.html | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/js/directives/formattedAmount.js b/src/js/directives/formattedAmount.js index 1f51d33e3..f81615593 100644 --- a/src/js/directives/formattedAmount.js +++ b/src/js/directives/formattedAmount.js @@ -26,9 +26,14 @@ } }); - function formattedAmountController($scope, $timeout, uxLanguage) { - $scope.canShow = false; + function formattedAmountController($scope, uxLanguage) { + $scope.vm = {}; + var vm = $scope.vm; + vm.currency = ''; + vm.value = ''; + + $scope.canShow = false $scope.displaySizeEqual = !!$scope.sizeEqual; var decimalPlaces = { @@ -90,17 +95,19 @@ // During watch, may be changed from having a separate currency value, // to both being in value. Don't want to use previous currency value. // Try to extract currency from value.. - $scope.currency = $scope.currency || ''; - - var currencySplit = $scope.value.split(" "); - if (currencySplit.length >= 2 && $scope.currency.length === 0) { - $scope.currency = currencySplit[currencySplit.length - 1]; + if (!$scope.currency || $scope.currency.length === 0) { + var currencySplit = $scope.value.split(" "); + if (currencySplit.length >= 2) { + vm.currency = currencySplit[currencySplit.length - 1]; + } + } else { + vm.currency = $scope.currency; } // Redo this when we have proper formatting for low fees if ($scope.value.indexOf("<") === 0) { buildAmount($scope.value, '', ''); - $scope.currency = ''; + vm.currency = ''; $scope.canShow = true; return; } @@ -111,7 +118,7 @@ var parsed = parseFloat($scope.value); var valueFormatted = ''; var valueProcessing = ''; - switch (getDecimalPlaces($scope.currency)) { + switch (getDecimalPlaces(vm.currency)) { case '0': if (isNaN(parsed)) { buildAmount('-', '', ''); @@ -158,6 +165,7 @@ break; } $scope.canShow = true; + $scope.$apply(); }; function getDecimalPlaces(currency) { diff --git a/www/views/includes/formatted-amount.html b/www/views/includes/formatted-amount.html index 24149849d..45451a718 100644 --- a/www/views/includes/formatted-amount.html +++ b/www/views/includes/formatted-amount.html @@ -1,4 +1,4 @@
- {{start}}{{middle}}{{end}}{{currency}} + {{start}}{{middle}}{{end}}{{vm.currency}}
\ No newline at end of file From c54cb55c51e4737a89e05ec92dfd0784a078319a Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Mon, 13 Aug 2018 14:44:07 +0900 Subject: [PATCH 89/93] Custom amount crypto decimal --- www/views/customAmount.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/www/views/customAmount.html b/www/views/customAmount.html index b361a6da9..a7130a729 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -32,15 +32,15 @@
- {{amountUnitStr}} +
- {{altAmountStr | uppercase}} +
- {{altAmountStr | uppercase}} +
- {{amountUnitStr}} +
From 30230304b695bdb76606849778f2ee7e625bf5fd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Mon, 13 Aug 2018 16:13:29 +0900 Subject: [PATCH 90/93] Fix height header --- src/js/controllers/walletDetails.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index 1aaef7581..ec787a5f4 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -304,10 +304,13 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun }; function refreshAmountSection(scrollPos) { - var AMOUNT_HEIGHT_BASE = 270; + var AMOUNT_HEIGHT_BASE = 210; $scope.showBalanceButton = false; if ($scope.status) { $scope.showBalanceButton = ($scope.status.totalBalanceSat != $scope.status.spendableAmount); + if ($scope.showBalanceButton) { + AMOUNT_HEIGHT_BASE = 270; + } } if (!$scope.amountIsCollapsible) { var t = ($scope.showBalanceButton ? 15 : 45); From 1dad3ab3fd3a3981658ca3537d151d4d9ac433be Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Mon, 13 Aug 2018 13:48:41 +0200 Subject: [PATCH 91/93] Many translation fixes. Missing translations in template.pot and added some in views --- i18n/po/template.pot | 40 ++++++++++++++++++++++--- src/js/controllers/review.controller.js | 1 + www/views/amount.html | 2 +- www/views/review.html | 14 ++++----- www/views/tab-send.html | 2 +- www/views/tx-details.html | 4 +-- 6 files changed, 48 insertions(+), 15 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index d8281988f..bdabbc318 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -72,6 +72,26 @@ msgstr "" msgid "Instant transactions with low fees" msgstr "" +#: www/views/walletSelector.html:49 +msgid "Insufficient funds" +msgstr "" + +#: www/views/amount.html:42 +msgid "Change Currency" +msgstr "" + +#: www/views/amount.html:49 +msgid "Available Funds" +msgstr "" + +#: www/views/amount.html:59 +msgid "Use All Available Funds" +msgstr "" + +#: www/views/amount.html:99 +msgid "Next" +msgstr "" + #: www/views/preferencesBitpayServices.html:23 msgid "Accounts" msgstr "" @@ -1287,6 +1307,7 @@ msgstr "" #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 #: www/views/tx-details.html:52 +#: www/views/review.html:22 msgid "From" msgstr "" @@ -3072,6 +3093,14 @@ msgstr "" msgid "This bitcoin payment request has expired." msgstr "" +#: www/views/review.html:55 +msgid "Payment expires:" +msgstr "" + +#: www/views/review.html:56 +msgid "Payment request has expired" +msgstr "" + #: www/views/join.html:133 #: www/views/tab-create-personal.html:103 #: www/views/tab-create-shared.html:132 @@ -3805,10 +3834,6 @@ msgstr "" msgid "You are shifting" msgstr "" -#: www/views/review.html:22 -msgid "From:" -msgstr "" - #: www/views/review.html:36 msgid "To:" msgstr "" @@ -3817,6 +3842,13 @@ msgstr "" msgid "Add personal note" msgstr "" +#: www/views/review.html:87 +msgid "Suggested by merchant:" +msgstr "" + +#: src/js/controllers/review.controller.js:37 +msgid "Enter text here" +msgstr "" #: www/views/review.html:57 msgid "Personal note:" diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 3c528c1f9..c1f120241 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -34,6 +34,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit }; vm.originWallet = null; vm.paymentExpired = false; + vm.personalNotePlaceholder = gettextCatalog.getString('Enter text here'); vm.primaryAmount = ''; vm.primaryCurrency = ''; vm.usingMerchantFee = false; diff --git a/www/views/amount.html b/www/views/amount.html index b69431b6b..939937be8 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -46,7 +46,7 @@
- Available Funds: + Available Funds:
diff --git a/www/views/review.html b/www/views/review.html index f2970da51..50fcfbcac 100644 --- a/www/views/review.html +++ b/www/views/review.html @@ -18,7 +18,7 @@
-
From:
+
From:
@@ -52,7 +52,7 @@

{{vm.destination.name}}

-

Payment expires: {{vm.remainingTimeStr}}

+

Payment expires: {{vm.remainingTimeStr}}

Payment request has expired

@@ -67,14 +67,14 @@ ng-class="{ 'expand-content-revealed': vm.memoExpanded }" ng-click="vm.memoExpanded = !vm.memoExpanded"> - Add personal note + Add personal note
Personal Note:
- +
@@ -84,10 +84,10 @@
-
Suggested by merchant:
+
Suggested by merchant:
-
Fee: Less than 1 cent
-
Fee: {{vm.feeFiat}} {{vm.feeCurrency}}
+
Fee: Less than 1 cent
+
Fee: {{vm.feeFiat}} {{vm.feeCurrency}}
diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 339ac3556..41f5c4451 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -7,7 +7,7 @@
-
From:
+
From:
diff --git a/www/views/tx-details.html b/www/views/tx-details.html index 467ce28e3..3a690aff9 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -24,9 +24,9 @@ Receiving
-
+
- + ... From f51542874b6213a433a929811e464ab2045b458b Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Mon, 13 Aug 2018 14:12:36 +0200 Subject: [PATCH 92/93] small fix: minus before alternative currency --- www/views/includes/walletHistory.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/includes/walletHistory.html b/www/views/includes/walletHistory.html index 296b35b1a..3be30c2b1 100644 --- a/www/views/includes/walletHistory.html +++ b/www/views/includes/walletHistory.html @@ -73,7 +73,7 @@
- +
From 14406f6bc4b295a919fd7a2a5ef8ce346a8edfa0 Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Mon, 13 Aug 2018 15:28:22 +0200 Subject: [PATCH 93/93] template.pot fix --- i18n/po/template.pot | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index bdabbc318..277be03bb 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -1368,10 +1368,6 @@ msgid "Get news and updates from BitPay" msgstr "" #: www/views/onboarding/welcome.html:8 -msgctxt "button" -msgid "Get started" -msgstr "" - #: www/views/bitpayCard.html:49 msgid "Get started" msgstr "" @@ -2663,10 +2659,6 @@ msgstr "" msgid "Send Bitcoin faster!" msgstr "" -#: www/views/tab-send.html:46 -msgid "Send Bitcoin faster!" -msgstr "" - #: www/views/tab-send.html:50 msgid "Save frequently used addresses and send them Bitcoin in just one tap" msgstr "" @@ -2689,6 +2681,7 @@ msgstr "" #: www/views/tab-send.html:72 #: www/views/shapeshift.html:23 +#: www/views/tab-send.html:33 msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." msgstr "" @@ -3142,10 +3135,6 @@ msgstr "" msgid "To get started, buy bitcoin or share your address. You can receive bitcoin from any wallet or service." msgstr "" -#: www/views/tab-send.html:33 -msgid "To get started, you'll need to create a bitcoin wallet and get some bitcoin." -msgstr "" - #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" msgstr ""