From a8ed03693a12f1867cc0535ba8cf4c32efad8936 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 7 Jul 2017 16:57:14 -0300 Subject: [PATCH 001/157] WIP: adds 2fa without user interaction --- src/js/services/coinbaseService.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/services/coinbaseService.js b/src/js/services/coinbaseService.js index 1bee17990..87e732bb1 100644 --- a/src/js/services/coinbaseService.js +++ b/src/js/services/coinbaseService.js @@ -53,6 +53,7 @@ angular.module('copayApp.services').factory('coinbaseService', function($http, $ 'wallet:sells:create,' + 'wallet:transactions:read,' + 'wallet:transactions:send,' + + 'wallet:transactions:send:bypass-2fa,' + 'wallet:payment-methods:read'; // NW has a bug with Window Object From 9abd852f4bdd4f2b5bd6707b165466d57ccb2b9c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 8 May 2017 09:23:47 -0300 Subject: [PATCH 002/157] Mercado Libre: First steps --- src/js/controllers/buyMercadoLibre.js | 271 ++ src/js/controllers/mercadoLibre.js | 24 + src/js/controllers/mercadoLibreCards.js | 106 + .../modals/mercadoLibreCardDetails.js | 83 + src/js/routes.js | 51 + src/js/services/mercadoLibreService.js | 196 ++ src/js/services/storageService.js | 12 + src/sass/views/integrations/integrations.scss | 1 + src/sass/views/integrations/mercadolibre.scss | 141 + src/sass/views/tab-home.scss | 4 + www/img/mercado-libre/24px.svg | 24 + www/img/mercado-libre/giftcard-pt.svg | 2311 +++++++++++++++++ www/img/mercado-libre/icon-ml.svg | 1 + www/img/mercado-libre/mlbr.svg | 166 ++ www/views/buyMercadoLibre.html | 85 + www/views/mercadoLibre.html | 56 + www/views/mercadoLibreCards.html | 31 + .../modals/mercadolibre-card-details.html | 85 + 18 files changed, 3648 insertions(+) create mode 100644 src/js/controllers/buyMercadoLibre.js create mode 100644 src/js/controllers/mercadoLibre.js create mode 100644 src/js/controllers/mercadoLibreCards.js create mode 100644 src/js/controllers/modals/mercadoLibreCardDetails.js create mode 100644 src/js/services/mercadoLibreService.js create mode 100644 src/sass/views/integrations/mercadolibre.scss create mode 100644 www/img/mercado-libre/24px.svg create mode 100644 www/img/mercado-libre/giftcard-pt.svg create mode 100644 www/img/mercado-libre/icon-ml.svg create mode 100644 www/img/mercado-libre/mlbr.svg create mode 100644 www/views/buyMercadoLibre.html create mode 100644 www/views/mercadoLibre.html create mode 100644 www/views/mercadoLibreCards.html create mode 100644 www/views/modals/mercadolibre-card-details.html diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js new file mode 100644 index 000000000..fe8ae653d --- /dev/null +++ b/src/js/controllers/buyMercadoLibre.js @@ -0,0 +1,271 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('buyMercadoLibreController', function($scope, $log, $state, $timeout, $filter, $ionicHistory, lodash, mercadoLibreService, popupService, profileService, ongoingProcess, configService, walletService, payproService, bwcError, externalLinkService, platformInfo) { + + var amount; + var currency; + $scope.isCordova = platformInfo.isCordova; + + $scope.openExternalLink = function(url) { + externalLinkService.open(url); + }; + + var showErrorAndBack = function(msg, err) { + $scope.sendStatus = ''; + err = err && err.errors ? err.errors[0].message : err; + popupService.showAlert(msg, err, function() { + $ionicHistory.goBack(); + }); + }; + + var showError = function(msg, err) { + $scope.sendStatus = ''; + err = err && err.errors ? err.errors[0].message : (err || ''); + popupService.showAlert(msg, err); + }; + + var publishAndSign = function(wallet, txp, onSendStatusChange, cb) { + if (!wallet.canSign() && !wallet.isPrivKeyExternal()) { + var err = 'No signing proposal: No private key'; + $log.info(err); + return cb(err); + } + + walletService.publishAndSign(wallet, txp, function(err, txp) { + if (err) return cb(err); + return cb(null, txp); + }, onSendStatusChange); + }; + + var statusChangeHandler = function(processName, showName, isOn) { + $log.debug('statusChangeHandler: ', processName, showName, isOn); + if (processName == 'buyingGiftCard' && !isOn) { + $scope.sendStatus = 'success'; + $timeout(function() { + $scope.$digest(); + }, 100); + } else if (showName) { + $scope.sendStatus = showName; + } + }; + + var checkTransaction = lodash.throttle(function(count, dataSrc) { + mercadoLibreService.createGiftCard(dataSrc, function(err, giftCard) { +console.log('[buyMercadoLibre.js:53]',giftCard); //TODO + $log.debug("creating gift card " + count); + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + giftCard = {}; + giftCard.status = 'FAILURE'; + showError('Error creating gift card', err); + } + + if (giftCard.status == 'PENDING' && count < 3) { + $log.debug("Waiting for payment confirmation"); + checkTransaction(count + 1, dataSrc); + return; + } + + var now = moment().unix() * 1000; + + var newData = giftCard; + newData['invoiceId'] = dataSrc.invoiceId; + newData['accessKey'] = dataSrc.accessKey; + newData['invoiceUrl'] = dataSrc.invoiceUrl; + newData['amount'] = dataSrc.amount; + newData['currency'] = dataSrc.currency; + newData['date'] = dataSrc.invoiceTime || now; + newData['uuid'] = dataSrc.uuid; + + if (newData.status == 'expired') { + mercadoLibreService.savePendingGiftCard(newData, { + remove: true + }, function(err) { + $log.error(err); + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Invoice expired'); + return; + }); + } + + mercadoLibreService.savePendingGiftCard(newData, null, function(err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + $log.debug("Saving new gift card with status: " + newData.status); + $scope.mlGiftCard = newData; + }); + }); + }, 8000, { + 'leading': true + }); + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + amount = data.stateParams.amount; + currency = data.stateParams.currency; + + /* TODO + if (amount > 2000 || amount < 50) { + showErrorAndBack('Purchase amount must be a value between 50 and 2000'); + return; + } + */ + + $scope.amountUnitStr = $filter('formatFiatAmount')(amount) + ' ' + currency; + + $scope.network = mercadoLibreService.getNetwork(); + $scope.wallets = profileService.getWallets({ + onlyComplete: true, + network: $scope.network, + hasFunds: true + }); + if (lodash.isEmpty($scope.wallets)) { + showErrorAndBack('No wallets with funds'); + return; + } + $scope.wallet = $scope.wallets[0]; // Default first wallet + }); + + $scope.buyConfirm = function() { + + var message = 'Buy gift card for ' + amount + ' ' + currency; + var okText = 'Confirm'; + var cancelText = 'Cancel'; + popupService.showConfirm(null, message, okText, cancelText, function(ok) { + if (!ok) return; + + var config = configService.getSync(); + var configWallet = config.wallet; + var walletSettings = configWallet.settings; + // Selected WalletID as UUID + var uuid = $scope.wallet.id; + var dataSrc = { + currency: currency, + amount: amount, + uuid: uuid + }; + + ongoingProcess.set('buyingGiftCard', true, statusChangeHandler); + mercadoLibreService.createBitPayInvoice(dataSrc, function(err, dataInvoice) { + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + + if (err && err.message && err.message.match(/suspended/i)) { + showError('Service not available', 'Mercadolibre Gift Card Service is not available at this moment. Please try back later.'); + } else { + showError('Could not access Gift Card Service', err); + }; + + return; + } + + var accessKey = dataInvoice ? dataInvoice.accessKey : null; + + if (!accessKey) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('No access key defined'); + return; + } + + mercadoLibreService.getBitPayInvoice(dataInvoice.invoiceId, function(err, invoice) { + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Error getting BitPay invoice', err); + return; + } + + var payProUrl = (invoice && invoice.paymentUrls) ? invoice.paymentUrls.BIP73 : null; + + if (!payProUrl) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Error fetching invoice'); + return; + } + + payproService.getPayProDetails(payProUrl, function(err, payProDetails) { + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Error fetching payment info', bwcError.msg(err)); + return; + } + + var outputs = []; + var toAddress = payProDetails.toAddress; + var amountSat = payProDetails.amount; + var comment = amount + ' ' + currency + ' Mercadolibre Gift Card'; + + outputs.push({ + 'toAddress': toAddress, + 'amount': amountSat, + 'message': comment + }); + + var txp = { + toAddress: toAddress, + amount: amountSat, + outputs: outputs, + message: comment, + payProUrl: payProUrl, + excludeUnconfirmedUtxos: configWallet.spendUnconfirmed ? false : true, + feeLevel: walletSettings.feeLevel || 'normal' + }; + + walletService.createTx($scope.wallet, txp, function(err, ctxp) { + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Could not create transaction', bwcError.msg(err)); + return; + } + publishAndSign($scope.wallet, ctxp, function() {}, function(err, txSent) { + if (err) { + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + showError('Could not send transaction', err); + return; + } + $log.debug('Transaction broadcasted. Waiting for confirmation...'); + var invoiceId = JSON.parse(payProDetails.merchant_data).invoiceId; + var dataSrc = { + currency: currency, + amount: amount, + uuid: uuid, + accessKey: accessKey, + invoiceId: invoice.id, + invoiceUrl: payProUrl, + invoiceTime: invoice.invoiceTime + }; + checkTransaction(1, dataSrc); + }); + }); + }, true); // Disable loader + }); + }); + }); + }; + + $scope.showWalletSelector = function() { + $scope.walletSelectorTitle = 'Buy from'; + $scope.showWallets = true; + }; + + $scope.onWalletSelect = function(wallet) { + $scope.wallet = wallet; + }; + + $scope.goBackHome = function() { + $scope.sendStatus = ''; + $ionicHistory.nextViewOptions({ + disableAnimate: true, + historyRoot: true + }); + $ionicHistory.clearHistory(); + var claimCode = $scope.mlGiftCard ? $scope.mlGiftCard.pin : null; + $state.go('tabs.home').then(function() { + $ionicHistory.nextViewOptions({ + disableAnimate: true + }); + $state.transitionTo('tabs.giftcards.mercadoLibre').then(function() { + $state.transitionTo('tabs.giftcards.mercadoLibre.cards', { + cardClaimCode: claimCode + }); + }); + }); + }; +}); diff --git a/src/js/controllers/mercadoLibre.js b/src/js/controllers/mercadoLibre.js new file mode 100644 index 000000000..dfdd81dc1 --- /dev/null +++ b/src/js/controllers/mercadoLibre.js @@ -0,0 +1,24 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('mercadoLibreController', + function($scope, $timeout, $log, mercadoLibreService, externalLinkService, popupService) { + + $scope.openExternalLink = function(url) { + externalLinkService.open(url); + }; + + var init = function() { + mercadoLibreService.getPendingGiftCards(function(err, gcds) { + if (err) $log.error(err); + $scope.giftCards = gcds; + $timeout(function() { + $scope.$digest(); + }); + }); + }; + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.network = mercadoLibreService.getNetwork(); + init(); + }); + }); diff --git a/src/js/controllers/mercadoLibreCards.js b/src/js/controllers/mercadoLibreCards.js new file mode 100644 index 000000000..7e96a160a --- /dev/null +++ b/src/js/controllers/mercadoLibreCards.js @@ -0,0 +1,106 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('mercadoLibreCardsController', + function($scope, $timeout, $ionicModal, $log, $ionicScrollDelegate, lodash, mercadoLibreService, platformInfo, externalLinkService, popupService, ongoingProcess) { + + $scope.openExternalLink = function(url) { + externalLinkService.open(url); + }; + + var updateGiftCards = function(cb) { + mercadoLibreService.getPendingGiftCards(function(err, gcds) { + if (err) { + popupService.showAlert('Could not get gift cards', err); + if (cb) return cb(); + else return; + } + $scope.giftCards = gcds; + $timeout(function() { + $scope.$digest(); + $ionicScrollDelegate.resize(); + if (cb) return cb(); + }, 100); + }); + }; + + $scope.updatePendingGiftCards = lodash.debounce(function() { + $scope.updatingPending = {}; + updateGiftCards(function() { + var index = 0; + var gcds = $scope.giftCards; + lodash.forEach(gcds, function(dataFromStorage) { + if (dataFromStorage.status == 'PENDING' || dataFromStorage.status == 'invalid') { + $log.debug("Creating / Updating gift card"); + $scope.updatingPending[dataFromStorage.invoiceId] = true; + + mercadoLibreService.createGiftCard(dataFromStorage, function(err, giftCard) { + + $scope.updatingPending[dataFromStorage.invoiceId] = false; + if (err) { + popupService.showAlert('Error creating gift card', err); + return; + } + + if (giftCard.status != 'PENDING') { + var newData = {}; + + lodash.merge(newData, dataFromStorage, giftCard); + + if (newData.status == 'expired') { + mercadoLibreService.savePendingGiftCard(newData, { + remove: true + }, function(err) { + updateGiftCards(); + return; + }); + } + + mercadoLibreService.savePendingGiftCard(newData, null, function(err) { + $log.debug("Saving new gift card"); + updateGiftCards(); + }); + } + }); + } + }); + }); + + }, 1000, { + 'leading': true + }); + + $scope.openCardModal = function(card) { + $scope.card = card; + + $ionicModal.fromTemplateUrl('views/modals/mercadolibre-card-details.html', { + scope: $scope + }).then(function(modal) { + $scope.mercadoLibreCardDetailsModal = modal; + $scope.mercadoLibreCardDetailsModal.show(); + }); + + $scope.$on('modal.hidden', function() { + $scope.updatePendingGiftCards(); + }); + }; + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.cardClaimCode = data.stateParams.cardClaimCode; + updateGiftCards(function() { + if ($scope.cardClaimCode) { + var card = lodash.find($scope.giftCards, { + claimCode: $scope.cardClaimCode + }); + if (lodash.isEmpty(card)) { + popupService.showAlert(null, 'Card not found'); + return; + } + $scope.openCardModal(card); + } + }); + }); + + $scope.$on("$ionicView.afterEnter", function(event, data) { + $scope.updatePendingGiftCards(); + }); + }); diff --git a/src/js/controllers/modals/mercadoLibreCardDetails.js b/src/js/controllers/modals/mercadoLibreCardDetails.js new file mode 100644 index 000000000..1b1628c9d --- /dev/null +++ b/src/js/controllers/modals/mercadoLibreCardDetails.js @@ -0,0 +1,83 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('mercadoLibreCardDetailsController', function($scope, $log, $timeout, $ionicScrollDelegate, bwcError, mercadoLibreService, lodash, ongoingProcess, popupService, externalLinkService) { + + $scope.cancelGiftCard = function() { + ongoingProcess.set('cancelingGiftCard', true); + mercadoLibreService.cancelGiftCard($scope.card, function(err, data) { + ongoingProcess.set('cancelingGiftCard', false); + if (err) { + popupService.showAlert('Error canceling gift card', bwcError.msg(err)); + return; + } + $scope.card.cardStatus = data.cardStatus; + $timeout(function() { + $ionicScrollDelegate.resize(); + $ionicScrollDelegate.scrollTop(); + }, 10); + mercadoLibreService.savePendingGiftCard($scope.card, null, function(err) { + $scope.refreshGiftCard(); + }); + }); + }; + + $scope.remove = function() { + mercadoLibreService.savePendingGiftCard($scope.card, { + remove: true + }, function(err) { + $scope.cancel(); + }); + }; + + $scope.refreshGiftCard = function() { + ongoingProcess.set('updatingGiftCard', true); + mercadoLibreService.getPendingGiftCards(function(err, gcds) { + if (lodash.isEmpty(gcds)) { + $timeout(function() { + ongoingProcess.set('updatingGiftCard', false); + }, 1000); + } + if (err) { + popupService.showAlert('Error', err); + return; + } + var index = 0; + lodash.forEach(gcds, function(dataFromStorage) { + if (++index == Object.keys(gcds).length) { + $timeout(function() { + ongoingProcess.set('updatingGiftCard', false); + }, 1000); + } + if (dataFromStorage.status == 'PENDING' && dataFromStorage.invoiceId == $scope.card.invoiceId) { + $log.debug("creating gift card"); + mercadoLibreService.createGiftCard(dataFromStorage, function(err, giftCard) { + if (err) { + popupService.showAlert('Error', bwcError.msg(err)); + return; + } + if (!lodash.isEmpty(giftCard)) { + var newData = {}; + lodash.merge(newData, dataFromStorage, giftCard); + mercadoLibreService.savePendingGiftCard(newData, null, function(err) { + $log.debug("Saving new gift card"); + $scope.card = newData; + $timeout(function() { + $scope.$digest(); + }); + }); + } else $log.debug("pending gift card not available yet"); + }); + } + }); + }); + }; + + $scope.cancel = function() { + $scope.mercadoLibreCardDetailsModal.hide(); + }; + + $scope.openExternalLink = function(url) { + externalLinkService.open(url); + }; + +}); diff --git a/src/js/routes.js b/src/js/routes.js index 4904be9f6..e54d11e9a 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1026,6 +1026,57 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr abstract: true }) + /* + * + * Mercado Libre Gift Card + * + */ + + .state('tabs.giftcards.mercadoLibre', { + url: '/mercadoLibre', + views: { + 'tab-home@tabs': { + controller: 'mercadoLibreController', + templateUrl: 'views/mercadoLibre.html' + } + } + }) + .state('tabs.giftcards.mercadoLibre.cards', { + url: '/cards', + views: { + 'tab-home@tabs': { + controller: 'mercadoLibreCardsController', + templateUrl: 'views/mercadoLibreCards.html' + } + }, + params: { + cardClaimCode: null + } + }) + .state('tabs.giftcards.mercadoLibre.amount', { + url: '/amount', + views: { + 'tab-home@tabs': { + controller: 'amountController', + templateUrl: 'views/amount.html' + } + }, + params: { + nextStep: 'tabs.giftcards.mercadoLibre.buy', + currency: 'BRL', + forceCurrency: true + } + }) + .state('tabs.giftcards.mercadoLibre.buy', { + url: '/buy/:amount/:currency', + views: { + 'tab-home@tabs': { + controller: 'buyMercadoLibreController', + templateUrl: 'views/buyMercadoLibre.html' + } + } + }) + /* * * Amazon.com Gift Card diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js new file mode 100644 index 000000000..07c86b5ad --- /dev/null +++ b/src/js/services/mercadoLibreService.js @@ -0,0 +1,196 @@ +'use strict'; +angular.module('copayApp.services').factory('mercadoLibreService', function($http, $log, lodash, moment, storageService, configService, platformInfo, nextStepsService, homeIntegrationsService) { + var root = {}; + var credentials = {}; + + // Not used yet + var availableCountries = [{ + 'country': 'Brazil', + 'currency': 'BRL', + 'name': 'Mercado Livre', + 'url': 'https://www.mercadolivre.com.br' + }]; + + /* + * Development: 'testnet' + * Production: 'livenet' + */ + //credentials.NETWORK = 'livenet'; + credentials.NETWORK = 'testnet'; + + if (credentials.NETWORK == 'testnet') { + credentials.BITPAY_API_URL = "https://test.bitpay.com"; + } else { + credentials.BITPAY_API_URL = "https://bitpay.com"; + }; + + var homeItem = { + name: 'mercadoLibre', + title: 'Mercado Libre', + icon: 'icon-ml', + sref: 'tabs.giftcards.mercadoLibre', + }; + + var nextStepItem = { + name: 'mercadoLibre', + title: 'Buy Mercado Libre Gift Cards', + icon: 'icon-ml', + sref: 'tabs.giftcards.mercadoLibre', + }; + + var _getBitPay = function(endpoint) { + return { + method: 'GET', + url: credentials.BITPAY_API_URL + endpoint, + headers: { + 'content-type': 'application/json' + } + }; + }; + + var _postBitPay = function(endpoint, data) { + return { + method: 'POST', + url: credentials.BITPAY_API_URL + endpoint, + headers: { + 'content-type': 'application/json' + }, + data: data + }; + }; + + root.getNetwork = function() { + return credentials.NETWORK; + }; + + root.savePendingGiftCard = function(gc, opts, cb) { + var network = root.getNetwork(); + storageService.getMercadoLibreGiftCards(network, function(err, oldGiftCards) { + if (lodash.isString(oldGiftCards)) { + oldGiftCards = JSON.parse(oldGiftCards); + } + if (lodash.isString(gc)) { + gc = JSON.parse(gc); + } + var inv = oldGiftCards || {}; + inv[gc.invoiceId] = gc; + if (opts && (opts.error || opts.status)) { + inv[gc.invoiceId] = lodash.assign(inv[gc.invoiceId], opts); + } + if (opts && opts.remove) { + delete(inv[gc.invoiceId]); + } + + inv = JSON.stringify(inv); + + + storageService.setMercadoLibreGiftCards(network, inv, function(err) { + + homeIntegrationsService.register(homeItem); + nextStepsService.unregister(nextStepItem.name); + return cb(err); + }); + }); + }; + + root.getPendingGiftCards = function(cb) { + var network = root.getNetwork(); + storageService.getMercadoLibreGiftCards(network, function(err, giftCards) { + var _gcds = giftCards ? JSON.parse(giftCards) : null; + return cb(err, _gcds); + }); + }; + + root.createBitPayInvoice = function(data, cb) { + + // TODO + var dataSrc = { + currency: 'USD' || data.currency, + amount: data.amount, + clientId: data.uuid + }; +console.log('[mercadoLibreService.js:106]',dataSrc); //TODO + + $http(_postBitPay('/amazon-gift/pay', dataSrc)).then(function(data) { + $log.info('BitPay Create Invoice: SUCCESS'); + return cb(null, data.data); + }, function(data) { + $log.error('BitPay Create Invoice: ERROR ' + data.data.message); + return cb(data.data); + }); + }; + + root.getBitPayInvoice = function(id, cb) { + $http(_getBitPay('/invoices/' + id)).then(function(data) { + $log.info('BitPay Get Invoice: SUCCESS'); + return cb(null, data.data.data); + }, function(data) { + $log.error('BitPay Get Invoice: ERROR ' + data.data.error); + return cb(data.data.error); + }); + }; + + root.createGiftCard = function(data, cb) { +console.log('[mercadoLibreService.js:132]',data); //TODO + + return cb(null, { + "id": "f2bd6204fc49661a56057d33e37e32f2518ae92eea2f5457c379434712e35537", + "currency_id": data.currency, + "external_reference": "external_id_123456", + "initial_amount": data.amount, + "balance": 59.99, + "status": "active", + "date_creation": "2017­03­14T10:39:14.826­03:00", + "date_activation": "2017­03­14T10:39:15.316­03:00", + "date_expiration": "2018­09­14T10:39:15.316­03:00", + "date_last_updated": "2017­03­14T10:39:15.321­03:00", + "pin": "UYNHSIONUY" + }); + + var dataSrc = { + "clientId": data.uuid, + "invoiceId": data.invoiceId, + "accessKey": data.accessKey + }; + + $http(_postBitPay('/mercado-libre-gift/redeem', dataSrc)).then(function(data) { + var status = data.data.status == 'new' ? 'PENDING' : (data.data.status == 'paid') ? 'PENDING' : data.data.status; + data.data.status = status; + $log.info('Mercado Libre Gift Card Create/Update: ' + status); + return cb(null, data.data); + }, function(data) { + $log.error('Mercado Libre Gift Card Create/Update: ' + data.data.message); + return cb(data.data); + }); + }; + + root.cancelGiftCard = function(data, cb) { + + var dataSrc = { + "clientId": data.uuid, + "invoiceId": data.invoiceId, + "accessKey": data.accessKey + }; + + $http(_postBitPay('/mercado-libre-gift/cancel', dataSrc)).then(function(data) { + $log.info('Mercado Libre Gift Card Cancel: SUCCESS'); + return cb(null, data.data); + }, function(data) { + $log.error('Mercado Libre Gift Card Cancel: ' + data.data.message); + return cb(data.data); + }); + }; + + var register = function() { + storageService.getMercadoLibreGiftCards(root.getNetwork(), function(err, giftCards) { + if (giftCards) { + homeIntegrationsService.register(homeItem); + } else { + nextStepsService.register(nextStepItem); + } + }); + }; + + register(); + return root; +}); diff --git a/src/js/services/storageService.js b/src/js/services/storageService.js index 5391569fd..4cd2af62e 100644 --- a/src/js/services/storageService.js +++ b/src/js/services/storageService.js @@ -610,5 +610,17 @@ angular.module('copayApp.services') storage.remove('txConfirmNotif-' + txid, cb); }; + root.setMercadoLibreGiftCards = function(network, gcs, cb) { + storage.set('mercadoLibreGiftCards-' + network, gcs, cb); + }; + + root.getMercadoLibreGiftCards = function(network, cb) { + storage.get('mercadoLibreGiftCards-' + network, cb); + }; + + root.removeMercadoLibreGiftCards = function(network, cb) { + storage.remove('MercadoLibreGiftCards-' + network, cb); + }; + return root; }); diff --git a/src/sass/views/integrations/integrations.scss b/src/sass/views/integrations/integrations.scss index 22f9cbc0e..9632da354 100644 --- a/src/sass/views/integrations/integrations.scss +++ b/src/sass/views/integrations/integrations.scss @@ -1,6 +1,7 @@ @import "coinbase"; @import "glidera"; @import "amazon"; +@import "mercadolibre"; #coinbase, #glidera { .button-small { diff --git a/src/sass/views/integrations/mercadolibre.scss b/src/sass/views/integrations/mercadolibre.scss new file mode 100644 index 000000000..ea5ea2f04 --- /dev/null +++ b/src/sass/views/integrations/mercadolibre.scss @@ -0,0 +1,141 @@ +#mercadolibre { + $item-lateral-padding: 20px; + $item-vertical-padding: 10px; + $item-border-color: #EFEFEF; + $item-label-color: #6C6C6E; + @extend .deflash-blue; + .icon-amazon { + background-image: url("../img/mercado-libre/icon-ml.svg"); + } + .spinner svg { + stroke: black; + fill: black; + } + + .add-bottom-for-cta { + bottom: 92px; + } + .head { + padding: 30px $item-lateral-padding 4rem; + border-top: 0; + + .sending-label { + display: flex; + font-size: 18px; + align-items: center; + margin-bottom: 1.8rem; + + img { + margin-right: 1rem; + height: 35px; + width: 35px; + } + + span { + text-transform: capitalize; + } + + .big-icon-svg { + margin-right: 0.6rem; + } + + } + .amount-label{ + line-height: 30px; + .amount{ + font-size: 38px; + margin-bottom: .5rem; + + > .unit { + font-family: "Roboto-Light"; + } + } + .alternative { + font-size: 12px; + font-family: "Roboto-Light"; + color: #9B9B9B; + } + } + } + .item { + border-color: $item-border-color; + } + .info { + .badge { + border-radius: 0; + padding: .5rem; + } + .item { + color: #4A4A4A; + padding-top: $item-vertical-padding; + padding-bottom: $item-vertical-padding; + padding-left: $item-lateral-padding; + + &:not(.item-icon-right) { + padding-right: $item-lateral-padding; + } + + .label { + font-size: 14px; + color: $item-label-color; + margin-bottom: 8px; + } + + .capitalized { + text-transform: capitalize; + } + + .wallet .big-icon-svg > .bg { + height: 24px; + width: 24px; + padding: 2px; + box-shadow: none; + vertical-align: middle; + } + + .total-amount { + font-weight: bold; + } + + &.single-line { + display: flex; + align-items: center; + padding-top: 17px; + padding-bottom: 17px; + + .label { + margin: 0; + flex-grow: 1; + } + } + } + .item-divider { + padding-top: 1.2rem; + color: $item-label-color; + font-size: 15px; + } + .wallet { + display: flex; + align-items: center; + padding: .2rem 0; + margin-bottom: 5px; + + ~ .bp-arrow-right { + top: 14px; + } + + > i { + padding: 0; + position: static; + + > img { + height: 24px; + width: 24px; + padding: 2px; + margin-right: .7rem; + box-shadow: none; + } + } + } + } +} diff --git a/src/sass/views/tab-home.scss b/src/sass/views/tab-home.scss index 3886ba7ee..99dc0f4da 100644 --- a/src/sass/views/tab-home.scss +++ b/src/sass/views/tab-home.scss @@ -17,6 +17,10 @@ .icon-amazon { background-image: url("../img/icon-amazon.svg"); } + .icon-ml { + background-image: url("../img/mercado-libre/icon-ml.svg"); + height: 27px; + } .bg { &.wallet { padding: .25rem diff --git a/www/img/mercado-libre/24px.svg b/www/img/mercado-libre/24px.svg new file mode 100644 index 000000000..7a667609c --- /dev/null +++ b/www/img/mercado-libre/24px.svg @@ -0,0 +1,24 @@ + + + + 24px + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/img/mercado-libre/giftcard-pt.svg b/www/img/mercado-libre/giftcard-pt.svg new file mode 100644 index 000000000..f980b61f6 --- /dev/null +++ b/www/img/mercado-libre/giftcard-pt.svg @@ -0,0 +1,2311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/img/mercado-libre/icon-ml.svg b/www/img/mercado-libre/icon-ml.svg new file mode 100644 index 000000000..01b1fe7a7 --- /dev/null +++ b/www/img/mercado-libre/icon-ml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/www/img/mercado-libre/mlbr.svg b/www/img/mercado-libre/mlbr.svg new file mode 100644 index 000000000..031c72393 --- /dev/null +++ b/www/img/mercado-libre/mlbr.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html new file mode 100644 index 000000000..711792b13 --- /dev/null +++ b/www/views/buyMercadoLibre.html @@ -0,0 +1,85 @@ + + + + + Buy + + + + +
+ +
+
+ +
+
+ Mercado Libre Gift Card +
+
+
{{amountUnitStr}}
+
+
+ +
+
+
From
+
+ + + + {{wallet ? wallet.name : '...'}} +
+ +
+
+
+ +
+ + + Confirm purchase + + + Slide to buy + + + + Your purchase could not be completed + + + Your purchase was added to the list of pending + + + Bought {{mlGiftCard.amount}} {{mlGiftCard.currency}} + +
+ Gift card generated and ready to use. +
+
+ + + +
diff --git a/www/views/mercadoLibre.html b/www/views/mercadoLibre.html new file mode 100644 index 000000000..bc9d06644 --- /dev/null +++ b/www/views/mercadoLibre.html @@ -0,0 +1,56 @@ + + + + + Mercado Libre Gift Cards + + + +
+ Sandbox version. Only for testing purpose. +
+
+ +
+ Gift Cards are only redeemable on Mercado Livre (Brazil) +
+
+ + +
+
+
+ +
+ Sandbox version. Only for testing purpose. +
+ +
+ Mercado Libre +
+ Only redeemable on Mercado Livre (Brazil) +
+
+ + +
+
diff --git a/www/views/mercadoLibreCards.html b/www/views/mercadoLibreCards.html new file mode 100644 index 000000000..8488e318c --- /dev/null +++ b/www/views/mercadoLibreCards.html @@ -0,0 +1,31 @@ + + + + + Your cards + + + +
+
+ {{id}} + + +

+ {{item.amount | currency : '$ ' : 2}} {{item.currency}} +

+

+ Error + Expired + Still waiting confirmation
(Use higher fees setting to faster delivery)
+ Pending to confirmation + Canceled + {{item.date | amTimeAgo}} +

+
+
+
+
diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html new file mode 100644 index 000000000..3605c13c8 --- /dev/null +++ b/www/views/modals/mercadolibre-card-details.html @@ -0,0 +1,85 @@ + + + +

Details

+
+ + + +
+ Mercado Libre Gift Card + +
+ Gift Card Amount: + + {{card.amount | currency : '$ ' : 2}} + +
+ + +
+ Created + {{card.date | amTimeAgo}} +
+ + +
+
+ Claim code: {{card.pin}} +
+
+ +
+
+
+ Status: + + CANCELED + +
+
+
+
+
+ Status: + + PENDING + + + STILL PENDING + + + + FAILURE + + + EXPIRED + +
+
+ +
+ +
+ There was a failure to the create gift card. Please, contact BitPay support. +
+ + + +
+
From ef650aff863522755d6d4c11a5d091e1044e4251 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 4 Jul 2017 10:44:10 -0300 Subject: [PATCH 003/157] Fix styling --- src/js/routes.js | 2 +- src/sass/views/integrations/mercadolibre.scss | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/js/routes.js b/src/js/routes.js index e54d11e9a..63ec93c29 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1186,7 +1186,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 => */ coinbaseService, glideraService, amazonService, bitpayCardService, applicationService) { + .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 => */ coinbaseService, glideraService, amazonService, bitpayCardService, applicationService, mercadoLibreService) { uxLanguage.init(); diff --git a/src/sass/views/integrations/mercadolibre.scss b/src/sass/views/integrations/mercadolibre.scss index ea5ea2f04..63b0032f5 100644 --- a/src/sass/views/integrations/mercadolibre.scss +++ b/src/sass/views/integrations/mercadolibre.scss @@ -11,7 +11,7 @@ stroke: black; fill: black; } - + .add-bottom-for-cta { bottom: 92px; } @@ -36,9 +36,14 @@ } .big-icon-svg { + padding: 0 7px 0 0; margin-right: 0.6rem; } + .big-icon-svg > .bg { + height: 27px; + } + } .amount-label{ line-height: 30px; @@ -80,7 +85,7 @@ color: $item-label-color; margin-bottom: 8px; } - + .capitalized { text-transform: capitalize; } From 3e789714464080300d88cd93087fccbc3509237f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 5 Jul 2017 18:42:35 -0300 Subject: [PATCH 004/157] Buy gift card. Limits --- src/js/controllers/buyMercadoLibre.js | 311 ++++++++++-------- src/js/controllers/mercadoLibreCards.js | 15 +- src/js/routes.js | 2 +- src/js/services/mercadoLibreService.js | 30 +- src/js/services/profileService.js | 2 + www/views/buyMercadoLibre.html | 35 +- .../modals/mercadolibre-card-details.html | 17 +- 7 files changed, 220 insertions(+), 192 deletions(-) diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index fe8ae653d..321d77d8a 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -1,27 +1,36 @@ 'use strict'; -angular.module('copayApp.controllers').controller('buyMercadoLibreController', function($scope, $log, $state, $timeout, $filter, $ionicHistory, lodash, mercadoLibreService, popupService, profileService, ongoingProcess, configService, walletService, payproService, bwcError, externalLinkService, platformInfo) { +angular.module('copayApp.controllers').controller('buyMercadoLibreController', function($scope, $log, $state, $timeout, $filter, $ionicHistory, $ionicConfig, lodash, mercadoLibreService, popupService, profileService, ongoingProcess, configService, walletService, payproService, bwcError, externalLinkService, platformInfo, txFormatService, gettextCatalog) { var amount; var currency; + var createdTx; + var message; + var invoiceId; + var configWallet = configService.getSync().wallet; $scope.isCordova = platformInfo.isCordova; $scope.openExternalLink = function(url) { externalLinkService.open(url); }; - var showErrorAndBack = function(msg, err) { + var showErrorAndBack = function(title, msg) { + title = title || gettextCatalog.getString('Error'); $scope.sendStatus = ''; - err = err && err.errors ? err.errors[0].message : err; - popupService.showAlert(msg, err, function() { + $log.error(msg); + msg = (msg && msg.errors) ? msg.errors[0].message : msg; + popupService.showAlert(title, msg, function() { $ionicHistory.goBack(); }); }; - var showError = function(msg, err) { + var showError = function(title, msg, cb) { + cb = cb || function() {}; + title = title || gettextCatalog.getString('Error'); $scope.sendStatus = ''; - err = err && err.errors ? err.errors[0].message : (err || ''); - popupService.showAlert(msg, err); + $log.error(msg); + msg = (msg && msg.errors) ? msg.errors[0].message : msg; + popupService.showAlert(title, msg, cb); }; var publishAndSign = function(wallet, txp, onSendStatusChange, cb) { @@ -49,15 +58,95 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f } }; + var createInvoice = function(data, cb) { + mercadoLibreService.createBitPayInvoice(data, function(err, dataInvoice) { + if (err) { + var err_title = gettextCatalog.getString('Error creating the invoice'); + var err_msg; + if (err && err.message && err.message.match(/suspended/i)) { + err_title = gettextCatalog.getString('Service not available'); + err_msg = gettextCatalog.getString('Mercadolibre Gift Card Service is not available at this moment. Please try back later.'); + } else if (err && err.message) { + err_msg = err.message; + } else { + err_msg = gettextCatalog.getString('Could not access Gift Card Service'); + }; + + return cb({ + title: err_title, + message: err_msg + }); + } + + var accessKey = dataInvoice ? dataInvoice.accessKey : null; + + if (!accessKey) { + return cb({ + message: gettextCatalog.getString('No access key defined') + }); + } + + mercadoLibreService.getBitPayInvoice(dataInvoice.invoiceId, function(err, invoice) { + if (err) { + return cb({ + message: gettextCatalog.getString('Could not get the invoice') + }); + } + + return cb(null, invoice, accessKey); + }); + }); + }; + + var createTx = function(wallet, invoice, message, cb) { + var payProUrl = (invoice && invoice.paymentUrls) ? invoice.paymentUrls.BIP73 : null; + + if (!payProUrl) { + return cb({ + title: gettextCatalog.getString('Error in Payment Protocol'), + message: gettextCatalog.getString('Invalid URL') + }); + } + + var outputs = []; + var toAddress = invoice.bitcoinAddress; + var amountSat = parseInt(invoice.btcDue * 100000000); // BTC to Satoshi + + outputs.push({ + 'toAddress': toAddress, + 'amount': amountSat, + 'message': message + }); + + var txp = { + toAddress: toAddress, + amount: amountSat, + outputs: outputs, + message: message, + payProUrl: payProUrl, + excludeUnconfirmedUtxos: configWallet.spendUnconfirmed ? false : true, + feeLevel: configWallet.settings.feeLevel || 'normal' + }; + + walletService.createTx(wallet, txp, function(err, ctxp) { + if (err) { + return cb({ + title: gettextCatalog.getString('Could not create transaction'), + message: bwcError.msg(err) + }); + } + return cb(null, ctxp); + }); + }; + var checkTransaction = lodash.throttle(function(count, dataSrc) { mercadoLibreService.createGiftCard(dataSrc, function(err, giftCard) { -console.log('[buyMercadoLibre.js:53]',giftCard); //TODO $log.debug("creating gift card " + count); - if (err) { + if (err || !giftCard.pin) { + $scope.sendStatus = ''; ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); giftCard = {}; giftCard.status = 'FAILURE'; - showError('Error creating gift card', err); } if (giftCard.status == 'PENDING' && count < 3) { @@ -77,17 +166,6 @@ console.log('[buyMercadoLibre.js:53]',giftCard); //TODO newData['date'] = dataSrc.invoiceTime || now; newData['uuid'] = dataSrc.uuid; - if (newData.status == 'expired') { - mercadoLibreService.savePendingGiftCard(newData, { - remove: true - }, function(err) { - $log.error(err); - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Invoice expired'); - return; - }); - } - mercadoLibreService.savePendingGiftCard(newData, null, function(err) { ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); $log.debug("Saving new gift card with status: " + newData.status); @@ -98,144 +176,106 @@ console.log('[buyMercadoLibre.js:53]',giftCard); //TODO 'leading': true }); + var initialize = function(wallet, parsedAmount) { + $scope.amountUnitStr = parsedAmount.amountUnitStr; + var dataSrc = { + amount: parsedAmount.amount, + currency: parsedAmount.currency, + uuid: wallet.id + }; + ongoingProcess.set('loadingTxInfo', true); + createInvoice(dataSrc, function(err, invoice, accessKey) { + if (err) { + ongoingProcess.set('loadingTxInfo', false); + showErrorAndBack(err.title, err.message); + return; + } + + message = gettextCatalog.getString("Mercado Libre Gift Card {{amountStr}}", { + amountStr: $scope.amountUnitStr + }); + + createTx(wallet, invoice, message, function(err, ctxp) { + ongoingProcess.set('loadingTxInfo', false); + if (err) { + // Clear variables + createdTx = message = $scope.totalFeeStr = $scope.totalAmountStr = $scope.wallet = null; + showError(err.title, err.message); + return; + } + + // Save in memory + createdTx = ctxp; + invoiceId = invoice.id; + + createdTx['giftData'] = { + currency: dataSrc.currency, + amount: dataSrc.amount, + uuid: dataSrc.uuid, + accessKey: accessKey, + invoiceId: invoice.id, + invoiceUrl: invoice.url, + invoiceTime: invoice.invoiceTime + }; + $scope.totalFeeStr = txFormatService.formatAmountStr(ctxp.fee); + $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount + ctxp.fee); + }); + }); + }; + + $scope.$on("$ionicView.beforeLeave", function(event, data) { + $ionicConfig.views.swipeBackEnabled(true); + }); + + $scope.$on("$ionicView.enter", function(event, data) { + $ionicConfig.views.swipeBackEnabled(false); + }); + $scope.$on("$ionicView.beforeEnter", function(event, data) { amount = data.stateParams.amount; currency = data.stateParams.currency; - /* TODO if (amount > 2000 || amount < 50) { - showErrorAndBack('Purchase amount must be a value between 50 and 2000'); + showErrorAndBack(null, gettextCatalog.getString('Purchase amount must be a value between 50 and 2000')); return; } - */ - - $scope.amountUnitStr = $filter('formatFiatAmount')(amount) + ' ' + currency; $scope.network = mercadoLibreService.getNetwork(); $scope.wallets = profileService.getWallets({ onlyComplete: true, - network: $scope.network, - hasFunds: true + network: $scope.network }); if (lodash.isEmpty($scope.wallets)) { - showErrorAndBack('No wallets with funds'); + showErrorAndBack(null, gettextCatalog.getString('No wallets available')); return; } - $scope.wallet = $scope.wallets[0]; // Default first wallet + $scope.onWalletSelect($scope.wallets[0]); // Default first wallet }); $scope.buyConfirm = function() { - var message = 'Buy gift card for ' + amount + ' ' + currency; - var okText = 'Confirm'; - var cancelText = 'Cancel'; - popupService.showConfirm(null, message, okText, cancelText, function(ok) { - if (!ok) return; + if (!createdTx) { + showError(null, gettextCatalog.getString('Transaction has not been created')); + return; + } - var config = configService.getSync(); - var configWallet = config.wallet; - var walletSettings = configWallet.settings; - // Selected WalletID as UUID - var uuid = $scope.wallet.id; - var dataSrc = { - currency: currency, - amount: amount, - uuid: uuid - }; + var title = gettextCatalog.getString('Confirm'); + var okText = gettextCatalog.getString('Ok'); + var cancelText = gettextCatalog.getString('Cancel'); + popupService.showConfirm(title, message, okText, cancelText, function(ok) { + if (!ok) { + $scope.sendStatus = ''; + return; + } ongoingProcess.set('buyingGiftCard', true, statusChangeHandler); - mercadoLibreService.createBitPayInvoice(dataSrc, function(err, dataInvoice) { + publishAndSign($scope.wallet, createdTx, function() {}, function(err, txSent) { if (err) { ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - - if (err && err.message && err.message.match(/suspended/i)) { - showError('Service not available', 'Mercadolibre Gift Card Service is not available at this moment. Please try back later.'); - } else { - showError('Could not access Gift Card Service', err); - }; - + showError(gettextCatalog.getString('Could not send transaction'), err); return; } - - var accessKey = dataInvoice ? dataInvoice.accessKey : null; - - if (!accessKey) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('No access key defined'); - return; - } - - mercadoLibreService.getBitPayInvoice(dataInvoice.invoiceId, function(err, invoice) { - if (err) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Error getting BitPay invoice', err); - return; - } - - var payProUrl = (invoice && invoice.paymentUrls) ? invoice.paymentUrls.BIP73 : null; - - if (!payProUrl) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Error fetching invoice'); - return; - } - - payproService.getPayProDetails(payProUrl, function(err, payProDetails) { - if (err) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Error fetching payment info', bwcError.msg(err)); - return; - } - - var outputs = []; - var toAddress = payProDetails.toAddress; - var amountSat = payProDetails.amount; - var comment = amount + ' ' + currency + ' Mercadolibre Gift Card'; - - outputs.push({ - 'toAddress': toAddress, - 'amount': amountSat, - 'message': comment - }); - - var txp = { - toAddress: toAddress, - amount: amountSat, - outputs: outputs, - message: comment, - payProUrl: payProUrl, - excludeUnconfirmedUtxos: configWallet.spendUnconfirmed ? false : true, - feeLevel: walletSettings.feeLevel || 'normal' - }; - - walletService.createTx($scope.wallet, txp, function(err, ctxp) { - if (err) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Could not create transaction', bwcError.msg(err)); - return; - } - publishAndSign($scope.wallet, ctxp, function() {}, function(err, txSent) { - if (err) { - ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); - showError('Could not send transaction', err); - return; - } - $log.debug('Transaction broadcasted. Waiting for confirmation...'); - var invoiceId = JSON.parse(payProDetails.merchant_data).invoiceId; - var dataSrc = { - currency: currency, - amount: amount, - uuid: uuid, - accessKey: accessKey, - invoiceId: invoice.id, - invoiceUrl: payProUrl, - invoiceTime: invoice.invoiceTime - }; - checkTransaction(1, dataSrc); - }); - }); - }, true); // Disable loader - }); + checkTransaction(1, createdTx.giftData); }); }); }; @@ -247,6 +287,8 @@ console.log('[buyMercadoLibre.js:53]',giftCard); //TODO $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + var parsedAmount = txFormatService.parseAmount(amount, currency); + initialize(wallet, parsedAmount); }; $scope.goBackHome = function() { @@ -256,14 +298,13 @@ console.log('[buyMercadoLibre.js:53]',giftCard); //TODO historyRoot: true }); $ionicHistory.clearHistory(); - var claimCode = $scope.mlGiftCard ? $scope.mlGiftCard.pin : null; $state.go('tabs.home').then(function() { $ionicHistory.nextViewOptions({ disableAnimate: true }); $state.transitionTo('tabs.giftcards.mercadoLibre').then(function() { $state.transitionTo('tabs.giftcards.mercadoLibre.cards', { - cardClaimCode: claimCode + invoiceId: invoiceId }); }); }); diff --git a/src/js/controllers/mercadoLibreCards.js b/src/js/controllers/mercadoLibreCards.js index 7e96a160a..438631c06 100644 --- a/src/js/controllers/mercadoLibreCards.js +++ b/src/js/controllers/mercadoLibreCards.js @@ -46,15 +46,6 @@ angular.module('copayApp.controllers').controller('mercadoLibreCardsController', lodash.merge(newData, dataFromStorage, giftCard); - if (newData.status == 'expired') { - mercadoLibreService.savePendingGiftCard(newData, { - remove: true - }, function(err) { - updateGiftCards(); - return; - }); - } - mercadoLibreService.savePendingGiftCard(newData, null, function(err) { $log.debug("Saving new gift card"); updateGiftCards(); @@ -85,11 +76,11 @@ angular.module('copayApp.controllers').controller('mercadoLibreCardsController', }; $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.cardClaimCode = data.stateParams.cardClaimCode; + $scope.invoiceId = data.stateParams.invoiceId; updateGiftCards(function() { - if ($scope.cardClaimCode) { + if ($scope.invoiceId) { var card = lodash.find($scope.giftCards, { - claimCode: $scope.cardClaimCode + invoiceId: $scope.invoiceId }); if (lodash.isEmpty(card)) { popupService.showAlert(null, 'Card not found'); diff --git a/src/js/routes.js b/src/js/routes.js index 63ec93c29..59cfad4fa 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1050,7 +1050,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }, params: { - cardClaimCode: null + invoiceId: null } }) .state('tabs.giftcards.mercadoLibre.amount', { diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js index 07c86b5ad..f33991cc7 100644 --- a/src/js/services/mercadoLibreService.js +++ b/src/js/services/mercadoLibreService.js @@ -19,7 +19,7 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt credentials.NETWORK = 'testnet'; if (credentials.NETWORK == 'testnet') { - credentials.BITPAY_API_URL = "https://test.bitpay.com"; + credentials.BITPAY_API_URL = "https://gustavo.bp:8088"; } else { credentials.BITPAY_API_URL = "https://bitpay.com"; }; @@ -102,16 +102,13 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt }; root.createBitPayInvoice = function(data, cb) { - - // TODO var dataSrc = { - currency: 'USD' || data.currency, + currency: data.currency, amount: data.amount, clientId: data.uuid }; -console.log('[mercadoLibreService.js:106]',dataSrc); //TODO - $http(_postBitPay('/amazon-gift/pay', dataSrc)).then(function(data) { + $http(_postBitPay('/mercado-libre-gift/pay', dataSrc)).then(function(data) { $log.info('BitPay Create Invoice: SUCCESS'); return cb(null, data.data); }, function(data) { @@ -131,22 +128,6 @@ console.log('[mercadoLibreService.js:106]',dataSrc); //TODO }; root.createGiftCard = function(data, cb) { -console.log('[mercadoLibreService.js:132]',data); //TODO - - return cb(null, { - "id": "f2bd6204fc49661a56057d33e37e32f2518ae92eea2f5457c379434712e35537", - "currency_id": data.currency, - "external_reference": "external_id_123456", - "initial_amount": data.amount, - "balance": 59.99, - "status": "active", - "date_creation": "2017­03­14T10:39:14.826­03:00", - "date_activation": "2017­03­14T10:39:15.316­03:00", - "date_expiration": "2018­09­14T10:39:15.316­03:00", - "date_last_updated": "2017­03­14T10:39:15.321­03:00", - "pin": "UYNHSIONUY" - }); - var dataSrc = { "clientId": data.uuid, "invoiceId": data.invoiceId, @@ -164,6 +145,10 @@ console.log('[mercadoLibreService.js:132]',data); //TODO }); }; + /* + * Disabled for now * + */ + /* root.cancelGiftCard = function(data, cb) { var dataSrc = { @@ -180,6 +165,7 @@ console.log('[mercadoLibreService.js:132]',data); //TODO return cb(data.data); }); }; + */ var register = function() { storageService.getMercadoLibreGiftCards(root.getNetwork(), function(err, giftCards) { diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index d5598a5b8..40c2918ac 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -767,12 +767,14 @@ angular.module('copayApp.services') if (opts.hasFunds) { ret = lodash.filter(ret, function(w) { + if (!w.status) return; return (w.status.availableBalanceSat > 0); }); } if (opts.minAmount) { ret = lodash.filter(ret, function(w) { + if (!w.status) return; return (w.status.availableBalanceSat > opts.minAmount); }); } diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index 711792b13..eb15ae12a 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -32,29 +32,40 @@ + +
+
+ Details +
+
+ Network fee + + {{totalFeeStr}} + +
+
+ Total to pay + + {{totalAmountStr}} + +
+
+ click-send-status="sendStatus"> Confirm purchase + slide-send-status="sendStatus"> Slide to buy Bought {{mlGiftCard.amount}} {{mlGiftCard.currency}} -
+
Gift card generated and ready to use.
diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html index 3605c13c8..12aa92870 100644 --- a/www/views/modals/mercadolibre-card-details.html +++ b/www/views/modals/mercadolibre-card-details.html @@ -20,13 +20,13 @@
- Created - {{card.date | amTimeAgo}} + Created + {{card.date | amTimeAgo}}
-
-
+
+
Claim code: {{card.pin}}
@@ -35,16 +35,16 @@ Redeem Now
-
+
Status: - CANCELED + Inactive
-
+
Status: @@ -72,9 +72,6 @@
- - Cancel - Remove From d0ac2e4fa45b402b6ba821242097254dafe24cea Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 5 Jul 2017 18:43:47 -0300 Subject: [PATCH 005/157] URL and network --- src/js/services/mercadoLibreService.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js index f33991cc7..86bf74362 100644 --- a/src/js/services/mercadoLibreService.js +++ b/src/js/services/mercadoLibreService.js @@ -15,11 +15,11 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt * Development: 'testnet' * Production: 'livenet' */ - //credentials.NETWORK = 'livenet'; - credentials.NETWORK = 'testnet'; + credentials.NETWORK = 'livenet'; + //credentials.NETWORK = 'testnet'; if (credentials.NETWORK == 'testnet') { - credentials.BITPAY_API_URL = "https://gustavo.bp:8088"; + credentials.BITPAY_API_URL = "https://test.bitpay.com"; } else { credentials.BITPAY_API_URL = "https://bitpay.com"; }; From 0b3cb389ae0e39fe883f911b93e5185f3a1f8485 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 6 Jul 2017 18:10:04 -0300 Subject: [PATCH 006/157] UI styling. Improve error handle --- src/js/controllers/buyMercadoLibre.js | 10 +- src/js/controllers/mercadoLibreCards.js | 11 +- src/js/services/mercadoLibreService.js | 2 +- src/sass/views/integrations/mercadolibre.scss | 47 +++++++ www/views/mercadoLibreCards.html | 25 ++-- .../modals/mercadolibre-card-details.html | 121 +++++++++--------- 6 files changed, 134 insertions(+), 82 deletions(-) diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index 321d77d8a..79e2c1edf 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -142,13 +142,21 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f var checkTransaction = lodash.throttle(function(count, dataSrc) { mercadoLibreService.createGiftCard(dataSrc, function(err, giftCard) { $log.debug("creating gift card " + count); - if (err || !giftCard.pin) { + if (err) { $scope.sendStatus = ''; ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); giftCard = {}; giftCard.status = 'FAILURE'; } + if (giftCard && giftCard.cardStatus && (giftCard.cardStatus != 'active' && giftCard.cardStatus != 'inactive' && giftCard.cardStatus != 'expired')) { + $scope.sendStatus = ''; + ongoingProcess.set('buyingGiftCard', false, statusChangeHandler); + giftCard = {}; + giftCard.status = 'FAILURE'; + } + + if (giftCard.status == 'PENDING' && count < 3) { $log.debug("Waiting for payment confirmation"); checkTransaction(count + 1, dataSrc); diff --git a/src/js/controllers/mercadoLibreCards.js b/src/js/controllers/mercadoLibreCards.js index 438631c06..6d67a888a 100644 --- a/src/js/controllers/mercadoLibreCards.js +++ b/src/js/controllers/mercadoLibreCards.js @@ -24,18 +24,15 @@ angular.module('copayApp.controllers').controller('mercadoLibreCardsController', }; $scope.updatePendingGiftCards = lodash.debounce(function() { - $scope.updatingPending = {}; updateGiftCards(function() { var index = 0; var gcds = $scope.giftCards; lodash.forEach(gcds, function(dataFromStorage) { - if (dataFromStorage.status == 'PENDING' || dataFromStorage.status == 'invalid') { + if (dataFromStorage.status == 'PENDING') { $log.debug("Creating / Updating gift card"); - $scope.updatingPending[dataFromStorage.invoiceId] = true; mercadoLibreService.createGiftCard(dataFromStorage, function(err, giftCard) { - $scope.updatingPending[dataFromStorage.invoiceId] = false; if (err) { popupService.showAlert('Error creating gift card', err); return; @@ -44,6 +41,12 @@ angular.module('copayApp.controllers').controller('mercadoLibreCardsController', if (giftCard.status != 'PENDING') { var newData = {}; + if (!giftCard.status) dataFromStorage.status = null; // Fix error from server + + var cardStatus = giftCard.cardStatus; + if (cardStatus && (cardStatus != 'active' && cardStatus != 'inactive' && cardStatus != 'expired')) + giftCard.status = 'FAILURE'; + lodash.merge(newData, dataFromStorage, giftCard); mercadoLibreService.savePendingGiftCard(newData, null, function(err) { diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js index 86bf74362..eb07ac685 100644 --- a/src/js/services/mercadoLibreService.js +++ b/src/js/services/mercadoLibreService.js @@ -140,7 +140,7 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt $log.info('Mercado Libre Gift Card Create/Update: ' + status); return cb(null, data.data); }, function(data) { - $log.error('Mercado Libre Gift Card Create/Update: ' + data.data.message); + $log.error('Mercado Libre Gift Card Create/Update: ', JSON.stringify(data.data)); return cb(data.data); }); }; diff --git a/src/sass/views/integrations/mercadolibre.scss b/src/sass/views/integrations/mercadolibre.scss index 63b0032f5..54b0a7cfb 100644 --- a/src/sass/views/integrations/mercadolibre.scss +++ b/src/sass/views/integrations/mercadolibre.scss @@ -144,3 +144,50 @@ } } } + +#meli-card { + .card-head { + margin: 20px 0; + text-align: center; + .date { + font-size: 12px; + margin: 10px 0; + } + .amount { + font-size: 16px; + font-weight: bold; + } + } + .card-status { + text-align: center; + margin-bottom: 25px; + .card-status-desc { + margin-top: 5px; + font-size: 12px; + color: $v-text-secondary-color; + } + .redeem-pin { + font-weight: bold; + font-size: 22px; + } + .button-redeem { + margin-top: 10px; + background: transparent; + border: none; + font-size: 12px; + color: $v-text-accent-color; + } + } + .card-remove { + text-align: center; + margin-top: 30px; + .button-remove { + margin-top: 10px; + background: transparent; + border: none; + font-size: 12px; + color: red; + } + } + +} diff --git a/www/views/mercadoLibreCards.html b/www/views/mercadoLibreCards.html index 8488e318c..2888651fb 100644 --- a/www/views/mercadoLibreCards.html +++ b/www/views/mercadoLibreCards.html @@ -12,19 +12,20 @@ class="item item-avatar" ng-hide="hideCards"> {{id}} - - + + + Error + Invoice expired + Still pending + Pending + + Inactive + Expired +

- {{item.amount | currency : '$ ' : 2}} {{item.currency}} -

-

- Error - Expired - Still waiting confirmation
(Use higher fees setting to faster delivery)
- Pending to confirmation - Canceled - {{item.date | amTimeAgo}} -

+ {{item.amount | currency : '' : 2}} {{item.currency}} + +

{{item.date | amTimeAgo}}

diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html index 12aa92870..f4366ad79 100644 --- a/www/views/modals/mercadolibre-card-details.html +++ b/www/views/modals/mercadolibre-card-details.html @@ -1,82 +1,75 @@ - + - -

Details

+

Details

-
- Mercado Libre Gift Card +
+ Mercado Libre Gift Card -
- Gift Card Amount: - - {{card.amount | currency : '$ ' : 2}} - -
+
+ {{card.amount | currency : '' : 2}} {{card.currency}} +
+
+
+
+
{{card.pin}}
+ +
-
- Created +
+ Inactive +
Gift Card is not available to use anymore
+
+ +
+ Expired +
Gift Card is not available to use anymore
+
+ +
+ + Pending + + + Still pending + + + Error + + + Invoice expired + +
+
+ +
-
- There was a failure to the create gift card. Please, contact BitPay support. +
+ + See invoice
+
- +
+ +
From e7f8e2c23523db63c5cadba45f7980dee9e49e7e Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 26 Jul 2017 16:13:57 -0300 Subject: [PATCH 007/157] Fix wording. Error handler improved --- src/js/controllers/buyMercadoLibre.js | 2 +- src/js/services/mercadoLibreService.js | 12 ++++----- src/sass/views/integrations/mercadolibre.scss | 11 ++++++++- www/img/mercado-libre/meli-card-24px.png | Bin 0 -> 1393 bytes www/views/amount.html | 2 +- www/views/buyMercadoLibre.html | 10 +++++--- www/views/mercadoLibre.html | 23 ++++++++++++------ www/views/mercadoLibreCards.html | 8 +++--- 8 files changed, 44 insertions(+), 24 deletions(-) create mode 100644 www/img/mercado-libre/meli-card-24px.png diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index 79e2c1edf..165719a1d 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -110,7 +110,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f var outputs = []; var toAddress = invoice.bitcoinAddress; - var amountSat = parseInt(invoice.btcDue * 100000000); // BTC to Satoshi + var amountSat = parseInt((invoice.btcDue * 100000000).toFixed(0)); // BTC to Satoshi outputs.push({ 'toAddress': toAddress, diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js index eb07ac685..0db1549ce 100644 --- a/src/js/services/mercadoLibreService.js +++ b/src/js/services/mercadoLibreService.js @@ -26,14 +26,14 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt var homeItem = { name: 'mercadoLibre', - title: 'Mercado Libre', + title: 'Mercado Livre Brazil Gift Cards', icon: 'icon-ml', sref: 'tabs.giftcards.mercadoLibre', }; var nextStepItem = { name: 'mercadoLibre', - title: 'Buy Mercado Libre Gift Cards', + title: 'Buy Mercado Livre Brazil Gift Cards', icon: 'icon-ml', sref: 'tabs.giftcards.mercadoLibre', }; @@ -112,7 +112,7 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt $log.info('BitPay Create Invoice: SUCCESS'); return cb(null, data.data); }, function(data) { - $log.error('BitPay Create Invoice: ERROR ' + data.data.message); + $log.error('BitPay Create Invoice: ERROR', JSON.stringify(data.data)); return cb(data.data); }); }; @@ -122,8 +122,8 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt $log.info('BitPay Get Invoice: SUCCESS'); return cb(null, data.data.data); }, function(data) { - $log.error('BitPay Get Invoice: ERROR ' + data.data.error); - return cb(data.data.error); + $log.error('BitPay Get Invoice: ERROR', JSON.stringify(data.data)); + return cb(data.data); }); }; @@ -140,7 +140,7 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt $log.info('Mercado Libre Gift Card Create/Update: ' + status); return cb(null, data.data); }, function(data) { - $log.error('Mercado Libre Gift Card Create/Update: ', JSON.stringify(data.data)); + $log.error('Mercado Libre Gift Card Create/Update: ERROR', JSON.stringify(data.data)); return cb(data.data); }); }; diff --git a/src/sass/views/integrations/mercadolibre.scss b/src/sass/views/integrations/mercadolibre.scss index 54b0a7cfb..db8e6ecfe 100644 --- a/src/sass/views/integrations/mercadolibre.scss +++ b/src/sass/views/integrations/mercadolibre.scss @@ -41,7 +41,8 @@ } .big-icon-svg > .bg { - height: 27px; + height: 28px; + box-shadow: none; } } @@ -145,6 +146,14 @@ } } +#meli-list-cards { + img.item-logo { + width: auto; + height: auto; + border-radius: 0; + } +} + #meli-card { .card-head { margin: 20px 0; diff --git a/www/img/mercado-libre/meli-card-24px.png b/www/img/mercado-libre/meli-card-24px.png new file mode 100644 index 0000000000000000000000000000000000000000..2e42ef103feb6ca9dc4b3b02bc6e031ad3b4b9f4 GIT binary patch literal 1393 zcmeAS@N?(olHy`uVBq!ia0vp^sz5Bk!3HF2t4s=?Nk^)#sNw%$0gl~X?bAC~( zf~lUVo`I4bmx4`EN}5%WiyKrkkY}ruQBqQ1rLSLJUanVete0Puu5V~*X{m2uq;F)T z3sj+7T$xvrSfQI&tPC;&VunjnD>p{1Fbu92Q01B1rI(uwD_T>?dp z+Z#J8yS22Y7-mNB{+xKwO_I|zQ)=;_TW9wCT>9+z>%B8gZff1u^vd}Y^+9|?=ru1v zO-<|Uq~>{_&s_0%cITY!{NH=O&v|DnzUJVPNtaevDNa3?)#$mtxGwQxX8j>QX&Gw;6#Uc8sTamL48x7URJyt6+{yz>=TL{^KtXy|D!f6m`wn^&ETKBViVBqC@h zSe9Mn_)t2SU;O9IClwRzeXlh&7H%-(vVOeZ;!pR~mT5xMra$&lE%th8_sm=7;+H#X zj_`dfD`E0^bo8W&aL?m~{em-XOD_BOuURqS{_n~5&Td7bGebXRtPxOm6x+VSa;4l< z31M3;WzTzW{@>sCYGdQSq|$crRr0)#w+g?R{UOw#r=R)o4=a}2%yX8X{yDQ&qE2{k zz_pm_3mf>Bi>K=D;Z2vmP_@2o%Z2_F;qAwgJ{0kM<-SnEy4CyWys6(TcQrqlRdZGK z%^RobbMhnpv7IW(5T2JklO#{N9;`YMn0y?i@MdBeLe3YQ#d3sFJ{g`xk`#X4h!a6XA;8Rjim>-dZxXe!;{f z$LUd9rzl<0^I4PItG`4gE!ihZee%iEdt+_9)Fz+V^0BOE|JkRO&;RJf?|44vx!cPf z-#-dg*{o^{R$Jt*cfT#|L)nzR=mYC=BX6^_PEWqgnzi5Sqn~ij(mT%DiHQbKXYAjX@GSP1d&Q?xt@{(|r`-wm zkxhU3+sw(8^_2LJ$1=srielx#`%YYVzU1_s%El!^MSJrNEsi~5ytLFO;B57(&jKff zil1Lk_H4axzu>iKn*TcHgYy@wd@hka$8tqV%l^PAkxRWFpU&?rx>9%ZP2^0jecK#E z*SE91*DzK2*VZGI@Hn<)uT)KLbJV;i_m)r5543T(vavLF%HkhJ&eM1Nm)sgXbKxQr z-^;qj!h(g32fGtbEmEJgUv+Kk%01OROT^6T)K+{vwrpkae~zQmXV|*Fb-xr^vLS!o zY+H{*J1u|+x?pb|J;`fKVfsyTRbb?*t2!Fx<>!S-+mE2ch?90o%YgPLgMMq*&%w9^@DH7 zzT5Xp_rLzts$UB47XHq-apmgkkp0o;OXU`QR?xm2vX4u=ylm@?ePLPe=cjkSyzTfm sf8o2gCN9llNi`kEFD>kMG`9H5@LlR?nMt&{5U8Z|boFyt=akR{0MZ$100000 literal 0 HcmV?d00001 diff --git a/www/views/amount.html b/www/views/amount.html index 062722793..5dfee29e5 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -1,7 +1,7 @@ - {{'Enter Amount' | translate}} + {{'Enter amount' | translate}} diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index eb15ae12a..16d5d2944 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -2,7 +2,9 @@ - Buy + + {{'Buy'|translate}} + @@ -14,7 +16,7 @@
- Mercado Libre Gift Card + Mercado Livre Brazil Gift Cards
{{amountUnitStr}}
@@ -60,13 +62,13 @@ ng-click="buyConfirm()" ng-if="!isCordova" click-send-status="sendStatus"> - Confirm purchase + {{'Confirm purchase'|translate}} - Slide to buy + {{'Slide to buy'|translate}} - Mercado Libre Gift Cards + + {{'Mercado Livre Brazil Gift Cards'|translate}} + @@ -13,13 +15,18 @@ -
- Gift Cards are only redeemable on Mercado Livre (Brazil) +
+ Only redeemable on Mercado Livre (Brazil)
- + + ng-click="openExternalLink('https://www.mercadolivre.com.br')" translate> + Visit mercadolivre.com.br → +
@@ -30,7 +37,7 @@
Mercado Libre -
+
Only redeemable on Mercado Livre (Brazil)
@@ -40,14 +47,14 @@ - Buy Gift Card + Buy a Gift Card - Your cards + Your Gift Cards
diff --git a/www/views/mercadoLibreCards.html b/www/views/mercadoLibreCards.html index 2888651fb..ba7eba1ec 100644 --- a/www/views/mercadoLibreCards.html +++ b/www/views/mercadoLibreCards.html @@ -1,8 +1,10 @@ - + - Your cards + + {{'Your Gift Cards'|translate}} + @@ -11,7 +13,7 @@ ng-click="openCardModal(item)" class="item item-avatar" ng-hide="hideCards"> - {{id}} + Error From 60f049c0d31fe71410494b68a49bcd5107dde2ed Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 26 Jul 2017 16:25:12 -0300 Subject: [PATCH 008/157] Clean code. Modal view --- .../modals/mercadoLibreCardDetails.js | 66 +------------------ .../modals/mercadolibre-card-details.html | 8 +-- 2 files changed, 6 insertions(+), 68 deletions(-) diff --git a/src/js/controllers/modals/mercadoLibreCardDetails.js b/src/js/controllers/modals/mercadoLibreCardDetails.js index 1b1628c9d..cbb2a6af6 100644 --- a/src/js/controllers/modals/mercadoLibreCardDetails.js +++ b/src/js/controllers/modals/mercadoLibreCardDetails.js @@ -2,77 +2,15 @@ angular.module('copayApp.controllers').controller('mercadoLibreCardDetailsController', function($scope, $log, $timeout, $ionicScrollDelegate, bwcError, mercadoLibreService, lodash, ongoingProcess, popupService, externalLinkService) { - $scope.cancelGiftCard = function() { - ongoingProcess.set('cancelingGiftCard', true); - mercadoLibreService.cancelGiftCard($scope.card, function(err, data) { - ongoingProcess.set('cancelingGiftCard', false); - if (err) { - popupService.showAlert('Error canceling gift card', bwcError.msg(err)); - return; - } - $scope.card.cardStatus = data.cardStatus; - $timeout(function() { - $ionicScrollDelegate.resize(); - $ionicScrollDelegate.scrollTop(); - }, 10); - mercadoLibreService.savePendingGiftCard($scope.card, null, function(err) { - $scope.refreshGiftCard(); - }); - }); - }; - $scope.remove = function() { mercadoLibreService.savePendingGiftCard($scope.card, { remove: true }, function(err) { - $scope.cancel(); + $scope.close(); }); }; - $scope.refreshGiftCard = function() { - ongoingProcess.set('updatingGiftCard', true); - mercadoLibreService.getPendingGiftCards(function(err, gcds) { - if (lodash.isEmpty(gcds)) { - $timeout(function() { - ongoingProcess.set('updatingGiftCard', false); - }, 1000); - } - if (err) { - popupService.showAlert('Error', err); - return; - } - var index = 0; - lodash.forEach(gcds, function(dataFromStorage) { - if (++index == Object.keys(gcds).length) { - $timeout(function() { - ongoingProcess.set('updatingGiftCard', false); - }, 1000); - } - if (dataFromStorage.status == 'PENDING' && dataFromStorage.invoiceId == $scope.card.invoiceId) { - $log.debug("creating gift card"); - mercadoLibreService.createGiftCard(dataFromStorage, function(err, giftCard) { - if (err) { - popupService.showAlert('Error', bwcError.msg(err)); - return; - } - if (!lodash.isEmpty(giftCard)) { - var newData = {}; - lodash.merge(newData, dataFromStorage, giftCard); - mercadoLibreService.savePendingGiftCard(newData, null, function(err) { - $log.debug("Saving new gift card"); - $scope.card = newData; - $timeout(function() { - $scope.$digest(); - }); - }); - } else $log.debug("pending gift card not available yet"); - }); - } - }); - }); - }; - - $scope.cancel = function() { + $scope.close = function() { $scope.mercadoLibreCardDetailsModal.hide(); }; diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html index f4366ad79..3d272e3de 100644 --- a/www/views/modals/mercadolibre-card-details.html +++ b/www/views/modals/mercadolibre-card-details.html @@ -1,6 +1,6 @@ -

Details

@@ -9,7 +9,7 @@
- Mercado Libre Gift Card + Mercado Livre Brazil Gift Card
{{card.amount | currency : '' : 2}} {{card.currency}} @@ -59,9 +59,9 @@
-
+
- See invoice + See invoice
From 0f7fc66c368d0b0d0b173c0ce804a530d69dd2f3 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 26 Jul 2017 16:27:29 -0300 Subject: [PATCH 009/157] Removes unused services --- src/js/controllers/modals/mercadoLibreCardDetails.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/modals/mercadoLibreCardDetails.js b/src/js/controllers/modals/mercadoLibreCardDetails.js index cbb2a6af6..78bdf544d 100644 --- a/src/js/controllers/modals/mercadoLibreCardDetails.js +++ b/src/js/controllers/modals/mercadoLibreCardDetails.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('mercadoLibreCardDetailsController', function($scope, $log, $timeout, $ionicScrollDelegate, bwcError, mercadoLibreService, lodash, ongoingProcess, popupService, externalLinkService) { +angular.module('copayApp.controllers').controller('mercadoLibreCardDetailsController', function($scope, mercadoLibreService, externalLinkService) { $scope.remove = function() { mercadoLibreService.savePendingGiftCard($scope.card, { From 4a62cf1fba1e0cc1af4c97d43d43cdc988fa60e9 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 26 Jul 2017 17:46:17 -0300 Subject: [PATCH 010/157] Display more info before purchase --- src/js/controllers/buyMercadoLibre.js | 48 ++++++++++++++++++++++----- www/views/buyMercadoLibre.html | 24 ++++++++++---- 2 files changed, 58 insertions(+), 14 deletions(-) diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index 165719a1d..fa01a6143 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -14,6 +14,11 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f externalLinkService.open(url); }; + var _resetValues = function() { + $scope.totalAmountStr = $scope.amount = $scope.invoiceFee = $scope.networkFee = $scope.totalAmount = $scope.wallet = null; + createdTx = message = invoiceId = null; + }; + var showErrorAndBack = function(title, msg) { title = title || gettextCatalog.getString('Error'); $scope.sendStatus = ''; @@ -58,6 +63,30 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f } }; + var satToFiat = function(sat, cb) { + txFormatService.toFiat(sat, $scope.currencyIsoCode, function(value) { + return cb(value); + }); + }; + + var setTotalAmount = function(amountSat, invoiceFeeSat, networkFeeSat) { + satToFiat(amountSat, function(a) { + $scope.amount = Number(a); + + satToFiat(invoiceFeeSat, function(i) { + $scope.invoiceFee = Number(i); + + satToFiat(networkFeeSat, function(n) { + $scope.networkFee = Number(n); + $scope.totalAmount = $scope.amount + $scope.invoiceFee + $scope.networkFee; + $timeout(function() { + $scope.$digest(); + }); + }); + }); + }); + }; + var createInvoice = function(data, cb) { mercadoLibreService.createBitPayInvoice(data, function(err, dataInvoice) { if (err) { @@ -184,7 +213,9 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f 'leading': true }); - var initialize = function(wallet, parsedAmount) { + var initialize = function(wallet) { + var parsedAmount = txFormatService.parseAmount(amount, currency); + $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { amount: parsedAmount.amount, @@ -198,16 +229,18 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f showErrorAndBack(err.title, err.message); return; } + // Sometimes API does not return this element; + invoice['buyerPaidBtcMinerFee'] = invoice.buyerPaidBtcMinerFee || 0; + var invoiceFeeSat = (invoice.buyerPaidBtcMinerFee * 100000000).toFixed(); - message = gettextCatalog.getString("Mercado Libre Gift Card {{amountStr}}", { + message = gettextCatalog.getString("{{amountStr}} for Mercado Livre Brazil Gift Card", { amountStr: $scope.amountUnitStr }); createTx(wallet, invoice, message, function(err, ctxp) { ongoingProcess.set('loadingTxInfo', false); if (err) { - // Clear variables - createdTx = message = $scope.totalFeeStr = $scope.totalAmountStr = $scope.wallet = null; + _resetValues(); showError(err.title, err.message); return; } @@ -225,8 +258,8 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f invoiceUrl: invoice.url, invoiceTime: invoice.invoiceTime }; - $scope.totalFeeStr = txFormatService.formatAmountStr(ctxp.fee); - $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount + ctxp.fee); + $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount); + setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); }); }); }; @@ -295,8 +328,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; - var parsedAmount = txFormatService.parseAmount(amount, currency); - initialize(wallet, parsedAmount); + initialize(wallet); }; $scope.goBackHome = function() { diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index 16d5d2944..04461ad7a 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -25,7 +25,7 @@
-
From
+
From
@@ -34,21 +34,33 @@
-
Details
- Network fee + Gift card - {{totalFeeStr}} + {{amount | currency:'$ ':2}} {{currencyIsoCode}}
- Total to pay + Invoice Fee - {{totalAmountStr}} + {{invoiceFee | currency:'$ ':2}} {{currencyIsoCode}} + +
+
+ Network Fee + + {{networkFee | currency:'$ ':2}} {{currencyIsoCode}} + +
+
+ Total + + {{totalAmount | currency:'$ ':2}} {{currencyIsoCode}} + ({{totalAmountStr}})
From 41892931142ec5df1c297763f351ace6f73c4d74 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 26 Jul 2017 18:19:16 -0300 Subject: [PATCH 011/157] Fix Amazon integration: details shows always in USD --- src/js/controllers/buyAmazon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/buyAmazon.js b/src/js/controllers/buyAmazon.js index b063126cc..986b2c908 100644 --- a/src/js/controllers/buyAmazon.js +++ b/src/js/controllers/buyAmazon.js @@ -217,7 +217,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio var initialize = function(wallet) { var parsedAmount = txFormatService.parseAmount(amount, currency); - $scope.currencyIsoCode = parsedAmount.alternativeIsoCode; + $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { amount: parsedAmount.amount, From aa177644684c54b67f91b33c76b73f640637ff5d Mon Sep 17 00:00:00 2001 From: Kirvx Date: Thu, 27 Jul 2017 20:12:21 +0200 Subject: [PATCH 012/157] Update welcome.html --- www/views/onboarding/welcome.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/onboarding/welcome.html b/www/views/onboarding/welcome.html index 669efdbfb..4c4721849 100644 --- a/www/views/onboarding/welcome.html +++ b/www/views/onboarding/welcome.html @@ -5,7 +5,7 @@

Take control of your money,
get started with bitcoin.

- +
From c8a27dabc18b546cba49b676fbbbb3079489bda8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 3 Aug 2017 10:17:38 -0300 Subject: [PATCH 013/157] hide wallet name if alias exists --- src/js/controllers/preferencesDelete.js | 5 ++--- www/views/preferencesDeleteWallet.html | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/preferencesDelete.js b/src/js/controllers/preferencesDelete.js index 21c1d1c64..8283f93c5 100644 --- a/src/js/controllers/preferencesDelete.js +++ b/src/js/controllers/preferencesDelete.js @@ -2,7 +2,7 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletController', function($scope, $ionicHistory, gettextCatalog, lodash, profileService, $state, ongoingProcess, popupService, pushNotificationsService) { - + $scope.$on("$ionicView.beforeEnter", function(event, data) { if (!data.stateParams || !data.stateParams.walletId) { popupService.showAlert(null, gettextCatalog.getString('No wallet selected'), function() { @@ -17,8 +17,7 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro }); return; } - $scope.alias = lodash.isEqual($scope.wallet.name, $scope.wallet.credentials.walletName) ? null : $scope.wallet.name + ' '; - $scope.walletName = $scope.wallet.credentials.walletName; + $scope.walletName = $scope.wallet.name; }); $scope.showDeletePopup = function() { diff --git a/www/views/preferencesDeleteWallet.html b/www/views/preferencesDeleteWallet.html index 3d5202c9b..1a7bfbc03 100644 --- a/www/views/preferencesDeleteWallet.html +++ b/www/views/preferencesDeleteWallet.html @@ -18,7 +18,7 @@

From 68729b71a33dc76140c2e196c1abee01eb419a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 3 Aug 2017 10:26:43 -0300 Subject: [PATCH 014/157] use app name for err message --- src/js/services/profileService.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index d5598a5b8..9c00cec35 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('profileService', function profileServiceFactory($rootScope, $timeout, $filter, $log, sjcl, lodash, storageService, bwcService, configService, gettextCatalog, bwcError, uxLanguage, platformInfo, txFormatService, $state) { + .factory('profileService', function profileServiceFactory($rootScope, $timeout, $filter, $log, $state, sjcl, lodash, storageService, bwcService, configService, gettextCatalog, bwcError, uxLanguage, platformInfo, txFormatService, appConfigService) { var isChromeApp = platformInfo.isChromeApp; @@ -495,7 +495,9 @@ angular.module('copayApp.services') var walletId = client.credentials.walletId if (!root.profile.addWallet(JSON.parse(client.export()))) - return cb(gettextCatalog.getString('Wallet already in Copay')); + return cb(gettextCatalog.getString("Wallet already in {{appName}}", { + appName: appConfigService.nameCase + })); var skipKeyValidation = shouldSkipValidation(walletId); From 7865f5f2c336a26a9fecab58e0b6c6f3b23d80fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 3 Aug 2017 10:38:46 -0300 Subject: [PATCH 015/157] fix wallet name on settings --- www/views/preferences.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/preferences.html b/www/views/preferences.html index 64cf21c80..3e4f9d5c3 100644 --- a/www/views/preferences.html +++ b/www/views/preferences.html @@ -13,7 +13,7 @@ Name - + {{wallet.name}} From 1506ed8d20c438c6d639a3ef7474e718fab15426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 3 Aug 2017 12:29:05 -0300 Subject: [PATCH 016/157] fix translations --- www/views/modals/chooseFeeLevel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/modals/chooseFeeLevel.html b/www/views/modals/chooseFeeLevel.html index b0155ed42..0dc34c63e 100644 --- a/www/views/modals/chooseFeeLevel.html +++ b/www/views/modals/chooseFeeLevel.html @@ -75,7 +75,7 @@
Fee level
-
From 3e6c9f2782cd69330b39521a83b77765e712ad99 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Mon, 7 Aug 2017 13:11:12 -0300 Subject: [PATCH 017/157] remove testnet fiat amount - fix apply in update wallet function --- src/js/controllers/walletDetails.js | 4 +++- www/img/icon-text-testnet-white.svg | 13 +++++++++++++ www/views/includes/walletInfo.html | 1 + www/views/walletDetails.html | 7 +++---- 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 www/img/icon-text-testnet-white.svg diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index 13698f0cd..f8b77cb59 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -184,7 +184,9 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun } $scope.completeTxHistory = txHistory; $scope.showHistory(); - $scope.$apply(); + $timeout(function() { + $scope.$apply(); + }); return cb(); }); }); diff --git a/www/img/icon-text-testnet-white.svg b/www/img/icon-text-testnet-white.svg new file mode 100644 index 000000000..aaedcd70b --- /dev/null +++ b/www/img/icon-text-testnet-white.svg @@ -0,0 +1,13 @@ + + + + Group 2 Copy + Created with Sketch. + + + + + + + + diff --git a/www/views/includes/walletInfo.html b/www/views/includes/walletInfo.html index 98ec7ac02..e0690f6ad 100644 --- a/www/views/includes/walletInfo.html +++ b/www/views/includes/walletInfo.html @@ -4,6 +4,7 @@
Auditable + diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index a2dbd7ae8..4e7809f25 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -45,9 +45,8 @@ {{status.totalBalanceStr}}
+ ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'" + ng-style="{opacity: altAmountOpacity}"> {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
@@ -119,7 +118,7 @@
{{status.totalBalanceStr}} -
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
+
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
From 1781a3d40d2c70f74079ed3e421522d343f38635 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 9 Aug 2017 10:51:46 -0300 Subject: [PATCH 018/157] Fix strings to translate --- www/views/modals/mercadolibre-card-details.html | 4 ++-- www/views/preferencesLogs.html | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html index 3d272e3de..c051d3355 100644 --- a/www/views/modals/mercadolibre-card-details.html +++ b/www/views/modals/mercadolibre-card-details.html @@ -21,7 +21,7 @@
{{card.pin}}
@@ -53,7 +53,7 @@
- Created + Date {{card.date | amTimeAgo}} diff --git a/www/views/preferencesLogs.html b/www/views/preferencesLogs.html index 84d0528ac..55ed54ca5 100644 --- a/www/views/preferencesLogs.html +++ b/www/views/preferencesLogs.html @@ -12,7 +12,10 @@
- +
+ No entries for this log level. + Filter setting. +
  • From 7cfe3c6445ba0c1dbd5cf19fe600196ba2a4f631 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 9 Aug 2017 10:51:55 -0300 Subject: [PATCH 019/157] Updates POT --- i18n/po/template.pot | 205 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 164 insertions(+), 41 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index c9e1a1f1e..229a7cf03 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -29,6 +29,11 @@ msgstr "" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -238,7 +243,7 @@ msgstr "" msgid "Are you sure you want to delete this contact?" msgstr "" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "" @@ -386,6 +391,7 @@ msgid "Browser unsupported" msgstr "" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" msgstr "" @@ -397,6 +403,11 @@ msgstr "" msgid "Buy Bitcoin" msgstr "" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "" @@ -410,6 +421,7 @@ msgid "Calculating fee" msgstr "" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -475,6 +487,7 @@ msgid "Click" msgstr "" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -500,6 +513,7 @@ msgid "Completed" msgstr "" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -516,6 +530,7 @@ msgid "Confirm & Finish" msgstr "" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "" @@ -597,11 +612,15 @@ msgstr "" #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "" @@ -635,6 +654,7 @@ msgid "Could not create the invoice" msgstr "" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "" @@ -667,11 +687,12 @@ msgstr "" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "" @@ -680,13 +701,13 @@ msgstr "" msgid "Could not get transactions" msgstr "" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "" @@ -716,11 +737,12 @@ msgid "Could not send payment" msgstr "" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "" @@ -787,6 +809,7 @@ msgstr "" msgid "Custom Fee" msgstr "" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -829,6 +852,8 @@ msgid "Derivation Strategy" msgstr "" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "" @@ -897,10 +922,6 @@ msgstr "" msgid "Enable the camera to get started." msgstr "" -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -910,6 +931,10 @@ msgstr "" msgid "Enter Two Factor for your BitPay account" msgstr "" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "" @@ -943,6 +968,8 @@ msgstr "" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -984,13 +1011,13 @@ msgstr "" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1000,6 +1027,8 @@ msgstr "" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "" @@ -1012,6 +1041,7 @@ msgid "Error creating gift card" msgstr "" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "" @@ -1024,6 +1054,7 @@ msgid "Error getting SendMax information" msgstr "" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "" @@ -1050,6 +1081,8 @@ msgstr "" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "" @@ -1102,11 +1135,11 @@ msgstr "" msgid "Fee" msgstr "" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "" @@ -1132,6 +1165,10 @@ msgstr "" msgid "File/Text" msgstr "" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1149,6 +1186,7 @@ msgstr "" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1212,8 +1250,12 @@ msgstr "" msgid "Get news and updates from BitPay" msgstr "" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "" @@ -1225,7 +1267,13 @@ msgstr "" msgid "Getting fee levels..." msgstr "" +#: 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 "" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" msgstr "" @@ -1410,6 +1458,11 @@ msgstr "" msgid "In order to verify your wallet backup, please type your password." msgstr "" +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1451,6 +1504,7 @@ msgid "Invalid" msgstr "" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "" @@ -1480,10 +1534,16 @@ msgid "Invitation to share a {{appName}} Wallet" msgstr "" #: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 #: www/views/topup.html:56 msgid "Invoice Fee" msgstr "" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "" + #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" msgstr "" @@ -1575,6 +1635,10 @@ msgstr "" msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "" @@ -1611,6 +1675,14 @@ msgstr "" msgid "Memo" msgstr "" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "" @@ -1653,6 +1725,7 @@ msgid "Name" msgstr "" #: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 #: www/views/topup.html:63 msgid "Network Fee" msgstr "" @@ -1682,6 +1755,7 @@ msgid "No Wallet" msgstr "" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "" @@ -1693,6 +1767,10 @@ msgstr "" msgid "No contacts yet" msgstr "" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "" @@ -1714,7 +1792,7 @@ msgstr "" msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "" @@ -1727,6 +1805,7 @@ msgid "No wallet selected" msgstr "" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1819,6 +1898,10 @@ msgstr "" msgid "Oh no!" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "" @@ -1961,6 +2044,11 @@ msgstr "" msgid "Payment request" msgstr "" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "" @@ -2022,7 +2110,7 @@ msgstr "" msgid "Preparing backup..." msgstr "" -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "" @@ -2060,7 +2148,7 @@ msgstr "" msgid "Proposal Rejected" msgstr "" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "" @@ -2068,6 +2156,10 @@ msgstr "" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "" @@ -2151,7 +2243,7 @@ msgstr "" msgid "Recovery phrase" msgstr "" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "" @@ -2160,6 +2252,10 @@ msgstr "" msgid "Recreating Wallet..." msgstr "" +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2174,6 +2270,7 @@ msgid "Release information" msgstr "" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "" @@ -2292,6 +2389,10 @@ msgstr "" msgid "Security" msgstr "" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "" @@ -2328,7 +2429,7 @@ msgstr "" msgid "Send addresses by email" msgstr "" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "" @@ -2392,6 +2493,7 @@ msgid "Server response could not be verified" msgstr "" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "" @@ -2491,6 +2593,7 @@ msgid "Slide" msgstr "" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" @@ -2511,7 +2614,7 @@ msgstr "" msgid "Spending Password needed" msgstr "" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2523,6 +2626,11 @@ msgstr "" msgid "Startup Lock" msgstr "" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" msgstr "" @@ -2552,12 +2660,12 @@ msgstr "" msgid "Take control of your money,
    get started with bitcoin." msgstr "" -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "" @@ -2721,7 +2829,7 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "" @@ -2761,12 +2869,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "" @@ -2801,6 +2910,7 @@ msgid "Transaction already broadcasted" msgstr "" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "" @@ -2818,7 +2928,7 @@ msgstr "" msgid "Transaction not found" msgstr "" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "" @@ -2854,7 +2964,7 @@ msgstr "" msgid "Unit" msgstr "" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "" @@ -2874,7 +2984,7 @@ msgstr "" msgid "Updating pending proposals. Please stand by" msgstr "" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "" @@ -2928,7 +3038,11 @@ msgstr "" msgid "View on blockchain" msgstr "" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "" @@ -3041,7 +3155,7 @@ msgid "Wallet already exists" msgstr "" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" +msgid "Wallet already in {{appName}}" msgstr "" #: www/views/includes/walletActivity.html:6 @@ -3074,7 +3188,7 @@ msgid "Wallet needs backup" msgstr "" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "" @@ -3109,7 +3223,7 @@ msgstr "" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3219,7 +3333,7 @@ msgstr "" msgid "You control your bitcoin." msgstr "" -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "" @@ -3235,6 +3349,11 @@ msgstr "" msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "" +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "" @@ -3243,7 +3362,7 @@ msgstr "" msgid "Your bitcoin wallet is ready!" msgstr "" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "" @@ -3284,8 +3403,8 @@ msgstr "" #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "" @@ -3327,6 +3446,10 @@ msgstr "" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "" + #: 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)." msgstr "" @@ -3339,11 +3462,11 @@ msgstr "" msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "" From 0e384ba204b4793b30dba2ab8ea13e020d0f5ef7 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 9 Aug 2017 11:09:20 -0300 Subject: [PATCH 020/157] Update ionic and lodash for dev-dependencies --- app-template/package-template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index d9ebdd18a..de069c328 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -118,9 +118,9 @@ "devDependencies": { "cordova": "^6.3.1", "grunt": "^1.0.1", - "ionic": "^2.1.0", + "ionic": "^3.6.0", "trash-cli": "^1.4.0", - "lodash": "^4.3.0", + "lodash": "^4.17.4", "pre-commit": "^1.1.3" }, "pre-commit": "unstage-package" From d6b77943994bb8d31401920f6e2dd0ed10ea0f52 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 9 Aug 2017 11:34:26 -0300 Subject: [PATCH 021/157] Fix bower dependencies --- bower.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bower.json b/bower.json index 1547d384f..ed4b40ce9 100644 --- a/bower.json +++ b/bower.json @@ -15,12 +15,12 @@ "moment": "2.10.3", "ng-lodash": "0.2.3", "qrcode-decoder-js": "*", - "trezor-connect": "~1.1.3", + "trezor-connect": "https://github.com/trezor/connect.git#c1a00f9f0f4a13239ba13ddd589c6ca61f2e7876", "ng-csv": "~0.3.6", - "ionic-toast": "^0.4.1", - "angular-clipboard": "^1.4.2", - "angular-md5": "^0.1.10", - "ngtouch": "^1.0.1" + "ionic-toast": "0.4.1", + "angular-clipboard": "1.4.2", + "angular-md5": "0.1.10", + "ngtouch": "1.0.1" }, "resolutions": { "angular": "1.5.3", From 179ffe0856146206c149be937d1c75c1725e282f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 9 Aug 2017 11:46:21 -0300 Subject: [PATCH 022/157] Trezo-connect --- bower.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index ed4b40ce9..08a82d9b8 100644 --- a/bower.json +++ b/bower.json @@ -17,10 +17,10 @@ "qrcode-decoder-js": "*", "trezor-connect": "https://github.com/trezor/connect.git#c1a00f9f0f4a13239ba13ddd589c6ca61f2e7876", "ng-csv": "~0.3.6", - "ionic-toast": "0.4.1", - "angular-clipboard": "1.4.2", - "angular-md5": "0.1.10", - "ngtouch": "1.0.1" + "ionic-toast": "^0.4.1", + "angular-clipboard": "^1.4.2", + "angular-md5": "^0.1.10", + "ngtouch": "^1.0.1" }, "resolutions": { "angular": "1.5.3", From 776df7db733c12c65a79d6d299b0ac67ec022f6f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 16 Aug 2017 10:17:36 -0300 Subject: [PATCH 023/157] Fix fee names. Updates translation --- i18n/po/template.pot | 20 ++++++++++---------- www/views/buyAmazon.html | 4 ++-- www/views/buyMercadoLibre.html | 4 ++-- www/views/topup.html | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index 229a7cf03..beadf761d 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -1533,12 +1533,6 @@ msgstr "" msgid "Invitation to share a {{appName}} Wallet" msgstr "" -#: www/views/buyAmazon.html:49 -#: www/views/buyMercadoLibre.html:48 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "" - #: www/views/mercadoLibreCards.html:20 #: www/views/modals/mercadolibre-card-details.html:48 msgid "Invoice expired" @@ -1687,6 +1681,12 @@ msgstr "" msgid "Merchant Message" msgstr "" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "" @@ -1724,10 +1724,10 @@ msgstr "" msgid "Name" msgstr "" -#: www/views/buyAmazon.html:55 -#: www/views/buyMercadoLibre.html:54 -#: www/views/topup.html:63 -msgid "Network Fee" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" msgstr "" #: src/js/services/bwcError.js:47 diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index 6fbe3690e..ded0aca93 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -46,13 +46,13 @@
- Invoice Fee + Network Cost {{invoiceFee | currency:'$ ':2}} {{currencyIsoCode}}
- Network Fee + Miner Fee {{networkFee | currency:'$ ':2}} {{currencyIsoCode}} diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index 04461ad7a..7791aee82 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -45,13 +45,13 @@
- Invoice Fee + Network Cost {{invoiceFee | currency:'$ ':2}} {{currencyIsoCode}}
- Network Fee + Miner Fee {{networkFee | currency:'$ ':2}} {{currencyIsoCode}} diff --git a/www/views/topup.html b/www/views/topup.html index 1cdb3e8ab..9dee6b185 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -53,14 +53,14 @@
- Invoice Fee + Network Cost {{invoiceFee | currency:currencySymbol:2}} {{currencyIsoCode}} ...
- Network Fee + Miner Fee {{networkFee | currency:currencySymbol:2}} {{currencyIsoCode}} ... From 6687ed81f9d35b1d117b220cfa439136d990c05f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 16 Aug 2017 10:25:22 -0300 Subject: [PATCH 024/157] Fix crowdin script --- app-template/package-template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index de069c328..849d1e6a3 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -54,7 +54,7 @@ "angular": "1.4.6", "angular-mocks": "1.4.10", "bezier-easing": "^2.0.3", - "bhttp": "^1.2.1", + "bhttp": "1.2.1", "bitauth": "^0.2.1", "bitcore-wallet-client": "5.3.0", "bower": "^1.7.9", From 23cc08574eea7a89fbcf031bd21e1b1ac14d3454 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 16 Aug 2017 11:12:56 -0300 Subject: [PATCH 025/157] Purchase throught from Coinbase: Force buyInfo request until get transaction id --- src/js/controllers/buyCoinbase.js | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js index 6066207ba..257dbc685 100644 --- a/src/js/controllers/buyCoinbase.js +++ b/src/js/controllers/buyCoinbase.js @@ -209,21 +209,31 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct }); }; + var _getBuyOrder = function() { + coinbaseService.getBuyOrder(accessToken, accountId, b.data.id, function (err, buyResp) { + if (err) { + ongoingProcess.set('buyingBitcoin', false, statusChangeHandler); + showError(err); + return; + } + var tx = buyResp.data ? buyResp.data.transaction : null; + if (tx && tx.id) { + processBuyTx(tx); + } else { + $timeout(function() { + _getBuyOrder(); + }, 5000); + } + }); + } + $timeout(function() { var tx = b.data ? b.data.transaction : null; - if (tx) { + if (tx && tx.id) { processBuyTx(tx); } else { - coinbaseService.getBuyOrder(accessToken, accountId, b.data.id, function (err, buyResp) { - if (err) { - ongoingProcess.set('buyingBitcoin', false, statusChangeHandler); - showError(err); - return; - } - var tx = buyResp.data ? buyResp.data.transaction : null; - processBuyTx(tx); - }); + _getBuyOrder(); } }, 8000); }); From 8d5fd4ea902acf041514b483aad6edc0b80627e7 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 16 Aug 2017 11:15:32 -0300 Subject: [PATCH 026/157] Rename functions --- src/js/controllers/buyCoinbase.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js index 257dbc685..57a95a0c7 100644 --- a/src/js/controllers/buyCoinbase.js +++ b/src/js/controllers/buyCoinbase.js @@ -209,7 +209,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct }); }; - var _getBuyOrder = function() { + var _processBuyOrder = function() { coinbaseService.getBuyOrder(accessToken, accountId, b.data.id, function (err, buyResp) { if (err) { ongoingProcess.set('buyingBitcoin', false, statusChangeHandler); @@ -221,7 +221,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct processBuyTx(tx); } else { $timeout(function() { - _getBuyOrder(); + _processBuyOrder(); }, 5000); } }); @@ -233,7 +233,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct processBuyTx(tx); } else { - _getBuyOrder(); + _processBuyOrder(); } }, 8000); }); From 80cb96eac37b327c00f85dbd98d7a36845bf22fe Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 16 Aug 2017 11:30:01 -0300 Subject: [PATCH 027/157] ML disabled --- src/js/services/mercadoLibreService.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/services/mercadoLibreService.js b/src/js/services/mercadoLibreService.js index 0db1549ce..80263a961 100644 --- a/src/js/services/mercadoLibreService.js +++ b/src/js/services/mercadoLibreService.js @@ -177,6 +177,7 @@ angular.module('copayApp.services').factory('mercadoLibreService', function($htt }); }; - register(); + // Hide Mercado Libre + // register(); return root; }); From a1b260c79204071379b5ae72e92ebb80e28206a6 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 17 Aug 2017 09:47:46 -0300 Subject: [PATCH 028/157] New release v3.7.3 --- app-template/bitpay/appConfig.json | 4 ++-- app-template/copay/appConfig.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app-template/bitpay/appConfig.json b/app-template/bitpay/appConfig.json index e1053b065..52a2bff4e 100644 --- a/app-template/bitpay/appConfig.json +++ b/app-template/bitpay/appConfig.json @@ -23,8 +23,8 @@ "windowsAppId": "2d1002d7-ee34-4f60-bd29-0c871ba0c195", "pushSenderId": "1036948132229", "description": "Secure Bitcoin Wallet", - "version": "3.7.1", - "androidVersion": "371000", + "version": "3.7.3", + "androidVersion": "373000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, diff --git a/app-template/copay/appConfig.json b/app-template/copay/appConfig.json index c36e4cbcc..4c408fcf4 100644 --- a/app-template/copay/appConfig.json +++ b/app-template/copay/appConfig.json @@ -23,8 +23,8 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "3.7.1", - "androidVersion": "371000", + "version": "3.7.3", + "androidVersion": "373000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, From fd8024c2861aaeb64388fe07b5f72dfc8e71e15b Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 17 Aug 2017 09:50:40 -0300 Subject: [PATCH 029/157] Update translations --- i18n/po/de.po | 221 ++++++++++++++++++------ i18n/po/es.po | 225 ++++++++++++++++++------ i18n/po/fr.po | 229 +++++++++++++++++++------ i18n/po/it.po | 333 ++++++++++++++++++++++++------------ i18n/po/ja.po | 311 ++++++++++++++++++++++++---------- i18n/po/pl.po | 307 +++++++++++++++++++++++---------- i18n/po/pt.po | 229 +++++++++++++++++++------ i18n/po/ru.po | 243 +++++++++++++++++++------- i18n/po/zh.po | 461 ++++++++++++++++++++++++++++++++------------------ 9 files changed, 1833 insertions(+), 726 deletions(-) diff --git a/i18n/po/de.po b/i18n/po/de.po index dddbd89c1..ae6867cb7 100644 --- a/i18n/po/de.po +++ b/i18n/po/de.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: German\n" "Language: de\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "Eine 5-Sterne Bewertung hilft uns, {{appName}} unter die Leute zu bringen. Und mehr Nutzer bedeuten, dass uns mehr Ressourcen für die App-Entwicklung zur Verfügung stehen!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -247,7 +252,7 @@ msgstr "Wollen Sie wirklich abbrechen und dieses Wallet löschen?" msgid "Are you sure you want to delete this contact?" msgstr "" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Soll das Wallet wirklich gelöscht werden?" @@ -395,6 +400,7 @@ msgid "Browser unsupported" msgstr "Browser wird nicht unterstützt" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" msgstr "" @@ -406,6 +412,11 @@ msgstr "Kaufe & Verkaufe Bitcoins" msgid "Buy Bitcoin" msgstr "Kaufe Bitcoins" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "" @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Mining-Fee Berechnung" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Klick" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,6 +539,7 @@ msgid "Confirm & Finish" msgstr "Bestätigen & Beenden" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "" @@ -606,11 +621,15 @@ msgstr "Diesen Text an einem sichern Ort einfügen (Notepad oder E-Mail)" #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "In die Zwischenablage kopieren" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Kein Zugriff auf Wallet des Servers. Überprüfen Sie bitte:" @@ -644,6 +663,7 @@ msgid "Could not create the invoice" msgstr "" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "" @@ -676,11 +696,12 @@ msgstr "Dynamische Gebühr konnten nicht abgerufen werden" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Dynamische Gebühr für den Level konnte nicht abgerufen werden: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "" @@ -689,13 +710,13 @@ msgstr "" msgid "Could not get transactions" msgstr "Transaktionen konnten nicht gefunden werden" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Import nicht möglich" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Import nicht möglich. Bitte Datei und Berechtigungscode überprüfen" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Zahlung kann nicht gesendet werden" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Die Transaktionshistorie konnte nicht aktualisiert werden" @@ -796,6 +818,7 @@ msgstr "Benutzerdefinierter Betrag" msgid "Custom Fee" msgstr "" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Ableitungstrategie" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "" @@ -906,10 +931,6 @@ msgstr "Pushbenachrichtigungen aktivieren" msgid "Enable the camera to get started." msgstr "Aktivieren Sie die Kamera um loszulegen." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Betrag eingeben" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,6 +940,10 @@ msgstr "Berechtigungscode eingeben" msgid "Enter Two Factor for your BitPay account" msgstr "Eingabe des Zwei-Faktor-Authentifizierungs-Codes für das BitPay Konto" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "" @@ -952,6 +977,8 @@ msgstr "Passwort eingeben" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Passwort eingeben" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Passwort eingeben" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Fehler" @@ -1021,6 +1050,7 @@ msgid "Error creating gift card" msgstr "" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "" @@ -1059,6 +1090,8 @@ msgstr "Tageslimit von $500 pro Benutzer überschritten" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Abgelaufen" @@ -1111,11 +1144,11 @@ msgstr "Familienurlaub" msgid "Fee" msgstr "Gebühr" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "" @@ -1141,6 +1174,10 @@ msgstr "" msgid "File/Text" msgstr "Datei/Text" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Zur Kontrolle" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Erhalten Sie Bargeld überall von einem Visa® kompatiblen msgid "Get news and updates from BitPay" msgstr "Erhalten Sie Neuigkeiten und Aktualisierungen von BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Los geht’s" @@ -1234,7 +1276,13 @@ msgstr "Starten Sie indem Sie ihr erstes hinzufügen." msgid "Getting fee levels..." msgstr "Entgelt-Level werden abgerufen..." +#: 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 "" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" msgstr "" @@ -1419,6 +1467,11 @@ msgstr "Wallet wird importiert..." msgid "In order to verify your wallet backup, please type your password." msgstr "Um die Sicherung der Wallet zu überprüfen, geben Sie bitte Ihr Passwort ein." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Ungültig" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "" @@ -1488,9 +1542,9 @@ msgstr "Ungültige Ableitungsstruktur" msgid "Invitation to share a {{appName}} Wallet" msgstr "Einladung um eine {{appName}} Wallet zu teilen" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" msgstr "" #: src/js/controllers/feedback/send.js:79 @@ -1584,6 +1638,10 @@ msgstr "Zeitsperre aktiv. Bitte mit neuem Zahlungsvorschlag warten" msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Zeitsperre aktiv. Bitte auf die Entfernung des Zahlungsvorschlags warten" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "" @@ -1620,10 +1678,24 @@ msgstr "Meh - ist in Ordnung" msgid "Memo" msgstr "Notiz" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Händlernachricht" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Angabe fehlt" @@ -1661,9 +1733,10 @@ msgstr "Hinweis: Um eine Brieftasche aus einer 3rd-Party-Software zu importieren msgid "Name" msgstr "Name" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" msgstr "" #: src/js/services/bwcError.js:47 @@ -1691,6 +1764,7 @@ msgid "No Wallet" msgstr "Keine Wallet" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "" @@ -1702,6 +1776,10 @@ msgstr "Keine Sicherung, keine Bitcoins." msgid "No contacts yet" msgstr "Noch keine Kontakte" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Keine Hardwareinformationen verfügbar." @@ -1723,7 +1801,7 @@ msgstr "Keine aktuellen Transaktionen" msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Noch keine Transaktionen" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Kein Wallet ausgewählt" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1828,6 +1907,10 @@ msgstr "Offizieller englischer Haftungsausschluss" msgid "Oh no!" msgstr "Oh nein!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Auf diesem Bildschirm sehen Sie alle Ihre Wallets, Konten und Guthaben." @@ -1970,6 +2053,11 @@ msgstr "Zahlungsdetails" msgid "Payment request" msgstr "Zahlungsanforderung" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Anstehende Vorschläge" @@ -2031,7 +2119,7 @@ msgstr "Adressen werden vorbereitet..." msgid "Preparing backup..." msgstr "Sicherung wird vorbereitet..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Zum Beenden erneut drücken" @@ -2069,7 +2157,7 @@ msgstr "Vorschlag gelöscht" msgid "Proposal Rejected" msgstr "Vorschlag abgelehnt" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Vorschläge" @@ -2077,6 +2165,10 @@ msgstr "Vorschläge" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Push-Benachrichtigungen" @@ -2160,7 +2252,7 @@ msgstr "Empfänger" msgid "Recovery phrase" msgstr "Wiederherstellungsphrase" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Wiederherstellen" @@ -2169,6 +2261,10 @@ msgstr "Wiederherstellen" msgid "Recreating Wallet..." msgstr "Wallet wiederherstellen..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Release-Informationen" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "" @@ -2301,6 +2398,10 @@ msgstr "Suchen Sie Ihre Währung" msgid "Security" msgstr "Sicherheit" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Eine Sicherungsdatei auswählen" @@ -2337,7 +2438,7 @@ msgstr "Geld senden" msgid "Send addresses by email" msgstr "Adressen per e-Mail versenden" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Per E-Mail versenden" @@ -2401,6 +2502,7 @@ msgid "Server response could not be verified" msgstr "Antwort des Servers konnte nicht verifiziert werden" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "" @@ -2500,6 +2602,7 @@ msgid "Slide" msgstr "Schieben" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" @@ -2520,7 +2623,7 @@ msgstr "Zahlungsvorschlag wurde nicht gefunden" msgid "Spending Password needed" msgstr "Berechtigungscode erforderlich" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2532,6 +2635,11 @@ msgstr "Starte mit dem Senden der Bitcoins" msgid "Startup Lock" msgstr "Sperre des Startups" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" msgstr "" @@ -2561,12 +2669,12 @@ msgstr "DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN" msgid "Take control of your money,
get started with bitcoin." msgstr "Übernehmen Sie die Kontrolle über Ihr Geld,
Legen Sie los mit Bitcoins." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Anzeigen durch tippen und halten" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Zum Wiederholen antippen" @@ -2730,7 +2838,7 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Die Bestätigung dieser Transaktion kann sehr lange dauern oder verworfen werden, da vom Absender nur geringe Gebühren eingestellt wurden" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Dieses Wallet ist nicht beim angegebenen Bitcore Wallet Service (BWS) registriert. Bitte aus den lokalen Informationen wiederherstellen" @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Gesamt" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Ingesamt gesperrter Gesamtsaldo" @@ -2810,6 +2919,7 @@ msgid "Transaction already broadcasted" msgstr "Transaktion wurde bereits übermittelt" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "" @@ -2827,7 +2937,7 @@ msgstr "Transaktion ist zu diesem Zeitpunkt nicht verfügbar" msgid "Transaction not found" msgstr "Transaktion konnte nicht gefunden werden" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "" @@ -2863,7 +2973,7 @@ msgstr "Unbestätigt" msgid "Unit" msgstr "Währungseinheit" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Nicht vesendete Transaktionen" @@ -2883,7 +2993,7 @@ msgstr "Aktualisierung verfügbar" msgid "Updating pending proposals. Please stand by" msgstr "Aktualisiere anstehende Vorschläge. Bitte warten" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Aktualisieren des Transaktionsverlaufs. Bitte warten." @@ -2937,7 +3047,11 @@ msgstr "Aktualisierungen anzeigen" msgid "View on blockchain" msgstr "Auf blockchain anzeigen" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "Warnung: Ableitung der Schlüssel funktioniert nicht auf diesem Gerät/Wallet. Aktionen können nicht mit dieser Wallet durchgeführt werden." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "Wallet exstiert bereits" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Wallet ist bereits in Copay" +msgid "Wallet already in {{appName}}" +msgstr "" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Wallet braucht Sicherung" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Wallet nicht gesichert" @@ -3118,7 +3232,7 @@ msgstr "Wallets & Integrationen" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3228,7 +3342,7 @@ msgstr "Sie können auch mit andere Währungen wie US-Dollar, Euro oder Pfund ha msgid "You control your bitcoin." msgstr "Sie kontrollieren Ihre Bitcoins." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "" @@ -3244,6 +3358,11 @@ msgstr "Sie erhalten E-Mail Benachrichtigungen über gesendete und empfangen Zah msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "" +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "Ihre Bitcoin-Wallet wurde gesichert!" @@ -3252,7 +3371,7 @@ msgstr "Ihre Bitcoin-Wallet wurde gesichert!" msgid "Your bitcoin wallet is ready!" msgstr "Ihre Bitcoin-Wallet ist fertig!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "" @@ -3293,8 +3412,8 @@ msgstr "Ihre Wallet wird verschlüsselt. Der Berechtigungscode kann nicht wieder #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Guthaben versteckt]" @@ -3336,6 +3455,10 @@ msgstr "zu senden" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "" + #: 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)." msgstr "{{appName}} hängt von Bitcore Wallet Service (BWS) ab bezüglich Blockchain Informationen, Vernetzung und Copayer Synchronisation. Die Standard Konfiguration verweist auf https://bws.bitpay.com (BitPays öffentlicher BWS Instanz)." @@ -3348,12 +3471,12 @@ msgstr "{{fee}} wird für Bitcoin-Netzwerkgebühren abgezogen werden." msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} Transaktionen werden heruntergeladen" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-von-{{wallet.n}}" diff --git a/i18n/po/es.po b/i18n/po/es.po index f7e3e8502..efc9369b5 100644 --- a/i18n/po/es.po +++ b/i18n/po/es.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Spanish\n" "Language: es\n" -"PO-Revision-Date: 2017-07-18 14:37-0400\n" +"PO-Revision-Date: 2017-08-17 08:49-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "- {{tx.feeRateStr}} de la transacción" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "Una calificación de 5 estrellas nos ayuda a que {{appName}} sea más utilizado, mientras más usuarios más son las razones para seguir comprometidos con esta aplicación!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "Solo canjeable en Mercado Livre (Brasil)" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -247,7 +252,7 @@ msgstr "¿Estás seguro de cancelar y borrar esta billetera?" msgid "Are you sure you want to delete this contact?" msgstr "¿Está seguro de que desea eliminar este contacto?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "¿Estás seguro de borrar esta billetera?" @@ -395,6 +400,7 @@ msgid "Browser unsupported" msgstr "Navegador no soportado" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" msgstr "Comprar" @@ -406,6 +412,11 @@ msgstr "Comprar & Vender Bitcoin" msgid "Buy Bitcoin" msgstr "Comprar Bitcoin" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "Comprar una Tarjeta de Regalo" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "Comprar desde" @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Calculando comisión" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Click" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "Terminadas" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,6 +539,7 @@ msgid "Confirm & Finish" msgstr "Confirmar y terminar" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Confirmar compra" @@ -606,11 +621,15 @@ msgstr "Copiar el texto como está en un lugar seguro (bloc de notas o correo el #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Copiar al portapapeles" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "No se pudo acceder a Gift Card Service" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "No se pudo acceder a la billetera desde el servidor. Por favor verificar:" @@ -644,6 +663,7 @@ msgid "Could not create the invoice" msgstr "No se pudo crear la factura" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "No se pudo crear la transacción" @@ -676,11 +696,12 @@ msgstr "No se pudo obtener comisión dinámica" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "No se pudo obtener comisión dinámica: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "No se pudieron obtener los niveles de comisión" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "No se pudo obtener la factura" @@ -689,13 +710,13 @@ msgstr "No se pudo obtener la factura" msgid "Could not get transactions" msgstr "No se pudo obtener las transacciones" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "No se pudo importar" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "No se pudo importar. Verifique el archivo y la contraseña para pagos" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "No se pudo enviar el pago" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "No se pudo enviar la transacción" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "No se pudo actualizar el historial de transacciones" @@ -796,6 +818,7 @@ msgstr "Importe Específico" msgid "Custom Fee" msgstr "Comisión personalizada" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Estrategia de derivación" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "Detalles" @@ -906,10 +931,6 @@ msgstr "Activar notificaciones push" msgid "Enable the camera to get started." msgstr "Activar la cámara empezar." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Ingrese el monto" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,6 +940,10 @@ msgstr "Ingrese contraseña para pagos" msgid "Enter Two Factor for your BitPay account" msgstr "Ingrese Autenticación de Dos Pasos para su cuenta de BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "Ingrese el monto" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "Ingrese comisión" @@ -952,6 +977,8 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Error" @@ -1021,6 +1050,7 @@ msgid "Error creating gift card" msgstr "Error al crear tarjeta de regalo" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "Error al crear la factura" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "Error al obtener información de SendMax" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "Error en el Protocolo de Pago" @@ -1059,6 +1090,8 @@ msgstr "Se excedió el limite de $500 por usuario" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Expirada" @@ -1111,11 +1144,11 @@ msgstr "Fondos para vacaciones en familia" msgid "Fee" msgstr "Comisión" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "Nivel de comisión" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "El nivel de comisión no esta definido" @@ -1141,6 +1174,10 @@ msgstr "Obteniendo información del pago" msgid "File/Text" msgstr "Archivo/Texto" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "Ajuste de filtro" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Para propósitos de auditoría" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Consigue efectivo local dondequiera que vayas, desde cualquier ATM Visa< msgid "Get news and updates from BitPay" msgstr "Recibir noticias y actualizaciones de BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "Comenzar" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Empezar" @@ -1234,7 +1276,13 @@ msgstr "Comienza agregando el primero." msgid "Getting fee levels..." msgstr "Obteniendo niveles de comisión..." +#: 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 "La Tarjeta de Regalo ya no esta disponible para usar" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" msgstr "Tarjeta de regalo" @@ -1419,6 +1467,11 @@ msgstr "Importando billetera..." msgid "In order to verify your wallet backup, please type your password." msgstr "Para verificar la copia de seguridad de la billetera, por favor escriba la contraseña." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "Inactivo" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Inválido" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "URL incorrecta" @@ -1488,10 +1542,10 @@ msgstr "Camino de derivación no válido" msgid "Invitation to share a {{appName}} Wallet" msgstr "Invitación para unirse a la billetera {{appName}} compartida" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "Cargo por factura" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "Factura vencida" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1584,6 +1638,10 @@ msgstr "Bloqueo temporal. Por favor espera para crear una nueva propuesta de gas msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Bloqueo temporal. Por favor espera para eliminar esta propuesta de gasto" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "Opciones de registro" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "Cerrar Sesión" @@ -1620,10 +1678,24 @@ msgstr "Buu - está bien" msgid "Memo" msgstr "Nota" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "Tarjetas de Regalo Mercado Livre Brasil" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "Mercadolibre Gift Card Service no esta disponible en este momento. Por favor, inténtelo más tarde." + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Mensaje del comerciante" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "Comisión de minado" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Faltan parámetros" @@ -1661,10 +1733,11 @@ msgstr "Nota: Para importar una billetera de un software de tercero debes ir a A msgid "Name" msgstr "Nombre" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" -msgstr "Comisión de la Red" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" +msgstr "Costo de la red" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1691,6 +1764,7 @@ msgid "No Wallet" msgstr "Sin billetera" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "No se ha definido la llave de acceso" @@ -1702,6 +1776,10 @@ msgstr "Sin copia de seguridad, no hay bitcoins." msgid "No contacts yet" msgstr "Aun no hay contactos" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "No hay entradas para este nivel de registro" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "No hay información disponible sobre el equipo." @@ -1723,7 +1801,7 @@ msgstr "No hay transacciones recientes" msgid "No signing proposal: No private key" msgstr "Propuesta sin firmar: No existe la clave privada" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Aun no hay transacciones" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "No se seleccionó una billetera" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1828,6 +1907,10 @@ msgstr "Renuncia oficial en inglés" msgid "Oh no!" msgstr "¡Oh no!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "Correcto" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "En esta pantalla puedes ver tus billeteras, cuentas y activos." @@ -1970,6 +2053,11 @@ msgstr "Detalles del pago" msgid "Payment request" msgstr "Solicitud de pago" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "Pendiente" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Propuestas de pago pendientes" @@ -2031,7 +2119,7 @@ msgstr "Preparando direcciones..." msgid "Preparing backup..." msgstr "Preparando copia de seguridad..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Presione nuevamente para salir" @@ -2069,7 +2157,7 @@ msgstr "Propuesta Eliminada" msgid "Proposal Rejected" msgstr "Propuesta Rechazada" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Propuestas" @@ -2077,6 +2165,10 @@ msgstr "Propuestas" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "El monto de la compra esta limitada a {{limitPerDay}} {{currency}} por día" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "El monto de la compra debe ser un valor entre 50 y 2000" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Notificaciones Push" @@ -2160,7 +2252,7 @@ msgstr "Destinatarios" msgid "Recovery phrase" msgstr "Frase de Recuperación" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Recrear" @@ -2169,6 +2261,10 @@ msgstr "Recrear" msgid "Recreating Wallet..." msgstr "Recreando billetera..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "Canjear ahora" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Información de la versión" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "Remover" @@ -2301,6 +2398,10 @@ msgstr "Busca tu moneda" msgid "Security" msgstr "Seguridad" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "Ver factura" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Seleccionar el archivo de copia de seguridad" @@ -2337,7 +2438,7 @@ msgstr "Enviar dinero" msgid "Send addresses by email" msgstr "Enviar las direcciones por email" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Enviar por correo electrónico" @@ -2401,6 +2502,7 @@ msgid "Server response could not be verified" msgstr "La respuesta del servidor no se ha podido verificar" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "Servicio no disponible" @@ -2500,6 +2602,7 @@ msgid "Slide" msgstr "Desliza" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Deslizar para comprar" @@ -2520,7 +2623,7 @@ msgstr "La propuesta de gasto no se ha encontrado" msgid "Spending Password needed" msgstr "Se necesita la contraseña para pagos" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "Gastar este balance requiere de significativas comisiones" @@ -2532,6 +2635,11 @@ msgstr "Empezar a enviar bitcoin" msgid "Startup Lock" msgstr "Bloqueo inicial" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "Aún pendiente" + #: www/views/topup.html:101 msgid "Success" msgstr "Listo" @@ -2561,12 +2669,12 @@ msgstr "ESTA ACCIÓN NO SE PUEDE REVERTIR" msgid "Take control of your money,
get started with bitcoin." msgstr "Toma control de tu dinero,
comienza a utilizar bitcoin." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Tocar y mantener para mostrar" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Toque para reintentar" @@ -2730,7 +2838,7 @@ msgstr "Este monto en la transacción es demasiado bajo comparado con las comisi msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Esta transacción podría tardar mucho tiempo en confirmar o podría caer debido a la baja comisión establecida por el remitente" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Esta billetera no está registrada en el servidor de Bitcore Wallet Service (BWS). Debes re-crearla con la información local disponible." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "Recargar {{amountStr}} a la tarjeta de débito ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Total" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Balance Total Bloqueado" @@ -2810,6 +2919,7 @@ msgid "Transaction already broadcasted" msgstr "La transacción ya fue enviada" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "La transacción no ha sido creada" @@ -2827,7 +2937,7 @@ msgstr "La transacción no esta disponible en este momento" msgid "Transaction not found" msgstr "Transacción no encontrada" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "Las transacciones sin comisión no están soportadas." @@ -2863,7 +2973,7 @@ msgstr "Sin confirmar" msgid "Unit" msgstr "Unidad" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Transacciones no enviadas" @@ -2883,7 +2993,7 @@ msgstr "Actualización Disponible" msgid "Updating pending proposals. Please stand by" msgstr "Actualizando propuestas de pago pendientes. Por favor, espera" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Actualizando el historial de transacciones. Por favor aguarda un momento." @@ -2937,7 +3047,11 @@ msgstr "Ver Actualización" msgid "View on blockchain" msgstr "Ver en blockchain" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "Ir a Mercadolivre.com.br →" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "ADVERTENCIA: Derivación de la clave no funciona en este dispositivo/billetera. Acciones no pueden realizarse en esta billetera." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "La billetera ya existe" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "La billetera ya existe en Copay" +msgid "Wallet already in {{appName}}" +msgstr "El monedero ya existe en {{appName}}" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "La billetera requiere copia de seguridad" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Billetera sin copia de seguridad" @@ -3118,7 +3232,7 @@ msgstr "Billeteras & Integraciones" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3228,7 +3342,7 @@ msgstr "Puedes cambiarlo por otras monedas como Dólares, Euros o Libras." msgid "You control your bitcoin." msgstr "Controlas tus bitcoins." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "No debería elegir una comisión superior a {{maxFeeRecommended}} satoshis/byte." @@ -3244,6 +3358,11 @@ msgstr "Recibirás notificaciones por correo electrónico acerca de pagos enviad msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "Tu Tarjeta BitPay ya esta lista. Agrega fondos para comenzar a utilizarla en negocios y cajeros automáticos de todo el mundo." +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "Tus Tarjetas de Regalo" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "¡Su billetera bitcoin está resguardada!" @@ -3252,7 +3371,7 @@ msgstr "¡Su billetera bitcoin está resguardada!" msgid "Your bitcoin wallet is ready!" msgstr "¡Su billetera bitcoin está lista!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "Tu comisión es inferior a la recomendada." @@ -3293,8 +3412,8 @@ msgstr "La clave de la billetera será cifrada. La contraseña para pagos no pue #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Balance Oculto]" @@ -3336,6 +3455,10 @@ msgstr "para enviar" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} en tarjeta de regalo de Amazon.com" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "{{amountStr}} en Tarjeta de Regalo Mercado Livre Brasil" + #: 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)." msgstr "{{appName}} depende de Bitcore Wallet Service (BWS) para obtener información sobre blockchain y sincronización del Copayer. La configuración por defecto apunta a https://bws.bitpay.com (instancia pública de BitPay)." @@ -3348,12 +3471,12 @@ msgstr "{{fee}} se descontará por comisión de la red bitcoin." msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} de la cantidad a enviar" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transacciones descargadas" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-de-{{wallet.n}}" diff --git a/i18n/po/fr.po b/i18n/po/fr.po index 4755666d6..a07b34bd8 100644 --- a/i18n/po/fr.po +++ b/i18n/po/fr.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: French\n" "Language: fr\n" -"PO-Revision-Date: 2017-07-18 14:36-0400\n" +"PO-Revision-Date: 2017-08-17 08:49-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "- {{tx.feeRateStr}} de la transaction" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "Une note de 5 étoiles permet à {{appName}} de gagner en popularité, et plus d'utilisateurs signifie davantage de ressources allouées à l'appli !" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "Seulement utilisable sur Mercado Livre (Brazil)" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -166,7 +171,7 @@ msgstr "Paramètres avancés" #: www/views/bitpayCard.html:62 msgid "All" -msgstr "Tout" +msgstr "Toutes" #: www/views/allAddresses.html:3 msgid "All Addresses" @@ -247,7 +252,7 @@ msgstr "Êtes-vous certain(e) de vouloir annuler et supprimer ce portefeuille ?" msgid "Are you sure you want to delete this contact?" msgstr "Souhaitez-vous réellement supprimer ce contact ?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Êtes-vous certain(e) de vouloir supprimer ce portefeuille ?" @@ -395,6 +400,7 @@ msgid "Browser unsupported" msgstr "Navigateur non supporté" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" msgstr "Acheter" @@ -406,6 +412,11 @@ msgstr "Acheter & vendre des bitcoins" msgid "Buy Bitcoin" msgstr "Acheter des bitcoins" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "Acheter une carte-cadeau" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "Acheter depuis" @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Calcul des frais" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Cliquez" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "Terminé" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,6 +539,7 @@ msgid "Confirm & Finish" msgstr "Confirmer & Terminer" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Confirmer l'achat" @@ -606,11 +621,15 @@ msgstr "Copiez ce texte présenté tel quel vers un endroit sûr (bloc-notes ou #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Copier dans le presse-papier" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "Impossible d'accéder au service de carte-cadeau" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Impossible d'accéder au portefeuille via le serveur. Veuillez vérifier :" @@ -644,6 +663,7 @@ msgid "Could not create the invoice" msgstr "Impossible de créer la facture" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "Impossible de créer la transaction" @@ -676,11 +696,12 @@ msgstr "Impossible d'obtenir les frais dynamiques" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Impossible d'obtenir les frais dynamiques pour ce choix : {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "Impossible d'obtenir les niveaux de frais" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "Impossible d'obtenir la facture" @@ -689,13 +710,13 @@ msgstr "Impossible d'obtenir la facture" msgid "Could not get transactions" msgstr "Impossible de récupérer les transactions" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Impossible d'importer" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Impossible d'importer. Vérifiez le fichier d'entrée et le code de dépenses" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Impossible d'envoyer le paiement" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "Impossible d'envoyer la transaction" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Impossible de mettre à jour l'historique des transactions" @@ -796,6 +818,7 @@ msgstr "Montant personnalisé" msgid "Custom Fee" msgstr "Frais personnalisés" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Stratégie de dérivation" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "Détails" @@ -906,10 +931,6 @@ msgstr "Autoriser les notifications" msgid "Enable the camera to get started." msgstr "Autorisez la caméra commencer." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Saisissez un montant" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,6 +940,10 @@ msgstr "Saisissez le code de dépenses" msgid "Enter Two Factor for your BitPay account" msgstr "Saisissez le code à deux facteurs pour votre compte BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "Saisissez un montant" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "Saisissez des frais personnalisés" @@ -952,6 +977,8 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Erreur" @@ -1021,6 +1050,7 @@ msgid "Error creating gift card" msgstr "Erreur de création de la carte-cadeau" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "Erreur de création de la facture" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "Erreur d’obtention de l'information SendMax" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "Erreur dans le protocole de paiement" @@ -1059,6 +1090,8 @@ msgstr "La limite quotidienne de 500$ par utilisateur a été dépassée" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Expiré" @@ -1066,7 +1099,7 @@ msgstr "Expiré" #: www/views/modals/paypro.html:54 #: www/views/modals/txp-details.html:127 msgid "Expires" -msgstr "Expire" +msgstr "Expire dans" #: www/views/preferencesAdvanced.html:21 msgid "Export Wallet" @@ -1111,11 +1144,11 @@ msgstr "Fonds pour les vacances familiales" msgid "Fee" msgstr "Frais" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "Niveau de frais" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "Le niveau de frais n'est pas défini" @@ -1141,6 +1174,10 @@ msgstr "Récupération des informations de paiement" msgid "File/Text" msgstr "Fichier / Texte" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "Paramètres de filtre" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "À des fins de vérification" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,11 +1259,15 @@ msgstr "Retirez de l'argent partout où vous allez, depuis n'importe quel distri msgid "Get news and updates from BitPay" msgstr "Obtenir les actualités et mises à jour de BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" msgid "Get started" msgstr "Commencer" +#: www/views/bitpayCard.html:49 +msgid "Get started" +msgstr "Commencez" + #: www/views/addressbook.html:20 msgid "Get started by adding your first one." msgstr "Commencez par ajouter votre premier contact." @@ -1234,7 +1276,13 @@ msgstr "Commencez par ajouter votre premier contact." msgid "Getting fee levels..." msgstr "Obtention des niveaux de frais..." +#: 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 "La carte-cadeau n'est plus utilisable" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" msgstr "Carte-cadeau" @@ -1419,6 +1467,11 @@ msgstr "Importation du portefeuille..." msgid "In order to verify your wallet backup, please type your password." msgstr "Afin de vérifier la sauvegarde de votre portefeuille, veuillez saisir votre mot de passe." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "Inactive" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Invalide" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "URL invalide" @@ -1488,10 +1542,10 @@ msgstr "Chemin de dérivation invalide" msgid "Invitation to share a {{appName}} Wallet" msgstr "Invitation pour partager un portefeuille {{appName}}" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "Frais de facturation" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "La facture a expiré" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1584,6 +1638,10 @@ msgstr "Locktime effectif. Veuillez patienter pour créer une nouvelle propositi msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Locktime effectif. Veuillez patienter pour supprimer cette proposition de dépense" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "Options de log" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "Se déconnecter" @@ -1620,10 +1678,24 @@ msgstr "Ça peut aller" msgid "Memo" msgstr "Note" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "Cartes-cadeaux Mercado Livre Brazil" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "Le service de carte-cadeau Mercadolibre n'est pas disponible en ce moment. Veuillez réessayer plus tard." + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Message marchand" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "Frais de mineur" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Paramètre manquant" @@ -1661,10 +1733,11 @@ msgstr "Remarque : Pour importer un portefeuille d’un autre logiciel que Copay msgid "Name" msgstr "Nom" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" -msgstr "Frais de réseau" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" +msgstr "Coût de réseau" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1691,6 +1764,7 @@ msgid "No Wallet" msgstr "Aucun portefeuille" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "Aucune clé d’accès définie" @@ -1702,6 +1776,10 @@ msgstr "Pas de sauvegarde, pas de bitcoin." msgid "No contacts yet" msgstr "Aucun contact" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "Aucune entrée pour ce niveau de log" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Aucune information matérielle disponible." @@ -1723,7 +1801,7 @@ msgstr "Aucune transaction récente" msgid "No signing proposal: No private key" msgstr "Aucune proposition de signature : aucune clé privée" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Aucune transaction" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Aucun portefeuille sélectionné" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1828,6 +1907,10 @@ msgstr "Clause de non-responsabilité anglaise officielle" msgid "Oh no!" msgstr "Oh non !" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "Ok" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Vous pouvez visualiser tous vos portefeuilles, comptes et actifs sur cet écran." @@ -1970,6 +2053,11 @@ msgstr "Détails du paiement" msgid "Payment request" msgstr "Demande de paiement" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "En attente" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Propositions en attente" @@ -2031,7 +2119,7 @@ msgstr "Préparation des adresses..." msgid "Preparing backup..." msgstr "Préparation de la sauvegarde..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Appuyez de nouveau pour quitter" @@ -2069,7 +2157,7 @@ msgstr "Proposition supprimée" msgid "Proposal Rejected" msgstr "Proposition rejetée" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Propositions" @@ -2077,6 +2165,10 @@ msgstr "Propositions" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "Le montant d'achat est limité à {{limitPerDay}} {{currency}} par jour" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "Le montant d'achat doit être une valeur comprise entre 50 et 2000" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Notifications" @@ -2160,7 +2252,7 @@ msgstr "Destinataire(s)" msgid "Recovery phrase" msgstr "Phrase de récupération" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Recréer" @@ -2169,6 +2261,10 @@ msgstr "Recréer" msgid "Recreating Wallet..." msgstr "Recréation du portefeuille..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "Utiliser maintenant" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Informations de version" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "Supprimer" @@ -2301,6 +2398,10 @@ msgstr "Rechercher votre monnaie" msgid "Security" msgstr "Sécurité " +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "Voir la facture" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Sélectionner un fichier de sauvegarde" @@ -2337,7 +2438,7 @@ msgstr "Envoyer de l'argent" msgid "Send addresses by email" msgstr "Envoyer les adresses par e-mail" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Envoyer par e-mail" @@ -2401,6 +2502,7 @@ msgid "Server response could not be verified" msgstr "La réponse du serveur n'a pas pu être vérifiée" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "Service non disponible" @@ -2500,6 +2602,7 @@ msgid "Slide" msgstr "Faites glisser" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Faites glisser pour acheter" @@ -2520,7 +2623,7 @@ msgstr "Propostion de dépense introuvable" msgid "Spending Password needed" msgstr "Code de dépenses requis" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "La dépense de ce solde demandera d'importants frais de réseau Bitcoin" @@ -2532,6 +2635,11 @@ msgstr "Commencez à envoyer des bitcoins" msgid "Startup Lock" msgstr "Verrou au démarrage de l'appli" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "En attente" + #: www/views/topup.html:101 msgid "Success" msgstr "Succès" @@ -2561,12 +2669,12 @@ msgstr "CETTE ACTION NE PEUT PAS ÊTRE ANNULÉE" msgid "Take control of your money,
get started with bitcoin." msgstr "Prenez le contrôle de votre argent,
commencez avec bitcoin." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Appuyez et maintenez pour afficher" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Tapotez pour réessayer" @@ -2730,7 +2838,7 @@ msgstr "Ce montant de transaction est trop faible par rapport aux actuels frais msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Cette transaction pourrait prendre beaucoup de temps pour être confirmée ou pourrait être abandonnée à cause du faible niveau de frais fixé par l'expéditeur" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Ce portefeuille n'est pas enregistré dans le Bitcore Wallet Service (BWS) donné. Vous pouvez le recréer depuis l'information locale." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "Rechargement de {{amountStr}} vers la carte de débit ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Total" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Solde verrouillé total" @@ -2810,6 +2919,7 @@ msgid "Transaction already broadcasted" msgstr "Transaction déjà diffusée" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "La transaction n'a pas été créée" @@ -2827,7 +2937,7 @@ msgstr "La transaction n'est pas disponible pour l'instant" msgid "Transaction not found" msgstr "Transaction introuvable" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "Les transactions sans frais ne sont pas supportées." @@ -2863,7 +2973,7 @@ msgstr "Non confirmée" msgid "Unit" msgstr "Unité" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Transactions non envoyées" @@ -2883,7 +2993,7 @@ msgstr "Mise à jour disponible" msgid "Updating pending proposals. Please stand by" msgstr "Mise à jour des propositions en attente. Veuillez patienter" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Mise à jour de l'historique des transactions. Veuillez patienter." @@ -2937,7 +3047,11 @@ msgstr "Voir la mise à jour" msgid "View on blockchain" msgstr "Voir sur la blockchain" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "Visiter mercadolivre.com.br →" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "ATTENTION : La dérivation de la clé ne fonctionne pas sur cet appareil / portefeuille. Impossible d’effectuer des actions sur ce portefeuille." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "Le portefeuille existe déjà" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Le portefeuille existe déjà dans Copay" +msgid "Wallet already in {{appName}}" +msgstr "Le portefeuille existe déjà dans {{appName}}" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Le portefeuille a besoin d'une sauvegarde" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Le portefeuille n'est pas sauvegardé" @@ -3118,7 +3232,7 @@ msgstr "Portefeuilles & intégrations" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3228,7 +3342,7 @@ msgstr "Vous pouvez l’échanger contre d'autres monnaies comme le dollar amér msgid "You control your bitcoin." msgstr "Vous contrôlez vos bitcoins." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "Vous ne devriez pas définir des frais plus élevés que {{maxFeeRecommended}} satoshis/byte." @@ -3244,6 +3358,11 @@ msgstr "Vous recevrez des notifications par e-mail concernant les paiements envo msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "Votre BitPay Card est prête. Ajoutez des fonds sur votre carte pour commencer à l'utiliser dans des magasins et distributeurs automatiques à travers le monde entier." +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "Vos cartes-cadeaux" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "Votre portefeuille bitcoin est sauvegardé !" @@ -3252,7 +3371,7 @@ msgstr "Votre portefeuille bitcoin est sauvegardé !" msgid "Your bitcoin wallet is ready!" msgstr "Votre portefeuille bitcoin est prêt !" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "Vos frais sont inférieurs au niveau recommandé." @@ -3293,8 +3412,8 @@ msgstr "La clé de votre portefeuille sera chiffrée. Le code de dépenses ne pe #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Solde masqué]" @@ -3336,6 +3455,10 @@ msgstr "pour envoyer" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} pour la carte-cadeau Amazon.com" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "{{amountStr}} pour la carte-cadeau 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)." msgstr "{{appName}} repose sur Bitcore Wallet Service (BWS) pour les informations de blockchain, le réseau et la synchronisation des Copayers. La configuration par défaut est orientée vers https://bws.bitpay.com (instance BWS publique de BitPay)." @@ -3348,12 +3471,12 @@ msgstr "{{fee}} seront déduits pour les frais de réseau Bitcoin." msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} du montant d'envoi" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transactions téléchargées" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-sur-{{wallet.n}}" diff --git a/i18n/po/it.po b/i18n/po/it.po index d711b0826..91ce64a04 100644 --- a/i18n/po/it.po +++ b/i18n/po/it.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Italian\n" "Language: it\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "- {{tx.feeRateStr}} della transazione" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "Darci un voto a 5 stelle ci aiuta a portare {{appName}} a più mani, e più utenti significa più risorse possono essere impegnate sull'app!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -119,7 +124,7 @@ msgstr "Aggiungere una password facoltativa per proteggere la frase di recupero" #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "Aggiungi come contatto" #: src/js/controllers/confirm.js:374 msgid "Add description" @@ -199,7 +204,7 @@ msgstr "Valuta alternativa" #: src/js/controllers/buyAmazon.js:97 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "Ia tabella dei guadagni di Amazon.com non è disponibile al momento. Per favore riprova piu tardi." #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -229,7 +234,7 @@ msgstr "Qualcuno con il tuo backup phrase potrebbe avere accesso o spendere i tu #: www/views/addresses.html:94 msgid "Approximate Bitcoin network fee to transfer wallet's balance (with normal priority)" -msgstr "" +msgstr "La tariffa approssimativa della rete Bitcoin per il trasferimento del saldo del portafoglio ( con priorità normale)" #: www/views/backupWarning.html:10 msgid "Are you being watched?" @@ -247,7 +252,7 @@ msgstr "Sei sicuro di voler eliminare questo portafoglio?" msgid "Are you sure you want to delete this contact?" msgstr "Sei sicuro di voler cancellare questo contatto?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Sei sicuro di voler eliminare questo portafoglio?" @@ -375,7 +380,7 @@ msgstr "Le transazioni Bitcoin comprendono un supplemento che viene raccolto dai #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" -msgstr "" +msgstr "Comprato {{amountUnitStr}}" #: www/views/modals/txp-details.html:36 msgid "Broadcast Payment" @@ -395,8 +400,9 @@ msgid "Browser unsupported" msgstr "Browser non supportato" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "Acquista" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" @@ -406,9 +412,14 @@ msgstr "Comprare & Vendere Bitcoin" msgid "Buy Bitcoin" msgstr "Acquista Bitcoin" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" -msgstr "" +msgstr "Acquista da" #: src/js/services/onGoingProcess.js:40 msgid "Buying Bitcoin..." @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Calcolo commissione" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Click" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "Completato" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,8 +539,9 @@ msgid "Confirm & Finish" msgstr "Confirm & concludi" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" -msgstr "" +msgstr "Conferma acquisto" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" @@ -606,18 +621,22 @@ msgstr "Copia questo testo cosí com'è in un posto sicuro (blocco note o email) #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Copia negli appunti" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Non può accedere al portafoglio sul server. Si prega di controllare:" #: src/js/controllers/buyAmazon.js:101 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "Impossibile accedere ad Amazon.com" #: src/js/services/profileService.js:493 msgid "Could not access wallet" @@ -641,9 +660,10 @@ msgstr "Impossibile creare un indirizzo" #: src/js/controllers/topup.js:91 msgid "Could not create the invoice" -msgstr "" +msgstr "Non è stato creata la fattura" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "Non è possibile creare la transazione" @@ -676,26 +696,27 @@ msgstr "Impossibile avere commissioni dinamiche" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Impossibile avere la commissione per il livello: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" -msgstr "" +msgstr "Livelli commissione non disponibile" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" -msgstr "" +msgstr "La fattura non puo essere creata" #: src/js/controllers/bitpayCard.js:66 msgid "Could not get transactions" msgstr "Non è possibile ottenere le transazioni" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Impossibile importare" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Impossibile importare. Controlla il file da importare e la password di spesa" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Impossibile inviare il pagamento" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" -msgstr "" +msgstr "Non è possibile inviare la transazione" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Impossibile aggiornare la cronologia delle transazioni" @@ -786,7 +808,7 @@ msgstr "Attuale commissione con questa politica" #: src/js/services/feeService.js:15 msgid "Custom" -msgstr "" +msgstr "Personalizzata" #: www/views/customAmount.html:9 msgid "Custom Amount" @@ -794,8 +816,9 @@ msgstr "Importo personalizzato" #: src/js/controllers/preferencesFee.js:84 msgid "Custom Fee" -msgstr "" +msgstr "Commissione personalizzata" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Strategia di derivazione" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "Dettagli" @@ -906,10 +931,6 @@ msgstr "Abilitare le notifiche push" msgid "Enable the camera to get started." msgstr "Abilita la fotocamera per iniziare." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Inserisci importo" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,9 +940,13 @@ msgstr "Inserisci Password di spesa" msgid "Enter Two Factor for your BitPay account" msgstr "Inserisci Due Fattori per il tuo account BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" -msgstr "" +msgstr "Inserisci commissione personalizzata" #: src/js/services/walletService.js:1030 msgid "Enter new spending password" @@ -952,6 +977,8 @@ msgstr "Inserisci la tua password" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Inserisci la tua password" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Inserisci la tua password" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Errore" @@ -1018,11 +1047,12 @@ msgstr "Errore di conferma" #: src/js/controllers/buyAmazon.js:178 msgid "Error creating gift card" -msgstr "" +msgstr "Errore nella creazione della Gift card" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" -msgstr "" +msgstr "Errore nella creazione della fattura" #: src/js/services/profileService.js:396 msgid "Error creating wallet" @@ -1030,9 +1060,10 @@ msgstr "Errore creazione portafoglio" #: src/js/controllers/confirm.js:266 msgid "Error getting SendMax information" -msgstr "" +msgstr "Errore nel recupero di informazione SendMax" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "Errore nel protocollo di pagamento" @@ -1059,6 +1090,8 @@ msgstr "Superato il limite giornaliero di $500 per utente" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Scaduta" @@ -1092,7 +1125,7 @@ msgstr "Chiave pubblica estesa" #: src/js/services/onGoingProcess.js:20 msgid "Extracting Wallet information..." -msgstr "" +msgstr "Recupero informazioni del portafoglio..." #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1111,13 +1144,13 @@ msgstr "Fondi vacanza di famiglia" msgid "Fee" msgstr "Tassa" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" -msgstr "" +msgstr "Livello della commissione" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" -msgstr "" +msgstr "Livello commissione non definito" #: www/views/confirm.html:81 #: www/views/modals/txp-details.html:101 @@ -1134,13 +1167,17 @@ msgstr "Recupero Account BitPay..." #: src/js/services/onGoingProcess.js:21 msgid "Fetching payment information" -msgstr "" +msgstr "Recupero informazione del pagamento" #: www/views/export.html:14 #: www/views/import.html:16 msgid "File/Text" msgstr "File/Testo" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Per finalità di controllo" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Ottieni contante locale ovunque tu vada, da qualsiasi ATM bancomat compa msgid "Get news and updates from BitPay" msgstr "Ricevi notizie e aggiornamenti da BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Inizia" @@ -1234,17 +1276,23 @@ msgstr "Inizia aggiungendo il tuo primo." msgid "Getting fee levels..." msgstr "Ottenendo i livelli di commissione..." -#: www/views/buyAmazon.html:43 -msgid "Gift card" +#: 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 "" +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift card" +msgstr "Carta regalo" + #: src/js/controllers/buyAmazon.js:203 msgid "Gift card expired" -msgstr "" +msgstr "Carta regalo scaduta" #: www/views/buyAmazon.html:111 msgid "Gift card generated and ready to use." -msgstr "" +msgstr "Carta regalo generata e pronta all'uso." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 @@ -1419,6 +1467,11 @@ msgstr "Importazione del Portafoglio..." msgid "In order to verify your wallet backup, please type your password." msgstr "Per verificare il backup del tuo portafoglio, inserire la password." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Invalido" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "URL non valido" @@ -1488,9 +1542,9 @@ msgstr "Percorso di derivazione non valido" msgid "Invitation to share a {{appName}} Wallet" msgstr "Invito a condividere un {{appName}} portafoglio" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" msgstr "" #: src/js/controllers/feedback/send.js:79 @@ -1584,13 +1638,17 @@ msgstr "Locktime in effetto. Si prega di attendere per creare una nuova proposta msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Locktime in effetto. Si prega di attendere per rimuovere questa proposta di pagamento" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "Esci" #: www/views/addresses.html:87 msgid "Low amount inputs" -msgstr "" +msgstr "Ingressi di quantità bassa" #: www/views/includes/walletHistory.html:27 msgid "Low fees" @@ -1620,10 +1678,24 @@ msgstr "Beh - è tutto ok" msgid "Memo" msgstr "Nota" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Messaggio dal commerciante" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Parametro mancante" @@ -1661,10 +1733,11 @@ msgstr "Nota: Per importare un portafoglio da un software di terze parti, si pre msgid "Name" msgstr "Nome" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" -msgstr "Commissione di rete" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" +msgstr "" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1691,8 +1764,9 @@ msgid "No Wallet" msgstr "Nessun Portafoglio" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" -msgstr "" +msgstr "Nessuna chiave di accesso definita" #: www/views/onboarding/backupRequest.html:5 msgid "No backup, no bitcoin." @@ -1702,6 +1776,10 @@ msgstr "Nessun backup, nessun bitcoin." msgid "No contacts yet" msgstr "Ancora nessun contatto" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Nessuna informazione del'hardware disponibile." @@ -1721,9 +1799,9 @@ msgstr "Nessuna transazione recente" #: src/js/controllers/buyAmazon.js:43 #: src/js/controllers/topup.js:46 msgid "No signing proposal: No private key" -msgstr "" +msgstr "Nessuna proposta di firma: nessuna chiave privata" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Ancora nessuna transazione" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Nessun portafoglio selezionato" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1793,7 +1872,7 @@ msgstr "Notificami se confermato" #: www/views/preferencesNotifications.html:24 msgid "Notify me when transactions are confirmed" -msgstr "" +msgstr "Avvisami quando le transazioni sono confermate" #: 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." @@ -1828,6 +1907,10 @@ msgstr "Dichiarazione di esclusione di responsabilità ufficiale in inglese" msgid "Oh no!" msgstr "Oh no!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "In questa schermata puoi vedere tutti i portafogli, gli account e i beni." @@ -1872,7 +1955,7 @@ msgstr "Apri Portafoglio" #: www/views/includes/incomingDataMenu.html:19 msgid "Open website" -msgstr "" +msgstr "Apri il sito" #: www/views/bitpayCardIntro.html:34 msgid "Order the BitPay Card" @@ -1970,6 +2053,11 @@ msgstr "Dettagli pagamento" msgid "Payment request" msgstr "Richiesta di pagamento" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Proposte in attesa" @@ -2017,7 +2105,7 @@ msgstr "Per favore, selezione il tuo file di backup" #: www/views/bitpayCard.html:81 msgid "Pre-Auth Holds" -msgstr "" +msgstr "Detenzione pre-autorizzata" #: www/views/tab-settings.html:40 msgid "Preferences" @@ -2031,7 +2119,7 @@ msgstr "Preparazione indirizzi..." msgid "Preparing backup..." msgstr "Preparando il backup..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Premi ancora per uscire" @@ -2041,7 +2129,7 @@ msgstr "Priorità" #: www/views/includes/incomingDataMenu.html:80 msgid "Private Key" -msgstr "" +msgstr "Chiave Privata" #: src/js/controllers/paperWallet.js:137 msgid "Private key encrypted. Enter password" @@ -2069,12 +2157,16 @@ msgstr "Proposta eliminata" msgid "Proposal Rejected" msgstr "Proposta respinta" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Proposte" #: src/js/controllers/buyAmazon.js:281 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" +msgstr "Importo di acquisto è limitato a {{limitPerDay}} di {{currency}} al giorno" + +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" msgstr "" #: www/views/onboarding/notifications.html:3 @@ -2117,7 +2209,7 @@ msgstr "Ricevi" #: www/views/customAmount.html:46 msgid "Receive in" -msgstr "" +msgstr "Ricevere in" #: www/views/includes/walletHistory.html:24 #: www/views/tx-details.html:18 @@ -2160,7 +2252,7 @@ msgstr "Destinatari" msgid "Recovery phrase" msgstr "Frase di Recupero" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Ricrea" @@ -2169,6 +2261,10 @@ msgstr "Ricrea" msgid "Recreating Wallet..." msgstr "Ricreando Portafoglio..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Informazioni sul rilascio" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "Rimuovere" @@ -2301,6 +2398,10 @@ msgstr "Cerca la tua valuta" msgid "Security" msgstr "Sicurezza" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Seleziona un file di backup" @@ -2337,7 +2438,7 @@ msgstr "Invia denaro" msgid "Send addresses by email" msgstr "Invia indirizzi via Email" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Invia via email" @@ -2352,7 +2453,7 @@ msgstr "Inviare l'importo massimo" #: www/views/includes/incomingDataMenu.html:46 msgid "Send payment to this address" -msgstr "" +msgstr "Inviare il pagamento a questo indirizzo" #: www/views/feedback/rateApp.html:17 msgid "Send us feedback instead" @@ -2401,8 +2502,9 @@ msgid "Server response could not be verified" msgstr "La risposta del server non può essere verificata" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" -msgstr "" +msgstr "Servizio non disponibile" #: www/views/includes/homeIntegrations.html:3 msgid "Services" @@ -2422,7 +2524,7 @@ msgstr "Imposta una password" #: src/js/controllers/preferencesFee.js:84 msgid "Set your own fee in satoshis/byte" -msgstr "" +msgstr "Impostare la propria commissione in satoshi/byte" #: www/views/tab-settings.html:3 #: www/views/tabs.html:19 @@ -2500,8 +2602,9 @@ msgid "Slide" msgstr "Trascina" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" -msgstr "" +msgstr "Trascina per acquistare" #: src/js/controllers/create.js:83 #: src/js/controllers/join.js:68 @@ -2520,9 +2623,9 @@ msgstr "Proposta di pagamento non trovata" msgid "Spending Password needed" msgstr "Necessaria password di spesa" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" -msgstr "" +msgstr "Per spendere questa quantità saranno necessarie significative commissioni di rete Bitcoin" #: www/views/tab-send.html:28 msgid "Start sending bitcoin" @@ -2532,9 +2635,14 @@ msgstr "Iniziare a inviare bitcoin" msgid "Startup Lock" msgstr "Blocco all'avvio" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" -msgstr "" +msgstr "Completato" #: src/js/services/feeService.js:14 msgid "Super Economy" @@ -2561,12 +2669,12 @@ msgstr "QUESTA AZIONE NON PUÒ ESSERE INVERTITA" msgid "Take control of your money,
get started with bitcoin." msgstr "Prendi il controllo del tuo denaro,
inizia con bitcoin." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Toccare e tenere premuto per mostrare" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Tocca per riprovare" @@ -2589,7 +2697,7 @@ msgstr "Testnet" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" -msgstr "" +msgstr "Testo" #: src/js/controllers/feedback/send.js:27 #: src/js/controllers/feedback/send.js:76 @@ -2724,13 +2832,13 @@ msgstr "Questa frase di recupero è stata creata con una password. Per recuperar #: www/views/tx-details.html:93 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 "Questo importo della transazione è troppo piccolo rispetto alle attuali commissioni della rete Bitcoin. Per spendere questi fondi sarà necessaria una commissione Bitcoin paragonabile ai fondi stessi." #: www/views/tx-details.html:89 msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Questa operazione potrebbe richiedere molto tempo per essere confermata o potrebbe essere abbandonata a causa delle commissioni basse impostate dal mittente" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Questo portafoglio non è registrato al Bitcore Wallet Service (BWS). Puoi ricrearlo dalle informazioni locali." @@ -2759,7 +2867,7 @@ msgstr "Per iniziare, è necessario che tu crei un portafoglio bitcoin e ottener #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" -msgstr "" +msgstr "Per {{reason}} è necessario innanzitutto aggiungere il tuo account BitPay - {{email}}" #: src/js/services/onGoingProcess.js:48 msgid "Top up in progress..." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "Ricaricare di {{amountStr}} sulla carta di debito ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Totale" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Totale Importo Bloccato" @@ -2785,7 +2894,7 @@ msgstr "Numero totale di copayer" #: www/views/addresses.html:81 msgid "Total wallet inputs" -msgstr "" +msgstr "Totale ingressi nel portafoglio" #: src/js/services/fingerprintService.js:63 #: src/js/services/fingerprintService.js:68 @@ -2798,7 +2907,7 @@ msgstr "Transazione" #: www/views/confirm.html:128 msgid "Transaction Created" -msgstr "" +msgstr "Transazione creata" #: www/views/preferencesAdvanced.html:29 #: www/views/preferencesHistory.html:3 @@ -2810,13 +2919,14 @@ msgid "Transaction already broadcasted" msgstr "Transazione già trasmessa" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" -msgstr "" +msgstr "La transazione non è stata creata" #: www/views/topup.html:104 msgid "Transaction initiated" -msgstr "" +msgstr "Transazione avviata" #: src/js/controllers/tx-details.js:102 msgid "Transaction not available at this time" @@ -2827,9 +2937,9 @@ msgstr "Transazione non disponibile in questo momento" msgid "Transaction not found" msgstr "Transazione non trovata" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." -msgstr "" +msgstr "Non sono supportate transazioni senza commissione." #: src/js/controllers/paperWallet.js:110 msgid "Transfer to" @@ -2863,7 +2973,7 @@ msgstr "Non confermato" msgid "Unit" msgstr "Unità" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Transazioni non inviate" @@ -2883,7 +2993,7 @@ msgstr "Aggiornamento Disponibile" msgid "Updating pending proposals. Please stand by" msgstr "Aggiornamento in attesa di proposte. Si prega di attendere" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Aggiornamento cronologia delle transazioni. Siete pregati di attendere." @@ -2937,7 +3047,11 @@ msgstr "Visualizza aggiornamenti" msgid "View on blockchain" msgstr "Mostra su blockchain" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "ATTENZIONE: La derivazione della chiave non funziona su questo dispositivo/portafoglio. Le operazioni non possono essere eseguite su questo portafoglio." @@ -2997,7 +3111,7 @@ msgstr "Informazioni sul portafoglio" #: www/views/addresses.html:76 msgid "Wallet Inputs" -msgstr "" +msgstr "Ingressi nel portafoglio" #: www/views/join.html:26 msgid "Wallet Invitation" @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "Il portafoglio esiste già" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Portafoglio già in Copay" +msgid "Wallet already in {{appName}}" +msgstr "" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Il portafoglio richiede password" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Portafoglio senza backup" @@ -3118,7 +3232,7 @@ msgstr "Portafogli & integrazioni" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3150,7 +3264,7 @@ msgstr "Siamo sempre alla ricerca di modi per migliorare {{appName}}. Come potre #: www/views/includes/incomingDataMenu.html:6 msgid "Website" -msgstr "" +msgstr "Sito Web" #: 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." @@ -3228,9 +3342,9 @@ msgstr "È possibile scambiarlo con altre valute come i dollari USA, Euro o Ster msgid "You control your bitcoin." msgstr "Controlli i tuoi bitcoin." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." -msgstr "" +msgstr "Non è necessario impostare una commissione maggiore di {{maxFeeRecommended}} satoshis/byte." #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." @@ -3244,6 +3358,11 @@ msgstr "Riceverai notifiche e-mail per i pagamenti inviati e ricevuti dai tuoi p msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "La carta BitPay è pronta. Aggiungi fondi alla tua carta per iniziare ad usarla presso i negozi e gli sportelli automatici in tutto il mondo." +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "Il tuo portafoglio bitcoin ha eseguito il backup!" @@ -3252,9 +3371,9 @@ msgstr "Il tuo portafoglio bitcoin ha eseguito il backup!" msgid "Your bitcoin wallet is ready!" msgstr "Il tuo portafoglio bitcoin è pronto!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." -msgstr "" +msgstr "La tua commissione è inferiore a quella consigliata." #: www/views/feedback/send.html:42 msgid "Your ideas, feedback, or comments" @@ -3275,11 +3394,11 @@ msgstr "La tua password" #: www/views/buyAmazon.html:102 msgid "Your purchase could not be completed" -msgstr "" +msgstr "Impossibile completare il tuo acquisto" #: www/views/buyAmazon.html:105 msgid "Your purchase was added to the list of pending" -msgstr "" +msgstr "Il tuo acquisto è stato aggiunto alla lista d'attesa" #: www/views/onboarding/backupRequest.html:10 msgid "Your wallet is never saved to cloud storage or standard device backups." @@ -3293,8 +3412,8 @@ msgstr "La chiave del tuo portafoglio verrà cifrata. La Password Per Spendere n #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Fondi Nascosti]" @@ -3334,6 +3453,10 @@ msgstr "per inviare" #: src/js/controllers/buyAmazon.js:238 msgid "{{amountStr}} for Amazon.com Gift Card" +msgstr "{{amountStr}} per una carta regalo Amazon.com" + +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" msgstr "" #: www/views/preferencesBwsUrl.html:21 @@ -3346,14 +3469,14 @@ msgstr "{{fee}} verranno detratti come commissione per il network." #: www/views/confirm.html:87 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" -msgstr "" +msgstr "{{tx.txp[wallet.id].feeRatePerStr}} dell'importo d'invio" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transazioni scaricate" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-di-{{wallet.n}}" diff --git a/i18n/po/ja.po b/i18n/po/ja.po index f446410d1..646dd2e33 100644 --- a/i18n/po/ja.po +++ b/i18n/po/ja.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Japanese\n" "Language: ja\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "- {{tx.feeRateStr}}のレート" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "5つ星の評価をいただけると、もっとたくさんの人にこのアプリを届けることができます。そして、ユーザーが増えればこのアプリの改善に当てられる人員やリソースも増えます。" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "Mercado Livre (ブラジル)のみで引き換え可能" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -119,7 +124,7 @@ msgstr "フレーズを守るために任意のパスワードをかけて下さ #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "連絡先に追加" #: src/js/controllers/confirm.js:374 msgid "Add description" @@ -127,7 +132,7 @@ msgstr "詳細を追加" #: www/views/topup.html:6 msgid "Add funds" -msgstr "" +msgstr "資金を追加" #: src/js/services/bitpayAccountService.js:78 msgid "Add this BitPay account ({{email}})?" @@ -199,7 +204,7 @@ msgstr "表示通貨" #: src/js/controllers/buyAmazon.js:97 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "Amazon.com は現在ご利用できません、また後でお試しください" #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -248,7 +253,7 @@ msgstr "本当にこのウォレットをキャンセルし、削除しても\n" msgid "Are you sure you want to delete this contact?" msgstr "本当にこの連絡先を削除しますか?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "本当にこのウォレットを削除しても\n" "宜しいですか?" @@ -377,7 +382,7 @@ msgstr "ビットコインの取引はネットワークの安全を守る「採 #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" -msgstr "" +msgstr "{{amountUnitStr}} 購入済み" #: www/views/modals/txp-details.html:36 msgid "Broadcast Payment" @@ -397,8 +402,9 @@ msgid "Browser unsupported" msgstr "ブラウザ未対応" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "購入" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" @@ -408,9 +414,14 @@ msgstr "ビットコインの購入&売却" msgid "Buy Bitcoin" msgstr "ビットコインを購入" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "ギフトカードの購入" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" -msgstr "" +msgstr "今すぐ購入" #: src/js/services/onGoingProcess.js:40 msgid "Buying Bitcoin..." @@ -421,6 +432,7 @@ msgid "Calculating fee" msgstr "手数料計算中..." #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -486,6 +498,7 @@ msgid "Click" msgstr "クリックして" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -511,6 +524,7 @@ msgid "Completed" msgstr "完了" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -527,8 +541,9 @@ msgid "Confirm & Finish" msgstr "承諾して終了する" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" -msgstr "" +msgstr "購入の確認" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" @@ -608,18 +623,22 @@ msgstr "このテキストを安全な場所に貼り付けて保管して下さ #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "クリップボードへコピー" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "ギフトカードサービスにアクセスできません" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "サーバーにてウォレットの確認ができませんでした。こちらをご確認下さい:" #: src/js/controllers/buyAmazon.js:101 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "Amazon.comにアクセスできませんでした。" #: src/js/services/profileService.js:493 msgid "Could not access wallet" @@ -646,6 +665,7 @@ msgid "Could not create the invoice" msgstr "請求を作成できませんでした" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "取引を作成できませんでした。" @@ -678,11 +698,12 @@ msgstr "手数料の金額を取得できませんでした。" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "次の手数料レートを取得できませんでした: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" -msgstr "" +msgstr "手数料のレベルを取得できませんでした。" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "請求の取得ができませんでした" @@ -691,13 +712,13 @@ msgstr "請求の取得ができませんでした" msgid "Could not get transactions" msgstr "取引を取得できませんでした。" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "インポートできませんでした。" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "インポートできませんでした。入力ファイルとパスワードが正しいかご確認下さい。" @@ -727,11 +748,12 @@ msgid "Could not send payment" msgstr "送金できませんでした。" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "取引が送れませんでした" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "取引履歴を更新できませんでした。" @@ -788,7 +810,7 @@ msgstr "この設定の現在の手数料レート" #: src/js/services/feeService.js:15 msgid "Custom" -msgstr "" +msgstr "カスタム設定" #: www/views/customAmount.html:9 msgid "Custom Amount" @@ -796,8 +818,9 @@ msgstr "金額を入力" #: src/js/controllers/preferencesFee.js:84 msgid "Custom Fee" -msgstr "" +msgstr "カスタム手数料" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -840,9 +863,11 @@ msgid "Derivation Strategy" msgstr "派生パス" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" -msgstr "" +msgstr "詳細" #: src/js/controllers/lockSetup.js:9 #: src/js/controllers/tab-settings.js:60 @@ -908,10 +933,6 @@ msgstr "プッシュ通知を有効化" msgid "Enable the camera to get started." msgstr "始めるためにカメラを有効にして下さい。" -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "金額を入力" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -921,9 +942,13 @@ msgstr "送金時のパスワード入力して下さい。" msgid "Enter Two Factor for your BitPay account" msgstr "BitPay アカウントの2段階認証コードを入力して下さい" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "金額を入力" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" -msgstr "" +msgstr "カスタム手数料を入力" #: src/js/services/walletService.js:1030 msgid "Enter new spending password" @@ -954,6 +979,8 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -995,13 +1022,13 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1011,6 +1038,8 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "エラー" @@ -1020,11 +1049,12 @@ msgstr "確認のエラー" #: src/js/controllers/buyAmazon.js:178 msgid "Error creating gift card" -msgstr "" +msgstr "ギフトカード作成時にエラー" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" -msgstr "" +msgstr "請求の作成中にエラー" #: src/js/services/profileService.js:396 msgid "Error creating wallet" @@ -1035,6 +1065,7 @@ msgid "Error getting SendMax information" msgstr "全額送金データ取得時にエラー" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "支払い検証のエラー" @@ -1061,6 +1092,8 @@ msgstr "ユーザーの1日当たりの制限 500 米ドルを超えました" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "期限切れ" @@ -1094,7 +1127,7 @@ msgstr "拡張公開鍵" #: src/js/services/onGoingProcess.js:20 msgid "Extracting Wallet information..." -msgstr "" +msgstr "ウォレット情報を抽出中…" #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1113,13 +1146,13 @@ msgstr "家族旅行貯金" msgid "Fee" msgstr "手数料" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" -msgstr "" +msgstr "手数料レベル" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" -msgstr "" +msgstr "手数料レベルが定義されていません" #: www/views/confirm.html:81 #: www/views/modals/txp-details.html:101 @@ -1136,13 +1169,17 @@ msgstr "BitPay アカウントを取得..." #: src/js/services/onGoingProcess.js:21 msgid "Fetching payment information" -msgstr "" +msgstr "支払い情報要求しています…" #: www/views/export.html:14 #: www/views/import.html:16 msgid "File/Text" msgstr "ファイル/テキスト" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "フィルタ設定" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1160,6 +1197,7 @@ msgstr "監査用機能" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1189,7 +1227,7 @@ msgstr "残高がありました:" #: www/views/topup.html:49 msgid "Funds to be added" -msgstr "" +msgstr "追加する資金" #: www/views/paperWallet.html:53 msgid "Funds transferred" @@ -1223,8 +1261,12 @@ msgstr "Visa®カード対応ATMから現地通貨をいつでも msgid "Get news and updates from BitPay" msgstr "BitPay からのニュースや更新情報を受け取ります。" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "始めよう" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "始めよう" @@ -1236,17 +1278,23 @@ msgstr "初めての連絡先を追加しましょう。" msgid "Getting fee levels..." msgstr "手数料レベルを取得しています…" +#: 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 "ギフトカードがもう使用できません。" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" -msgstr "" +msgstr "ギフトカード" #: src/js/controllers/buyAmazon.js:203 msgid "Gift card expired" -msgstr "" +msgstr "期限切れのギフトカード" #: www/views/buyAmazon.html:111 msgid "Gift card generated and ready to use." -msgstr "" +msgstr "ギフトカードが利用可能になりました。" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 @@ -1421,6 +1469,11 @@ msgstr "ウォレットインポート中…" msgid "In order to verify your wallet backup, please type your password." msgstr "ウォレットのバックアップを確認するためには、復元フレーズ用のパスワードをご入力下さい。" +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "非アクティブ" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1462,6 +1515,7 @@ msgid "Invalid" msgstr "無効" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "無効なURL" @@ -1490,10 +1544,10 @@ msgstr "無効な派生パス" msgid "Invitation to share a {{appName}} Wallet" msgstr "{{appName}} 共有ウォレットへの招待" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "請求有効期限切れ" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1586,6 +1640,10 @@ msgstr "Locktime待ち中です。新しい送金の提案が作成できるま msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Locktime待ち中です。この送金の提案が削除できるまであとしばらくお待ち下さい。" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "ログの設定" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "ログアウト" @@ -1622,10 +1680,24 @@ msgstr "まあまあです" msgid "Memo" msgstr "メモ" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "Mercado Livre Brazil ギフトカード" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "Mercadolibre Gift Card Service は現在ご利用できません、また後でお試しください" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "お店からのメッセージ:" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "不足しているパラメータ" @@ -1663,9 +1735,10 @@ msgstr "注意:他アプリのウォレットをインポートする場合、 msgid "Name" msgstr "名前" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" msgstr "" #: src/js/services/bwcError.js:47 @@ -1693,8 +1766,9 @@ msgid "No Wallet" msgstr "ウォレットが無いよ…(´・ω・`)" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" -msgstr "" +msgstr "アクセスキーが定義されていません" #: www/views/onboarding/backupRequest.html:5 msgid "No backup, no bitcoin." @@ -1704,6 +1778,10 @@ msgstr "バックアップは非常に重要です!" msgid "No contacts yet" msgstr "連絡先が無い" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "このレベルのログのエントリーがありません。" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "ハードウェア情報はありません" @@ -1725,7 +1803,7 @@ msgstr "最近の取引がありません" msgid "No signing proposal: No private key" msgstr "提案に署名できない:秘密鍵がありません" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "取引がありません" @@ -1738,10 +1816,11 @@ msgid "No wallet selected" msgstr "ウォレットが選択されていません" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" -msgstr "" +msgstr "利用可能なウォレットがありません" #: www/views/paperWallet.html:47 msgid "No wallets available to receive funds" @@ -1795,7 +1874,7 @@ msgstr "取引承認時に通知" #: www/views/preferencesNotifications.html:24 msgid "Notify me when transactions are confirmed" -msgstr "" +msgstr "取引が承認されたら通知する。" #: 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." @@ -1830,6 +1909,10 @@ msgstr "公式免責事項 (英語)" msgid "Oh no!" msgstr "おっと!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "OK" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "この画面では、全てのウォレット、アカウント、資産が閲覧できます。" @@ -1874,7 +1957,7 @@ msgstr "ウォレットを開く" #: www/views/includes/incomingDataMenu.html:19 msgid "Open website" -msgstr "" +msgstr "サイトを開く" #: www/views/bitpayCardIntro.html:34 msgid "Order the BitPay Card" @@ -1972,6 +2055,11 @@ msgstr "支払いの詳細" msgid "Payment request" msgstr "支払い請求" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "未決" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "保留中の提案" @@ -2033,7 +2121,7 @@ msgstr "アドレスを処理中…" msgid "Preparing backup..." msgstr "バックアップを準備中..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "もう一度押して終了" @@ -2043,7 +2131,7 @@ msgstr "優先" #: www/views/includes/incomingDataMenu.html:80 msgid "Private Key" -msgstr "" +msgstr "秘密鍵" #: src/js/controllers/paperWallet.js:137 msgid "Private key encrypted. Enter password" @@ -2071,13 +2159,17 @@ msgstr "提案が削除されました" msgid "Proposal Rejected" msgstr "提案が却下されました" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "提案" #: src/js/controllers/buyAmazon.js:281 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" -msgstr "" +msgstr "購入額が一日最大 {{limitPerDay}} {{currency}} になります。" + +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "購入金額は 50〜2000 の間の値でなければなりません" #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" @@ -2119,7 +2211,7 @@ msgstr "受取" #: www/views/customAmount.html:46 msgid "Receive in" -msgstr "" +msgstr "通貨" #: www/views/includes/walletHistory.html:24 #: www/views/tx-details.html:18 @@ -2162,7 +2254,7 @@ msgstr "受取人" msgid "Recovery phrase" msgstr "復元フレーズ" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "再登録" @@ -2171,6 +2263,10 @@ msgstr "再登録" msgid "Recreating Wallet..." msgstr "ウォレットを再作成中…" +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "今すぐ引き換えをする" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2185,6 +2281,7 @@ msgid "Release information" msgstr "リリース情報" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "削除" @@ -2303,6 +2400,10 @@ msgstr "通貨を検索" msgid "Security" msgstr "セキュリティ" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "請求書を表示" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "バックアップファイルを選択" @@ -2339,7 +2440,7 @@ msgstr "送金する" msgid "Send addresses by email" msgstr "ビットコインアドレスをメールにて共有" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "メールで送信" @@ -2354,7 +2455,7 @@ msgstr "全残高を送金" #: www/views/includes/incomingDataMenu.html:46 msgid "Send payment to this address" -msgstr "" +msgstr "このアドレスへ送信して下さい" #: www/views/feedback/rateApp.html:17 msgid "Send us feedback instead" @@ -2403,8 +2504,9 @@ msgid "Server response could not be verified" msgstr "サーバーからの返答を検証できませんでした" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" -msgstr "" +msgstr "このサービスは利用できません" #: www/views/includes/homeIntegrations.html:3 msgid "Services" @@ -2424,7 +2526,7 @@ msgstr "パスワードを設定" #: src/js/controllers/preferencesFee.js:84 msgid "Set your own fee in satoshis/byte" -msgstr "" +msgstr "カスタム手数料は satoshis/byte で指定" #: www/views/tab-settings.html:3 #: www/views/tabs.html:19 @@ -2504,8 +2606,9 @@ msgid "Slide" msgstr "スライドして" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" -msgstr "" +msgstr "スライドして購入" #: src/js/controllers/create.js:83 #: src/js/controllers/join.js:68 @@ -2524,7 +2627,7 @@ msgstr "送金の提案が見つかりませんでした。" msgid "Spending Password needed" msgstr "パスワードが必要" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "この入力の組み合わせを送金するために膨大なビットコインネットワーク手数料を必要とします" @@ -2536,6 +2639,11 @@ msgstr "ビットコインの送金を始めましょう" msgid "Startup Lock" msgstr "起動ロック" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "まだ未決" + #: www/views/topup.html:101 msgid "Success" msgstr "成功" @@ -2565,12 +2673,12 @@ msgstr "***注意*** このアクションを元に戻すことは msgid "Take control of your money,
get started with bitcoin." msgstr "お金のコントロールを取り戻そう、
ビットコインをはじめよう" -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "長押しで表示" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "タップしてやり直し" @@ -2593,7 +2701,7 @@ msgstr "テスト用ネットワーク" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" -msgstr "" +msgstr "テキスト" #: src/js/controllers/feedback/send.js:27 #: src/js/controllers/feedback/send.js:76 @@ -2736,7 +2844,7 @@ msgstr "この取引の金額はビットコインネットワーク手数料よ msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "この取引は承認されるまで非常に時間のかかる可能性があります。承認されずにネットワークに捨てられてしまう危険性もありますので、承認されるまでお待ちいただくことを強くおすすめします。" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "現在設定中のBitcore Wallet Service (BWS) サーバーにて、このウォレットの登録がありません。再登録を行うこともできます。" @@ -2776,12 +2884,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "デビットカード ({{cardLastNumber}}) に {{amountStr}} の入金を行う" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "合計" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "ロック中の残高" @@ -2804,7 +2913,7 @@ msgstr "取引" #: www/views/confirm.html:128 msgid "Transaction Created" -msgstr "" +msgstr "取引情報を作成しました" #: www/views/preferencesAdvanced.html:29 #: www/views/preferencesHistory.html:3 @@ -2816,9 +2925,10 @@ msgid "Transaction already broadcasted" msgstr "取引は既に配信されました。" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" -msgstr "" +msgstr "取引が未作成です" #: www/views/topup.html:104 msgid "Transaction initiated" @@ -2833,9 +2943,9 @@ msgstr "現在この取引はご覧いただけません。" msgid "Transaction not found" msgstr "取引は見つかりません" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." -msgstr "" +msgstr "手数料なしの取引はサポートされていません。" #: src/js/controllers/paperWallet.js:110 msgid "Transfer to" @@ -2869,7 +2979,7 @@ msgstr "未承認" msgid "Unit" msgstr "単位" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "未送信取引" @@ -2889,7 +2999,7 @@ msgstr "利用可能なアップデートあり" msgid "Updating pending proposals. Please stand by" msgstr "協議中の送金提案を更新します。しばらくお待ちください。" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "取引履歴を更新します。しばらくお待ちください。" @@ -2943,7 +3053,11 @@ msgstr "更新情報を表示" msgid "View on blockchain" msgstr "ブロックチェーンで詳細を閲覧" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "mercadolivre.com.br を訪れる →" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "注意:このデバイスでは鍵の派生がちゃんと動いておりません。このウォレットは正常に動作しません。" @@ -3056,8 +3170,8 @@ msgid "Wallet already exists" msgstr "既存のウォレットです" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Copay内の既存のウォレットです" +msgid "Wallet already in {{appName}}" +msgstr "{{appName}}内の既存のウォレットです" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3089,7 +3203,7 @@ msgid "Wallet needs backup" msgstr "ウォレットバックアップが必要" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "ウォレットがバックアップされていません" @@ -3124,7 +3238,7 @@ msgstr "ウォレットと連動" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3156,7 +3270,7 @@ msgstr "常に{{appName}}を改善したく思っております。どのよう #: www/views/includes/incomingDataMenu.html:6 msgid "Website" -msgstr "" +msgstr "ウェブサイト" #: 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." @@ -3234,9 +3348,9 @@ msgstr "米ドル、ユーロ、ポンドなど他の通貨との取引ができ msgid "You control your bitcoin." msgstr "ビットコインの自己管理" -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." -msgstr "" +msgstr "{{maxFeeRecommended}} satoshis/byte より高い手数料を設定しない方が良いです。" #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." @@ -3250,6 +3364,11 @@ msgstr "メールアドレスにウォレットへの入金や出金に関する msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "BitPayカードの準備が整いました。入金して全世界のお店やATMでご利用下さい。" +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "ギフトカード" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "ビットコインウォレットがバックアップされました!" @@ -3258,9 +3377,9 @@ msgstr "ビットコインウォレットがバックアップされました!" msgid "Your bitcoin wallet is ready!" msgstr "ビットコインウォレットが完成しました!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." -msgstr "" +msgstr "手数料設定が推奨値より低くなっております。" #: www/views/feedback/send.html:42 msgid "Your ideas, feedback, or comments" @@ -3281,11 +3400,11 @@ msgstr "パスワード" #: www/views/buyAmazon.html:102 msgid "Your purchase could not be completed" -msgstr "" +msgstr "購入が完了されませんでした。" #: www/views/buyAmazon.html:105 msgid "Your purchase was added to the list of pending" -msgstr "" +msgstr "ご購入の品物が保留中のリストに追加されました。" #: www/views/onboarding/backupRequest.html:10 msgid "Your wallet is never saved to cloud storage or standard device backups." @@ -3299,8 +3418,8 @@ msgstr "ウォレットの鍵が暗号化されます。Copayでは送金時の #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[残高非表示中]" @@ -3340,7 +3459,11 @@ msgstr "送金する" #: src/js/controllers/buyAmazon.js:238 msgid "{{amountStr}} for Amazon.com Gift Card" -msgstr "" +msgstr "{{amountStr}} を Amazon.com ギフトカードに" + +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "{{amountStr}} を 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)." @@ -3354,12 +3477,12 @@ msgstr "{{fee}} のビットコインネットワーク手数料が差し引か msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "送金額に対する {{tx.txp[wallet.id].feeRatePerStr}}" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} 個の取引ダウンロード済み" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/pl.po b/i18n/po/pl.po index 8e8b645af..d7b05958a 100644 --- a/i18n/po/pl.po +++ b/i18n/po/pl.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Polish\n" "Language: pl\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -28,16 +28,21 @@ msgstr "* Wniosek wypłaty może być usunięty jeśli: 1) Po utworzeniu nie zat #: www/views/tx-details.html:84 msgid "- {{btx.feeRateStr}} of the transaction" -msgstr "" +msgstr "{{btx.feeRateStr}} transakcji" #: www/views/modals/txp-details.html:104 msgid "- {{tx.feeRateStr}} of the transaction" -msgstr "" +msgstr "{{tx.feeRateStr}} transakcji" #: www/views/feedback/rateApp.html:7 msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "5-gwiazdkowa ocena pozwoli na wzrost popularności {{appName}}, a większa ilość użytkowników da nam do dyspozycji więcej środków na rozwój aplikacji!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -119,7 +124,7 @@ msgstr "Dodaj opcjonalnie hasło w celu zabezpieczenia kluczowej frazy" #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "Dodaj jako kontakt" #: src/js/controllers/confirm.js:374 msgid "Add description" @@ -199,7 +204,7 @@ msgstr "Alternatywna waluta" #: src/js/controllers/buyAmazon.js:97 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "Amazon.com jest aktualnie niedostępny. Spróbuj później." #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -245,9 +250,9 @@ msgstr "Czy na pewno chcesz usunąć ten portfel?" #: src/js/controllers/addressbookView.js:24 msgid "Are you sure you want to delete this contact?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć ten kontakt?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Czy na pewno chcesz usunąć ten portfel?" @@ -265,7 +270,7 @@ msgstr "Czy na pewno chcesz pominąć?" #: 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 "Czy na pewno chcesz się wylogować z konta BitPay Card?" #: src/js/controllers/preferencesBitpayCard.js:7 #: src/js/controllers/preferencesBitpayServices.js:20 @@ -375,7 +380,7 @@ msgstr "Transakcje Bitcoin obejmują prowizję pobieraną przez górników w sie #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" -msgstr "" +msgstr "Kupiono {{amountUnitStr}}" #: www/views/modals/txp-details.html:36 msgid "Broadcast Payment" @@ -395,8 +400,9 @@ msgid "Browser unsupported" msgstr "Przeglądarka nieobsługiwana" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "Kup" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" @@ -406,9 +412,14 @@ msgstr "Kup & sprzedaj bitcoiny" msgid "Buy Bitcoin" msgstr "Kup bitcoiny" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" -msgstr "" +msgstr "Kup od" #: src/js/services/onGoingProcess.js:40 msgid "Buying Bitcoin..." @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Obliczanie prowizji" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Kliknij" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "Zakończono" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,8 +539,9 @@ msgid "Confirm & Finish" msgstr "Potwierdź & zakończenie" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" -msgstr "" +msgstr "Potwierdź zakup" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" @@ -606,18 +621,22 @@ msgstr "Skopiuj ten tekst w bezpiecznym miejscu (notatnik lub e-mail)" #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Skopiuj do schowka" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Nie można uzyskać dostępu do portfela na serwerze. Proszę sprawdzić:" #: src/js/controllers/buyAmazon.js:101 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "Nie może uzyskać dostępu do Amazon.com" #: src/js/services/profileService.js:493 msgid "Could not access wallet" @@ -641,9 +660,10 @@ msgstr "Nie można utworzyć adresu" #: src/js/controllers/topup.js:91 msgid "Could not create the invoice" -msgstr "" +msgstr "Nie można utworzyć faktury" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "Nie można utworzyć transakcji" @@ -676,26 +696,27 @@ msgstr "Nie można pobrać dynamicznej prowizji" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Nie można uzyskać dynamicznej prowizji dla poziomu: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" -msgstr "" +msgstr "Nie można uzyskać poziomów prowizji" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" -msgstr "" +msgstr "Nie można pobrać faktury" #: src/js/controllers/bitpayCard.js:66 msgid "Could not get transactions" msgstr "Nie można pobrać transakcji" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Nie można zaimportować" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Nie można zaimportować. Sprawdź plik wejściowy i hasło" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Wypłata nie może zostać wysłana" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "Nie można wysłać transakcji" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Nie można zaktualizować historii transakcji" @@ -786,7 +808,7 @@ msgstr "Aktualna stawka prowizji dla tej polityki" #: src/js/services/feeService.js:15 msgid "Custom" -msgstr "" +msgstr "Niestandardowy" #: www/views/customAmount.html:9 msgid "Custom Amount" @@ -794,8 +816,9 @@ msgstr "Kwota własna" #: src/js/controllers/preferencesFee.js:84 msgid "Custom Fee" -msgstr "" +msgstr "Niestandardowa Prowizja" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Strategia derywacji" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "Szczegóły" @@ -906,10 +931,6 @@ msgstr "Włącz powiadomienia" msgid "Enable the camera to get started." msgstr "Włącz kamerę aby rozpocząć." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Podaj ilość" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,9 +940,13 @@ msgstr "Wprowadź hasło wypłaty" msgid "Enter Two Factor for your BitPay account" msgstr "Wprowadź podwójne uwierzytelnienie swojego konta BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" -msgstr "" +msgstr "Wprowadź niestandardową kwotę prowizji" #: src/js/services/walletService.js:1030 msgid "Enter new spending password" @@ -952,6 +977,8 @@ msgstr "Wprowadź hasło" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Wprowadź hasło" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Wprowadź hasło" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Błąd" @@ -1018,9 +1047,10 @@ msgstr "Błąd w potwierdzeniu" #: src/js/controllers/buyAmazon.js:178 msgid "Error creating gift card" -msgstr "" +msgstr "Błąd przy tworzeniu karty upominkowej" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "Wystąpił błąd podczas uzyskiwania informacji SendMax" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "Błąd w protokole płatności" @@ -1059,6 +1090,8 @@ msgstr "Dzienny limit 500$ na użytkownika został przekroczony" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Wygasł" @@ -1111,13 +1144,13 @@ msgstr "Środki na rodzinne wakacje" msgid "Fee" msgstr "Prowizja" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" -msgstr "" +msgstr "Poziom opłaty" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" -msgstr "" +msgstr "Poziom opłaty nie jest zdefiniowany" #: www/views/confirm.html:81 #: www/views/modals/txp-details.html:101 @@ -1134,13 +1167,17 @@ msgstr "Odzyskiwanie konta BitPay..." #: src/js/services/onGoingProcess.js:21 msgid "Fetching payment information" -msgstr "" +msgstr "Pobieranie informacji o płatności" #: www/views/export.html:14 #: www/views/import.html:16 msgid "File/Text" msgstr "Plik/Tekst" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Do celów audytu" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Wypłać pieniądze gdziekolwiek jesteś, z dowolnego bankomatu honoruj msgid "Get news and updates from BitPay" msgstr "Otrzymywanie wiadomości i aktualizacji z BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Zacznij" @@ -1234,17 +1276,23 @@ msgstr "Zacznij dodając swój pierwszy kontakt." msgid "Getting fee levels..." msgstr "Uzyskiwanie informacji o prowizji..." -#: www/views/buyAmazon.html:43 -msgid "Gift card" +#: 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 "" +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift card" +msgstr "Karta podarunkowa" + #: src/js/controllers/buyAmazon.js:203 msgid "Gift card expired" -msgstr "" +msgstr "Karta upominkowa wygasła" #: www/views/buyAmazon.html:111 msgid "Gift card generated and ready to use." -msgstr "" +msgstr "Karta podarunkowa wygenerowana i gotowa do użycia." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 @@ -1419,6 +1467,11 @@ msgstr "Importowanie portfela..." msgid "In order to verify your wallet backup, please type your password." msgstr "W celu weryfikacji kopii zapasowej portfela wpisz swoje hasło." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Nieprawidłowy" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "Nieprawidłowy adres URL" @@ -1488,9 +1542,9 @@ msgstr "Nieprawidłowa ścieżka derywacji" msgid "Invitation to share a {{appName}} Wallet" msgstr "Zaproszenie do współdzielenia portfela {{appName}}" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" msgstr "" #: src/js/controllers/feedback/send.js:79 @@ -1584,6 +1638,10 @@ msgstr "Skuteczna blokada. Proszę czekać, aby utworzyć nowy wniosek wypłaty" msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Skuteczna blokada. Proszę czekać, aby usunąć wniosek wypłaty" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "Wyloguj się" @@ -1620,10 +1678,24 @@ msgstr "Spoko - może być" msgid "Memo" msgstr "Notatka" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Wiadomość handlowa" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Brak parametru" @@ -1661,10 +1733,11 @@ msgstr "Uwaga: Aby zaimportować portfel z oprogramowania innego niż Copay, prz msgid "Name" msgstr "Nazwa" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" -msgstr "Prowizja za użytkowanie sieci" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" +msgstr "" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1691,8 +1764,9 @@ msgid "No Wallet" msgstr "Brak portfela" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" -msgstr "" +msgstr "Klucz dostępu nie jest zdefiniowany" #: www/views/onboarding/backupRequest.html:5 msgid "No backup, no bitcoin." @@ -1702,6 +1776,10 @@ msgstr "Nie ma kopii zapasowej - nie ma bitcoinów." msgid "No contacts yet" msgstr "Brak kontaktów" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Brak dostępnych informacji o sprzęcie." @@ -1723,7 +1801,7 @@ msgstr "Brak wcześniejszych transakcji" msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Brak transakcji" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Nie wybrano portfela" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1793,7 +1872,7 @@ msgstr "Powiadom mnie, jeśli potwierdzono" #: www/views/preferencesNotifications.html:24 msgid "Notify me when transactions are confirmed" -msgstr "" +msgstr "Powiadom mnie, gdy transakcja zostanie potwierdzona" #: 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." @@ -1828,6 +1907,10 @@ msgstr "Oficjalna rezygnacja w języku angielskim" msgid "Oh no!" msgstr "O nie!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Na tym ekranie można zobaczyć wszystkie swoje portfele, konta i środki." @@ -1872,7 +1955,7 @@ msgstr "Otwórz portfel" #: www/views/includes/incomingDataMenu.html:19 msgid "Open website" -msgstr "" +msgstr "Otwórz stronę" #: www/views/bitpayCardIntro.html:34 msgid "Order the BitPay Card" @@ -1970,6 +2053,11 @@ msgstr "Szczegóły wypłaty" msgid "Payment request" msgstr "Wniosek o płatność" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Rozpatrywane płatności" @@ -2031,7 +2119,7 @@ msgstr "Przygotowywanie adresów..." msgid "Preparing backup..." msgstr "Przygotowywanie kopii zapasowej..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Naciśnij ponownie, aby wyjść" @@ -2041,7 +2129,7 @@ msgstr "Priorytetowa" #: www/views/includes/incomingDataMenu.html:80 msgid "Private Key" -msgstr "" +msgstr "Klucz prywatny" #: src/js/controllers/paperWallet.js:137 msgid "Private key encrypted. Enter password" @@ -2069,7 +2157,7 @@ msgstr "Płatność usunięta" msgid "Proposal Rejected" msgstr "Płatność odrzucona" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Proponowane płatności" @@ -2077,6 +2165,10 @@ msgstr "Proponowane płatności" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Wyskakujące powiadomienia" @@ -2160,7 +2252,7 @@ msgstr "Odbiorcy" msgid "Recovery phrase" msgstr "Kluczowa fraza" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Przywróć" @@ -2169,6 +2261,10 @@ msgstr "Przywróć" msgid "Recreating Wallet..." msgstr "Przywracanie portfela..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Informacje o wersji" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "Usuń" @@ -2301,6 +2398,10 @@ msgstr "Znajdź swoją walutę" msgid "Security" msgstr "Bezpieczeństwo" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Wybierz plik kopii zapasowej" @@ -2337,7 +2438,7 @@ msgstr "Wyślij pieniądze" msgid "Send addresses by email" msgstr "Wyślij adresy przez e-mail" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Wyślij przez e-mail" @@ -2352,7 +2453,7 @@ msgstr "Wyślij całą kwotę" #: www/views/includes/incomingDataMenu.html:46 msgid "Send payment to this address" -msgstr "" +msgstr "Wyślij płatność na ten adres" #: www/views/feedback/rateApp.html:17 msgid "Send us feedback instead" @@ -2401,8 +2502,9 @@ msgid "Server response could not be verified" msgstr "Odpowiedź serwera nie mogła zostać zweryfikowana" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" -msgstr "" +msgstr "Usługa nie jest dostępna" #: www/views/includes/homeIntegrations.html:3 msgid "Services" @@ -2422,7 +2524,7 @@ msgstr "Ustal hasło" #: src/js/controllers/preferencesFee.js:84 msgid "Set your own fee in satoshis/byte" -msgstr "" +msgstr "Ustaw własną opłatę w satoshis/bajt" #: www/views/tab-settings.html:3 #: www/views/tabs.html:19 @@ -2500,8 +2602,9 @@ msgid "Slide" msgstr "Przesuń" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" -msgstr "" +msgstr "Przesuń, aby kupić" #: src/js/controllers/create.js:83 #: src/js/controllers/join.js:68 @@ -2520,7 +2623,7 @@ msgstr "Wniosek wypłaty nie został znaleziony" msgid "Spending Password needed" msgstr "Wymagane hasło wypłat" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2532,6 +2635,11 @@ msgstr "Zacznij wysyłać bitcoiny" msgid "Startup Lock" msgstr "Blokada uruchamiania" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" msgstr "Udało się" @@ -2561,12 +2669,12 @@ msgstr "TEJ CZYNNOŚCI NIE MOŻNA COFNĄĆ" msgid "Take control of your money,
get started with bitcoin." msgstr "Przejmij kontrolę nad swoimi pieniędzmi,
zacznij korzystać z bitcoinów." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Dotknij i przytrzymaj, aby pokazać" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Ponów próbę" @@ -2589,7 +2697,7 @@ msgstr "Testnet" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" -msgstr "" +msgstr "Tekst" #: src/js/controllers/feedback/send.js:27 #: src/js/controllers/feedback/send.js:76 @@ -2730,7 +2838,7 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Potwierdzenie transakcja może trwać długo lub zostać przerwane z powodu niskiej prowizji ustalonej przez nadawcę" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Ten portfel nie jest zarejestrowany na Bitcore Wallet Service (BWS). Możesz go odtworzyć z lokalnego nośnika." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Łącznie" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Łącznie zablokowane środki" @@ -2798,7 +2907,7 @@ msgstr "Transakcja" #: www/views/confirm.html:128 msgid "Transaction Created" -msgstr "" +msgstr "Transakcja utworzona" #: www/views/preferencesAdvanced.html:29 #: www/views/preferencesHistory.html:3 @@ -2810,13 +2919,14 @@ msgid "Transaction already broadcasted" msgstr "Transakcja została już wysłana" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "" #: www/views/topup.html:104 msgid "Transaction initiated" -msgstr "" +msgstr "Transakcja zainicjowana" #: src/js/controllers/tx-details.js:102 msgid "Transaction not available at this time" @@ -2827,9 +2937,9 @@ msgstr "Transakcja w tej chwili niedostępna" msgid "Transaction not found" msgstr "Nie znaleziono transakcji" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." -msgstr "" +msgstr "Transakcje bez opłaty nie są obsługiwane." #: src/js/controllers/paperWallet.js:110 msgid "Transfer to" @@ -2863,7 +2973,7 @@ msgstr "Niepotwierdzone" msgid "Unit" msgstr "Jednostka" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Niewysłane transakcje" @@ -2883,7 +2993,7 @@ msgstr "Dostępna aktualizacja" msgid "Updating pending proposals. Please stand by" msgstr "Aktualizacja wniosków płatności. Proszę czekać" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Aktualizowanie historii transakcji. Proszę czekać." @@ -2937,7 +3047,11 @@ msgstr "Zobacz aktualizacje" msgid "View on blockchain" msgstr "Zobacz na blockchainie" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "Ostrzeżenie: klucz derywacji nie działa na tym urządzeniu/portfelu. Działania dla tego portfela nie można wykonać." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "Portfel już istnieje" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Portfel jest już w Copay" +msgid "Wallet already in {{appName}}" +msgstr "" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Portfel wymaga kopii zapasowej" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Portfel nie ma kopii zapasowej" @@ -3118,7 +3232,7 @@ msgstr "Portfele i integracja" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3150,7 +3264,7 @@ msgstr "Zawsze szukamy sposobów na ulepszenie {{appName}}. Co Twoim zdaniem mo #: www/views/includes/incomingDataMenu.html:6 msgid "Website" -msgstr "" +msgstr "Strona" #: 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." @@ -3228,9 +3342,9 @@ msgstr "Możesz je wymienić na inne waluty, takie jak dolary amerykańskie, eur msgid "You control your bitcoin." msgstr "Ty kontrolujesz swoje bitcoiny." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." -msgstr "" +msgstr "Nie należy ustawiać opłatę wyższą niż {{maxFeeRecommended}} satoshis/bajt." #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." @@ -3242,6 +3356,11 @@ msgstr "Będziesz otrzymywać powiadomienia e-mail o płatności wysyłanych i o #: 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 "Twoja karta BitPay jest gotowa. Zasil kartę, aby zacząć ją używać w sklepach i bankomatach na całym świecie." + +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" msgstr "" #: www/views/includes/confirmBackupPopup.html:6 @@ -3252,9 +3371,9 @@ msgstr "Kopia zapasowa portfela została utworzona!" msgid "Your bitcoin wallet is ready!" msgstr "Twój portfel jest gotowy!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." -msgstr "" +msgstr "Opłata jest niższa niż zalecana." #: www/views/feedback/send.html:42 msgid "Your ideas, feedback, or comments" @@ -3275,11 +3394,11 @@ msgstr "Twoje hasło" #: www/views/buyAmazon.html:102 msgid "Your purchase could not be completed" -msgstr "" +msgstr "Nie można ukończyć zakupu" #: www/views/buyAmazon.html:105 msgid "Your purchase was added to the list of pending" -msgstr "" +msgstr "Zakup został dodany do listy oczekujących" #: www/views/onboarding/backupRequest.html:10 msgid "Your wallet is never saved to cloud storage or standard device backups." @@ -3293,8 +3412,8 @@ msgstr "Twój portfel będzie zaszyfrowany. Hasło wypłat nie będzie mogło by #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Balans ukryty]" @@ -3334,6 +3453,10 @@ msgstr "do wysłania" #: src/js/controllers/buyAmazon.js:238 msgid "{{amountStr}} for Amazon.com Gift Card" +msgstr "{{amountStr}} dla karty upominkowej Amazon.com" + +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" msgstr "" #: www/views/preferencesBwsUrl.html:21 @@ -3348,12 +3471,12 @@ msgstr "{{fee}} zostanie potrącone jako prowizja sieci bitcoin." msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transakcje pobrane" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-z-{{wallet.n}}" diff --git a/i18n/po/pt.po b/i18n/po/pt.po index 7548a4c3a..e2730a4eb 100644 --- a/i18n/po/pt.po +++ b/i18n/po/pt.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "- {{tx.feeRateStr}} da transação" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "Classificações de 5 estrelas ajudam-nos a que o {{appName}} chegue ás mãos de mais e mais utilizadores, que significa que mais recursos serão incluídos na aplicação!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -119,7 +124,7 @@ msgstr "Adicionar uma senha opcional para asegurar a frase de recuperação" #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "เพิ่มเป็นผู้ติดต่อ" #: src/js/controllers/confirm.js:374 msgid "Add description" @@ -199,7 +204,7 @@ msgstr "Moeda Alternativa" #: src/js/controllers/buyAmazon.js:97 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "Amazon.com is not available at this moment. Please try back later." #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -247,7 +252,7 @@ msgstr "Tem certeza que deseja cancelar e eliminar esta carteira?" msgid "Are you sure you want to delete this contact?" msgstr "Tem certeza que deseja excluir este contato?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Tem certeza que deseja excluir esta carteira?" @@ -395,6 +400,7 @@ msgid "Browser unsupported" msgstr "Navegador não suportado" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" msgstr "" @@ -406,6 +412,11 @@ msgstr "Comprar & Vender Bitcoin" msgid "Buy Bitcoin" msgstr "Comprar Bitcoin" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "" @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "A calcular taxa" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -484,6 +496,7 @@ msgid "Click" msgstr "Clique" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -509,6 +522,7 @@ msgid "Completed" msgstr "Concluído" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,6 +539,7 @@ msgid "Confirm & Finish" msgstr "Confirmar & Terminado" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "" @@ -606,11 +621,15 @@ msgstr "Copie este texto como está para um lugar seguro (bloco de notas ou e-ma #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Copiar para área de transferência" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Não foi possível acessar a carteira no servidor. Por favor, verifique:" @@ -644,6 +663,7 @@ msgid "Could not create the invoice" msgstr "Não foi possível criar a fatura" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "Não foi possível criar a transação" @@ -676,11 +696,12 @@ msgstr "Não foi possível obter taxa dinâmica" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Não foi possível obter a taxa dinâmica para nível: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "Não foi possível obter a fatura" @@ -689,13 +710,13 @@ msgstr "Não foi possível obter a fatura" msgid "Could not get transactions" msgstr "Não foi possível obter o histórico das transações" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Não foi possível importar" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Não foi possível importar. Verifique o arquivo de entrada e senha de compra" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Não foi possível enviar o pagamento" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "Não foi possível enviar a transação" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Não foi possível atualizar o histórico de transações" @@ -796,6 +818,7 @@ msgstr "Montante personalizado" msgid "Custom Fee" msgstr "" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,6 +861,8 @@ msgid "Derivation Strategy" msgstr "Estratégia de derivação" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" msgstr "Detalhes" @@ -906,10 +931,6 @@ msgstr "Ativar notificações push" msgid "Enable the camera to get started." msgstr "Ative a câmera para começar." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Inserir montante" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,6 +940,10 @@ msgstr "Inserir senha de compra" msgid "Enter Two Factor for your BitPay account" msgstr "Insira verificação dois passos para sua conta BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "" @@ -952,6 +977,8 @@ msgstr "Digite sua senha" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Digite sua senha" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Digite sua senha" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Erro" @@ -1021,6 +1050,7 @@ msgid "Error creating gift card" msgstr "" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "Erro ao obter informações de SendMax" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "Erro no Protocolo de Pagamento" @@ -1059,6 +1090,8 @@ msgstr "Excedido limite diário de $500 por usuário" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Expirado" @@ -1111,11 +1144,11 @@ msgstr "Fundos de férias com a família" msgid "Fee" msgstr "Taxa" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "" @@ -1141,6 +1174,10 @@ msgstr "" msgid "File/Text" msgstr "Arquivo/Texto" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Para fins de auditoria" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Sacar dinheiro em qualquer lugar que você vá, de qualquer Caixa Eletr msgid "Get news and updates from BitPay" msgstr "Receba notícias e atualizações da BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Começar" @@ -1234,7 +1276,13 @@ msgstr "Comece adicionando o primeiro." msgid "Getting fee levels..." msgstr "Obtendo níveis de taxa..." +#: 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 "" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" msgstr "" @@ -1419,6 +1467,11 @@ msgstr "A importar a carteira..." msgid "In order to verify your wallet backup, please type your password." msgstr "A fim de verificar o seu backup de carteira, por favor, digite sua senha." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,6 +1513,7 @@ msgid "Invalid" msgstr "Inválido" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" msgstr "URL inválida" @@ -1488,10 +1542,10 @@ msgstr "Caminho de derivação inválido" msgid "Invitation to share a {{appName}} Wallet" msgstr "Convite para compartilhar a Carteira {{appName}}" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "Taxa de Fatura" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1584,6 +1638,10 @@ msgstr "Bloqueio de tempo em ação. Por favor, espere para criar uma nova propo msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Bloqueio de tempo em ação. Por favor espere para remover esta proposta de gasto." +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" msgstr "Sair" @@ -1620,10 +1678,24 @@ msgstr "Meh - está tudo bem" msgid "Memo" msgstr "Nota" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Mensagem Publicitária" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Parâmetro em falta" @@ -1661,10 +1733,11 @@ msgstr "Nota: Para importar uma carteira de software de terceiros, por favor, v msgid "Name" msgstr "Nome" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" -msgstr "Taxa de Rede" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" +msgstr "" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1691,6 +1764,7 @@ msgid "No Wallet" msgstr "Sem carteira" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "" @@ -1702,6 +1776,10 @@ msgstr "Sem backup, sem bitcoin." msgid "No contacts yet" msgstr "Ainda não existem contactos" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Nenhuma informação de hardware disponível." @@ -1723,7 +1801,7 @@ msgstr "Não há transações recentes" msgid "No signing proposal: No private key" msgstr "Nenhuma proposta de assinatura: Nenhuma chave privada" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Nenhuma transação ainda" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Sem carteira selecionada" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1828,6 +1907,10 @@ msgstr "Aviso Legal Oficial em Inglês" msgid "Oh no!" msgstr "Oh não!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Nesta tela você pode ver todas as suas carteiras, contas e ativos." @@ -1970,6 +2053,11 @@ msgstr "Detalhes do pagamento" msgid "Payment request" msgstr "Pedido de pagamento" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Proposta pendente" @@ -2031,7 +2119,7 @@ msgstr "A preparar os endereços..." msgid "Preparing backup..." msgstr "A preparar o backup..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Pressione novamente para sair" @@ -2069,7 +2157,7 @@ msgstr "Proposta eliminada" msgid "Proposal Rejected" msgstr "Proposta rejeitada" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Propostas" @@ -2077,6 +2165,10 @@ msgstr "Propostas" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Notificações" @@ -2160,7 +2252,7 @@ msgstr "Destinatários" msgid "Recovery phrase" msgstr "Frase de recuperação" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Recriado" @@ -2169,6 +2261,10 @@ msgstr "Recriado" msgid "Recreating Wallet..." msgstr "Recriando Carteira…" +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Informação de lançamento" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "Remover" @@ -2301,6 +2398,10 @@ msgstr "Procure a sua moeda" msgid "Security" msgstr "Segurança" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Selecione um arquivo de backup" @@ -2337,7 +2438,7 @@ msgstr "Enviar Dinheiro" msgid "Send addresses by email" msgstr "Enviar endereços por e-mail" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Enviar por E-mail" @@ -2401,6 +2502,7 @@ msgid "Server response could not be verified" msgstr "Resposta do servidor não pôde ser verificada" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "" @@ -2500,6 +2602,7 @@ msgid "Slide" msgstr "Deslize" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" @@ -2520,7 +2623,7 @@ msgstr "Proposta de pagamento não encontrada" msgid "Spending Password needed" msgstr "Digitar a senha é necessária" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "Gastar este balanço necessitará uma taxa de rede Bitcoin significativa" @@ -2532,6 +2635,11 @@ msgstr "Comece a enviar bitcoin" msgid "Startup Lock" msgstr "Bloqueio de Inicialização" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" msgstr "Sucesso" @@ -2561,12 +2669,12 @@ msgstr "ESTA AÇÃO NÃO PODE SER REVERTIDA" msgid "Take control of your money,
get started with bitcoin." msgstr "Assuma o controle de seu dinheiro,
começar com bitcoin." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Toque e mantenha para mostrar" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Bata para repetir" @@ -2730,7 +2838,7 @@ msgstr "Este valor de transação é muito pequeno em comparação com as taxas msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "Esta operação poderá demorar muito tempo para ser confirmada ou poderá ser descartada devido às baixas taxas definidas pelo remetente" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Esta carteira não está registrada no dado serviço Wallet Service Bitcore (BWS) informado. Você pode recriá-la a partir da informação local." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "Recarga de {{amountStr}} para cartão de débito ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Total" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Saldo Total Bloqueado" @@ -2810,6 +2919,7 @@ msgid "Transaction already broadcasted" msgstr "Transação foi publicada" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "Transação não foi criada" @@ -2827,7 +2937,7 @@ msgstr "Transação não está disponível neste momento" msgid "Transaction not found" msgstr "Transação não encontrada" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "" @@ -2863,7 +2973,7 @@ msgstr "Não confirmado" msgid "Unit" msgstr "Unidade" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Transações não enviadas" @@ -2883,7 +2993,7 @@ msgstr "Atualização Disponível" msgid "Updating pending proposals. Please stand by" msgstr "Atualizando propostas pendentes. Por favor, aguarde" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Atualizando o histórico de transações. Por favor, aguarde." @@ -2937,7 +3047,11 @@ msgstr "Ver atualizações" msgid "View on blockchain" msgstr "Ver no blockchain" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "Aviso: Derivação de chave não está funcionando neste dispositivo/carteira. Ações não podem ser executadas nesta carteira." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "A carteira já existe" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Carteira já em Copay" +msgid "Wallet already in {{appName}}" +msgstr "" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Carteira precisa de backup" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Carteira sem backup" @@ -3118,7 +3232,7 @@ msgstr "Carteiras & Integrações" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3228,7 +3342,7 @@ msgstr "Você pode trocá-lo por outras moedas como dólares americanos, Euros o msgid "You control your bitcoin." msgstr "Você controla o seu bitcoin." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "" @@ -3244,6 +3358,11 @@ msgstr "Você receberá notificações por e-mail sobre pagamentos enviados e re msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "Seu BitPay Card está pronto. Adicione fundos ao seu cartão para começar a usá-lo em lojas e caixas eletrônicos em todo o mundo." +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "O backup de sua carteira de bitcoins está feito!" @@ -3252,7 +3371,7 @@ msgstr "O backup de sua carteira de bitcoins está feito!" msgid "Your bitcoin wallet is ready!" msgstr "Sua carteira de bitcoins está pronta!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "" @@ -3293,8 +3412,8 @@ msgstr "Sua chave da carteira será criptografada. A senha de gastos não poder #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Valores escondidos]" @@ -3336,6 +3455,10 @@ msgstr "a enviar" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "" + #: 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)." msgstr "{{appName}} depende do Bitcore Wallet Service (BWS) para informações sobre cadeias de blocos, rede e sincronização Copayer. A configuração padrão aponta para https://bws.bitpay.com (instância pública BWS do BitPay)." @@ -3348,12 +3471,12 @@ msgstr "{{fee}} será deduzido para taxas de rede bitcoins." msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} da quantidade de envio" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "Transações de {{updatingTxHistoryProgress}} transferidas" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-de-{{wallet.n}}" diff --git a/i18n/po/ru.po b/i18n/po/ru.po index 975f28789..3c45e49e5 100644 --- a/i18n/po/ru.po +++ b/i18n/po/ru.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Russian\n" "Language: ru\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -38,6 +38,11 @@ msgstr "" msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "=896t7!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -127,7 +132,7 @@ msgstr "Добавить описание" #: www/views/topup.html:6 msgid "Add funds" -msgstr "" +msgstr "Пополнить счёт" #: src/js/services/bitpayAccountService.js:78 msgid "Add this BitPay account ({{email}})?" @@ -245,9 +250,9 @@ msgstr "Вы точно хотите отменить и удалить этот #: src/js/controllers/addressbookView.js:24 msgid "Are you sure you want to delete this contact?" -msgstr "" +msgstr "Вы действительно хотите удалить этот контакт?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "Вы точно хотите удалить этот кошелёк?" @@ -395,8 +400,9 @@ msgid "Browser unsupported" msgstr "Браузер не поддерживается" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "Купить" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" @@ -406,6 +412,11 @@ msgstr "Купить & продать биткойн" msgid "Buy Bitcoin" msgstr "Купить биткойн" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" msgstr "" @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "Вычисление комиссии" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -437,7 +449,7 @@ msgstr "Отмена" #: www/views/copayers.html:36 msgid "Cancel invitation" -msgstr "" +msgstr "Отменить приглашение?" #: src/js/controllers/onboarding/tour.js:52 msgid "Cannot Create Wallet" @@ -484,6 +496,7 @@ msgid "Click" msgstr "Click" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -506,9 +519,10 @@ msgstr "Завершите процесс резервного копирова #: www/views/bitpayCard.html:93 msgid "Completed" -msgstr "" +msgstr "Завершено" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,6 +539,7 @@ msgid "Confirm & Finish" msgstr "Подтвердить & Завершить" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "" @@ -606,11 +621,15 @@ msgstr "Скопируйте этот текст как есть (в блокн #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "Скопировать в буфер обмена" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "Не удалось получить доступ к кошельку на сервере. Проверьте, пожалуйста:" @@ -644,6 +663,7 @@ msgid "Could not create the invoice" msgstr "" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" msgstr "" @@ -676,11 +696,12 @@ msgstr "Не удалось получить динамическую комис msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "Не удалось получить динамическую комиссию для уровня: {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" msgstr "" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" msgstr "" @@ -689,13 +710,13 @@ msgstr "" msgid "Could not get transactions" msgstr "Не удалось получить транзакции" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "Не удалось импортировать" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "Не удалось импортировать. Проверьте импортируемый файл и платёжный пароль" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "Не удалось отправить платёж" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" msgstr "" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "Не удалось обновить журнал транзакций" @@ -796,6 +818,7 @@ msgstr "Сумма" msgid "Custom Fee" msgstr "" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,9 +861,11 @@ msgid "Derivation Strategy" msgstr "Стратегия деривации" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" -msgstr "" +msgstr "Подробности" #: src/js/controllers/lockSetup.js:9 #: src/js/controllers/tab-settings.js:60 @@ -906,10 +931,6 @@ msgstr "Включить push-уведомления" msgid "Enable the camera to get started." msgstr "Чтобы начать, включите камеру." -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "Введите сумму" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,6 +940,10 @@ msgstr "Введите платёжный пароль" msgid "Enter Two Factor for your BitPay account" msgstr "Введите второй фактор вашей учётной записи BitPay" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" msgstr "" @@ -952,6 +977,8 @@ msgstr "Введите пароль" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "Введите пароль" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "Введите пароль" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "Ошибка" @@ -1021,6 +1050,7 @@ msgid "Error creating gift card" msgstr "" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" msgstr "" @@ -1033,6 +1063,7 @@ msgid "Error getting SendMax information" msgstr "" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" msgstr "" @@ -1059,6 +1090,8 @@ msgstr "Превышен дневной лимит в 500$ на пользова #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "Истекла" @@ -1111,18 +1144,18 @@ msgstr "Отпускной бюджет" msgid "Fee" msgstr "Комиссия" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" msgstr "" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" msgstr "" #: www/views/confirm.html:81 #: www/views/modals/txp-details.html:101 msgid "Fee:" -msgstr "" +msgstr "Комиссия:" #: src/js/controllers/feedback/send.js:23 msgid "Feedback could not be submitted. Please try again later." @@ -1141,6 +1174,10 @@ msgstr "" msgid "File/Text" msgstr "Файл/текст" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "Для целей ревизии" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1221,8 +1259,12 @@ msgstr "Получайте местную валюту везде, где ест msgid "Get news and updates from BitPay" msgstr "Получать письма с новостями от BitPay" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "Начать" @@ -1234,10 +1276,16 @@ msgstr "Начните, добавив первый контакт." msgid "Getting fee levels..." msgstr "Получение информации о комиссиях..." -#: www/views/buyAmazon.html:43 -msgid "Gift card" +#: 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 "" +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift card" +msgstr "Подарочная карта" + #: src/js/controllers/buyAmazon.js:203 msgid "Gift card expired" msgstr "" @@ -1419,6 +1467,11 @@ msgstr "Импортирование кошелька..." msgid "In order to verify your wallet backup, please type your password." msgstr "Для проверки резервной копии требуется ввести пароль." +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1460,9 +1513,10 @@ msgid "Invalid" msgstr "Недействительно" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" -msgstr "" +msgstr "Неверный URL" #: src/js/controllers/create.js:175 #: src/js/controllers/import.js:327 @@ -1488,9 +1542,9 @@ msgstr "Недействительный путь деривации" msgid "Invitation to share a {{appName}} Wallet" msgstr "Приглашение присоединиться к кошельку {{appName}}" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" msgstr "" #: src/js/controllers/feedback/send.js:79 @@ -1584,9 +1638,13 @@ msgstr "Действует блокировка. Пожалуйста, подо msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Действует блокировка. Пожалуйста, подождите, чтобы удалить предложенный платёж" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" -msgstr "" +msgstr "Bыйти" #: www/views/addresses.html:87 msgid "Low amount inputs" @@ -1620,10 +1678,24 @@ msgstr "Ну так, терпимо" msgid "Memo" msgstr "Памятка" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "Сообщение от продавца" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "Недостающий параметр" @@ -1661,9 +1733,10 @@ msgstr "Примечание: для импортирования кошельк msgid "Name" msgstr "Название" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" msgstr "" #: src/js/services/bwcError.js:47 @@ -1691,6 +1764,7 @@ msgid "No Wallet" msgstr "Нет кошельков" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" msgstr "" @@ -1702,6 +1776,10 @@ msgstr "Нет резервной копии - нет биткойнов." msgid "No contacts yet" msgstr "Нет контактов" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." msgstr "Информация об аппаратном обеспечении отсутствует." @@ -1723,7 +1801,7 @@ msgstr "Нет недавних транзакций" msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "Транзакций пока не было" @@ -1736,6 +1814,7 @@ msgid "No wallet selected" msgstr "Не выбран кошелёк" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" @@ -1828,6 +1907,10 @@ msgstr "Официальный оригинал" msgid "Oh no!" msgstr "О, нет!" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "На этой вкладке вы можете видеть все ваши кошельки, учетные записи и активы." @@ -1970,6 +2053,11 @@ msgstr "Детали платежа" msgid "Payment request" msgstr "Запрос платежа" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "Рассматриваемые платежи" @@ -2031,7 +2119,7 @@ msgstr "Подготовка адресов..." msgid "Preparing backup..." msgstr "Подготовка резервной копии..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "Нажмите еще раз для выхода" @@ -2069,7 +2157,7 @@ msgstr "Платёж удалён" msgid "Proposal Rejected" msgstr "Платёж отклонён" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "Предложенные платежи" @@ -2077,6 +2165,10 @@ msgstr "Предложенные платежи" msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "" + #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" msgstr "Push-уведомления" @@ -2160,7 +2252,7 @@ msgstr "Получатели" msgid "Recovery phrase" msgstr "Ключевое словосочетание" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "Создать заново" @@ -2169,6 +2261,10 @@ msgstr "Создать заново" msgid "Recreating Wallet..." msgstr "Воссоздаю кошелёк..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,6 +2279,7 @@ msgid "Release information" msgstr "Информация о выпуске" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" msgstr "" @@ -2301,6 +2398,10 @@ msgstr "Найти вашу валюту" msgid "Security" msgstr "Безопасность" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "Выберите файл резервной копии" @@ -2337,7 +2438,7 @@ msgstr "Отправить деньги" msgid "Send addresses by email" msgstr "Отправить адреса по email" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "Отправить на email" @@ -2401,6 +2502,7 @@ msgid "Server response could not be verified" msgstr "Ответ сервера не может быть проверен" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" msgstr "" @@ -2500,6 +2602,7 @@ msgid "Slide" msgstr "Сдвинуть" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" @@ -2520,7 +2623,7 @@ msgstr "Платёж не найден" msgid "Spending Password needed" msgstr "Необходим платёжный пароль" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2532,6 +2635,11 @@ msgstr "Начать отправку bitcoin" msgid "Startup Lock" msgstr "Блокировка при запуске" +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "" + #: www/views/topup.html:101 msgid "Success" msgstr "" @@ -2561,12 +2669,12 @@ msgstr "ЭТО ДЕЙСТВИЕ НЕ МОЖЕТ БЫТЬ ОТМЕНЕНО" msgid "Take control of your money,
get started with bitcoin." msgstr "Возьмите ваши финансы под контроль,
начните пользоваться Биткойн." -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "Коснитесь и удерживайте, чтобы показать" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "Повторить" @@ -2730,7 +2838,7 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Это кошелёк не зарегистрирован на данном сервере Bitcore. Вы можете воссоздать его из локальной информации." @@ -2770,12 +2878,13 @@ msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "Баланс кошелька" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "Всего заблокировано средств" @@ -2810,6 +2919,7 @@ msgid "Transaction already broadcasted" msgstr "Транзакция уже отправлена" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" msgstr "" @@ -2827,7 +2937,7 @@ msgstr "Транзакция недоступна в данный момент" msgid "Transaction not found" msgstr "Транзакция не обнаружена" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." msgstr "" @@ -2863,7 +2973,7 @@ msgstr "Неподтверждено" msgid "Unit" msgstr "Единица измерения" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "Неотправленные транзакции" @@ -2883,7 +2993,7 @@ msgstr "Доступно обновление" msgid "Updating pending proposals. Please stand by" msgstr "Обновление ожидающих рассмотрения платежей. Подождите, пожалуйста" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "Обновление истории транзакций. Подождите, пожалуйста." @@ -2937,7 +3047,11 @@ msgstr "Просмотреть обновление" msgid "View on blockchain" msgstr "Посмотреть в блокчейне" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "ВНИМАНИЕ: Деривация ключей не работает на этом устройстве/кошельке. Никакие действия не могут быть произведены с этим кошельком." @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "Кошелёк уже существует" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "Кошелёк уже в Copay" +msgid "Wallet already in {{appName}}" +msgstr "" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "Необходимо создать резервную копию" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "Резервное копирование не выполнено" @@ -3118,7 +3232,7 @@ msgstr "Кошельки и интеграция" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3228,7 +3342,7 @@ msgstr "" msgid "You control your bitcoin." msgstr "Вы контролируете Ваши bitcoin-ы." -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." msgstr "" @@ -3244,6 +3358,11 @@ msgstr "Вы будете получать email-уведомления о вх msgid "Your BitPay Card is ready. Add funds to your card to start using it at stores and ATMs worldwide." msgstr "" +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "" + #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" msgstr "Резервная копия кошелька создана!" @@ -3252,7 +3371,7 @@ msgstr "Резервная копия кошелька создана!" msgid "Your bitcoin wallet is ready!" msgstr "Ваш кошелёк готов!" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." msgstr "" @@ -3293,8 +3412,8 @@ msgstr "Ваш кошелёк будет зашифрован. Платёжны #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[Баланс скрыт]" @@ -3336,6 +3455,10 @@ msgstr "отправить" msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "" + #: 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)." msgstr "{{appName}} требует Bitcore для координации совладельцев и получения информации из блокчейна. По-умолчанию используется сервер https://bws.bitpay.com (публичный сервер Bitcore компании BitPay)." @@ -3348,12 +3471,12 @@ msgstr "{{fee}} будет использовано для оплаты коми msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} транзакций загружено" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}-из-{{wallet.n}}" diff --git a/i18n/po/zh.po b/i18n/po/zh.po index 96202a3c2..37c98e29b 100644 --- a/i18n/po/zh.po +++ b/i18n/po/zh.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Chinese Simplified\n" "Language: zh\n" -"PO-Revision-Date: 2017-07-18 13:18-0400\n" +"PO-Revision-Date: 2017-08-16 09:23-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -28,16 +28,21 @@ msgstr "* 如果 1) 你是创造者,及没有其他 copayer 签名,或 2) 24 #: www/views/tx-details.html:84 msgid "- {{btx.feeRateStr}} of the transaction" -msgstr "" +msgstr "-{{btx.feeRateStr}} 的交易记录" #: www/views/modals/txp-details.html:104 msgid "- {{tx.feeRateStr}} of the transaction" -msgstr "" +msgstr "-{{tx.feeRateStr}} 的交易记录" #: www/views/feedback/rateApp.html:7 msgid "5-star ratings help us get {{appName}} into more hands, and more users means more resources can be committed to the app!" msgstr "5 星评级帮助我们进入更多的人手, {{appName}} 和更多的用户意味着的的资源可以致力于应用!" +#: www/views/mercadoLibre.html:18 +#: www/views/mercadoLibre.html:40 +msgid "Only redeemable on Mercado Livre (Brazil)" +msgstr "Only 可随时取现的梅尔卡多里弗 (巴西)" + #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." @@ -119,7 +124,7 @@ msgstr "添加可选的密码,以保护恢复短语" #: www/views/includes/incomingDataMenu.html:41 msgid "Add as a contact" -msgstr "" +msgstr "添加到联系人" #: src/js/controllers/confirm.js:374 msgid "Add description" @@ -127,11 +132,11 @@ msgstr "添加描述" #: www/views/topup.html:6 msgid "Add funds" -msgstr "" +msgstr "添加资金" #: src/js/services/bitpayAccountService.js:78 msgid "Add this BitPay account ({{email}})?" -msgstr "" +msgstr "确定添加此BitPay账户:{{email}} 吗?" #: www/views/add.html:3 msgid "Add wallet" @@ -199,7 +204,7 @@ msgstr "替代货币" #: src/js/controllers/buyAmazon.js:97 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "" +msgstr "亚马逊服务器暂时不可用,请稍候再试。" #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -217,7 +222,7 @@ msgstr "量太大" #: www/views/includes/walletHistory.html:31 msgid "Amount too low to spend" -msgstr "" +msgstr "数量太少,无法发送。" #: src/js/controllers/tab-home.js:147 msgid "An update to this app is available. For your security, please update to the latest version." @@ -229,7 +234,7 @@ msgstr "任何人只要持有你的备份短语,就可以访问或者花掉你 #: www/views/addresses.html:94 msgid "Approximate Bitcoin network fee to transfer wallet's balance (with normal priority)" -msgstr "" +msgstr "近似的比特币网络费用将钱包的余额转移 (与正常优先级)" #: www/views/backupWarning.html:10 msgid "Are you being watched?" @@ -237,7 +242,7 @@ msgstr "你正在被监视吗?" #: src/js/controllers/preferencesExternal.js:15 msgid "Are you being watched? Anyone with your recovery phrase can access or spend your bitcoin." -msgstr "" +msgstr "有旁观者么?只要有人知道了你的恢复短语,他就能访问你的比特币,或者花费它。" #: src/js/controllers/copayers.js:56 msgid "Are you sure you want to cancel and delete this wallet?" @@ -245,9 +250,9 @@ msgstr "确定取消和删除这个钱包?" #: src/js/controllers/addressbookView.js:24 msgid "Are you sure you want to delete this contact?" -msgstr "" +msgstr "你确定你要删除此联系人?" -#: src/js/controllers/preferencesDelete.js:26 +#: src/js/controllers/preferencesDelete.js:25 msgid "Are you sure you want to delete this wallet?" msgstr "确定要删除这钱包?" @@ -265,7 +270,7 @@ msgstr "你确定你想跳过它?" #: 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 "你确定你要登出你的BitPay Card账户?" #: src/js/controllers/preferencesBitpayCard.js:7 #: src/js/controllers/preferencesBitpayServices.js:20 @@ -306,7 +311,7 @@ msgstr "需要备份" #: src/js/controllers/lockSetup.js:87 msgid "Backup all livenet wallets before using this function" -msgstr "" +msgstr "请在使用此功能之前备份你的钱包。" #: www/views/preferences.html:36 #: www/views/tab-settings.html:120 @@ -375,7 +380,7 @@ msgstr "比特币交易包括在网络上被矿工所收取的费用。" #: www/views/buyAmazon.html:108 msgid "Bought {{amountUnitStr}}" -msgstr "" +msgstr "买了{{amountUnitStr}}" #: www/views/modals/txp-details.html:36 msgid "Broadcast Payment" @@ -395,8 +400,9 @@ msgid "Browser unsupported" msgstr "不受支持的浏览器" #: www/views/buyAmazon.html:5 +#: www/views/buyMercadoLibre.html:6 msgid "Buy" -msgstr "" +msgstr "购买" #: www/views/includes/buyAndSellCard.html:3 msgid "Buy & Sell Bitcoin" @@ -406,9 +412,14 @@ msgstr "购买或出售比特币" msgid "Buy Bitcoin" msgstr "购买比特币" +#: www/views/mercadoLibre.html:22 +#: www/views/mercadoLibre.html:50 +msgid "Buy a Gift Card" +msgstr "买一张礼品卡" + #: src/js/controllers/buyAmazon.js:332 msgid "Buy from" -msgstr "" +msgstr "从什么地方购买" #: src/js/services/onGoingProcess.js:40 msgid "Buying Bitcoin..." @@ -419,6 +430,7 @@ msgid "Calculating fee" msgstr "正在计算费用" #: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 #: src/js/controllers/confirm.js:495 #: src/js/controllers/topup.js:285 #: src/js/services/popupService.js:62 @@ -437,7 +449,7 @@ msgstr "取消" #: www/views/copayers.html:36 msgid "Cancel invitation" -msgstr "" +msgstr "取消邀请" #: src/js/controllers/onboarding/tour.js:52 msgid "Cannot Create Wallet" @@ -457,7 +469,7 @@ msgstr "通过认证:" #: www/views/preferencesExternal.html:19 msgid "Check installation and retry." -msgstr "" +msgstr "检查安装包然后重试" #: www/views/tab-import-file.html:4 msgid "Choose a backup file from your computer" @@ -484,6 +496,7 @@ msgid "Click" msgstr "点击" #: www/views/customAmount.html:4 +#: www/views/modals/mercadolibre-card-details.html:3 #: www/views/modals/paypro.html:4 #: www/views/modals/pin.html:3 #: www/views/modals/search.html:3 @@ -502,13 +515,14 @@ msgstr "提交哈希" #: www/views/preferences.html:48 msgid "Complete the backup process to use this option" -msgstr "" +msgstr "要使用此选项,请先完成备份。" #: www/views/bitpayCard.html:93 msgid "Completed" -msgstr "" +msgstr "完成" #: src/js/controllers/buyAmazon.js:309 +#: src/js/controllers/buyMercadoLibre.js:303 #: src/js/controllers/confirm.js:494 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:283 @@ -525,16 +539,17 @@ msgid "Confirm & Finish" msgstr "确认并完成" #: www/views/buyAmazon.html:90 +#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" -msgstr "" +msgstr "确认购买" #: www/views/modals/pin.html:10 msgid "Confirm your PIN" -msgstr "" +msgstr "确认你的PIN码" #: src/js/services/walletService.js:1034 msgid "Confirm your new spending password" -msgstr "" +msgstr "确认你的新支付密码" #: www/views/tx-details.html:98 msgid "Confirmations" @@ -606,18 +621,22 @@ msgstr "将此文本复制到一个安全的地方(记事本或电子邮件) #: www/views/includes/incomingDataMenu.html:51 #: www/views/includes/incomingDataMenu.html:70 #: www/views/includes/incomingDataMenu.html:94 -#: www/views/preferencesLogs.html:10 +#: www/views/includes/logOptions.html:9 #: www/views/tab-export-file.html:78 msgid "Copy to clipboard" msgstr "复制到剪贴板" +#: src/js/controllers/buyMercadoLibre.js:101 +msgid "Could not access Gift Card Service" +msgstr "不能访问礼品卡服务" + #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" msgstr "无法访问服务器上的钱包。请确认︰" #: src/js/controllers/buyAmazon.js:101 msgid "Could not access to Amazon.com" -msgstr "" +msgstr "不能访问到亚马逊网站" #: src/js/services/profileService.js:493 msgid "Could not access wallet" @@ -641,12 +660,13 @@ msgstr "无法创建地址" #: src/js/controllers/topup.js:91 msgid "Could not create the invoice" -msgstr "" +msgstr "不能创建发票" #: src/js/controllers/buyAmazon.js:163 +#: src/js/controllers/buyMercadoLibre.js:163 #: src/js/controllers/topup.js:141 msgid "Could not create transaction" -msgstr "" +msgstr "无法创建交易记录" #: src/js/services/profileService.js:342 msgid "Could not create using the specified extended private key" @@ -676,26 +696,27 @@ msgstr "不能动态费用" msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "无法获取水平动态费用︰ {{feeLevel}}" -#: src/js/controllers/modals/feeLevels.js:113 +#: src/js/controllers/modals/feeLevels.js:112 msgid "Could not get fee levels" -msgstr "" +msgstr "无法获取费率" #: src/js/controllers/buyAmazon.js:121 +#: src/js/controllers/buyMercadoLibre.js:121 #: src/js/controllers/topup.js:99 msgid "Could not get the invoice" -msgstr "" +msgstr "不能拿到发票" #: src/js/controllers/bitpayCard.js:66 msgid "Could not get transactions" msgstr "不能交易" -#: src/js/services/profileService.js:595 -#: src/js/services/profileService.js:629 -#: src/js/services/profileService.js:652 +#: src/js/services/profileService.js:597 +#: src/js/services/profileService.js:631 +#: src/js/services/profileService.js:654 msgid "Could not import" msgstr "无法导入" -#: src/js/services/profileService.js:564 +#: src/js/services/profileService.js:566 msgid "Could not import. Check input file and spending password" msgstr "无法导入。请检查输入文件和支付密码" @@ -725,11 +746,12 @@ msgid "Could not send payment" msgstr "无法发送支付" #: src/js/controllers/buyAmazon.js:323 +#: src/js/controllers/buyMercadoLibre.js:316 #: src/js/controllers/topup.js:297 msgid "Could not send transaction" -msgstr "" +msgstr "无法发送交易记录" -#: www/views/walletDetails.html:199 +#: www/views/walletDetails.html:198 msgid "Could not update transaction history" msgstr "无法更新交易历史记录" @@ -786,7 +808,7 @@ msgstr "此策略的当前费用率" #: src/js/services/feeService.js:15 msgid "Custom" -msgstr "" +msgstr "自定义" #: www/views/customAmount.html:9 msgid "Custom Amount" @@ -794,8 +816,9 @@ msgstr "自定义金额" #: src/js/controllers/preferencesFee.js:84 msgid "Custom Fee" -msgstr "" +msgstr "使用自定义费率" +#: www/views/modals/mercadolibre-card-details.html:56 #: www/views/modals/txp-details.html:89 #: www/views/tx-details.html:68 msgid "Date" @@ -838,14 +861,16 @@ msgid "Derivation Strategy" msgstr "衍生策略" #: www/views/buyAmazon.html:39 +#: www/views/buyMercadoLibre.html:38 +#: www/views/modals/mercadolibre-card-details.html:6 #: www/views/topup.html:45 msgid "Details" -msgstr "" +msgstr "详情" #: src/js/controllers/lockSetup.js:9 #: src/js/controllers/tab-settings.js:60 msgid "Disabled" -msgstr "" +msgstr "已经禁用" #: www/views/includes/backupNeededPopup.html:10 #: www/views/onboarding/backupRequest.html:12 @@ -875,7 +900,7 @@ msgstr "经济" #: www/views/onboarding/collectEmail.html:27 msgid "Edit" -msgstr "" +msgstr "编辑" #: www/views/addressbook.add.html:29 #: www/views/addressbook.view.html:22 @@ -906,10 +931,6 @@ msgstr "启用推式通知" msgid "Enable the camera to get started." msgstr "使该摄像机开始。" -#: www/views/amount.html:4 -msgid "Enter Amount" -msgstr "输入金额" - #: src/js/services/walletService.js:1048 #: src/js/services/walletService.js:1063 msgid "Enter Spending Password" @@ -919,9 +940,13 @@ msgstr "输入支出密码" msgid "Enter Two Factor for your BitPay account" msgstr "为您的 BitPay 帐户输入两个因素" +#: www/views/amount.html:4 +msgid "Enter amount" +msgstr "输入金额" + #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" -msgstr "" +msgstr "输入自定义费率" #: src/js/services/walletService.js:1030 msgid "Enter new spending password" @@ -935,7 +960,7 @@ msgstr "输入恢复短语 (BIP39)" #: www/views/onboarding/collectEmail.html:13 msgid "Enter your email" -msgstr "" +msgstr "输入您的电子邮件" #: www/views/backup.html:62 msgid "Enter your password" @@ -952,6 +977,8 @@ msgstr "请输入你的密码" #: src/js/controllers/bitpayCardIntro.js:81 #: src/js/controllers/buyAmazon.js:23 #: src/js/controllers/buyAmazon.js:34 +#: src/js/controllers/buyMercadoLibre.js:23 +#: src/js/controllers/buyMercadoLibre.js:34 #: src/js/controllers/confirm.js:276 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:155 @@ -993,13 +1020,13 @@ msgstr "请输入你的密码" #: src/js/controllers/join.js:165 #: src/js/controllers/join.js:173 #: src/js/controllers/join.js:191 -#: src/js/controllers/modals/feeLevels.js:10 +#: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:134 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 #: src/js/controllers/preferencesBitpayServices.js:50 -#: src/js/controllers/preferencesDelete.js:37 +#: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 #: src/js/controllers/tab-send.js:132 @@ -1009,6 +1036,8 @@ msgstr "请输入你的密码" #: src/js/controllers/topup.js:31 #: src/js/controllers/tx-details.js:102 #: src/js/services/incomingData.js:98 +#: www/views/mercadoLibreCards.html:19 +#: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "错误!" @@ -1018,11 +1047,12 @@ msgstr "在确认错误" #: src/js/controllers/buyAmazon.js:178 msgid "Error creating gift card" -msgstr "" +msgstr "错误创建礼品卡" #: src/js/controllers/buyAmazon.js:93 +#: src/js/controllers/buyMercadoLibre.js:93 msgid "Error creating the invoice" -msgstr "" +msgstr "创建发票时出错" #: src/js/services/profileService.js:396 msgid "Error creating wallet" @@ -1030,16 +1060,17 @@ msgstr "创建钱包时出现错误" #: src/js/controllers/confirm.js:266 msgid "Error getting SendMax information" -msgstr "" +msgstr "获取SendMax信息时出错。" #: src/js/controllers/buyAmazon.js:135 +#: src/js/controllers/buyMercadoLibre.js:135 #: src/js/controllers/topup.js:113 msgid "Error in Payment Protocol" -msgstr "" +msgstr "付款协议中的错误" #: src/js/controllers/bitpayCardIntro.js:14 msgid "Error pairing BitPay Account" -msgstr "" +msgstr "错误配对 BitPay 帐户" #: src/js/controllers/paperWallet.js:41 msgid "Error scanning funds:" @@ -1059,6 +1090,8 @@ msgstr "超过 500 美元,每个用户的每日限额" #: src/js/controllers/confirm.js:411 #: www/views/confirm.html:27 +#: www/views/mercadoLibreCards.html:25 +#: www/views/modals/mercadolibre-card-details.html:34 #: www/views/modals/txp-details.html:121 msgid "Expired" msgstr "已过期" @@ -1092,7 +1125,7 @@ msgstr "扩展的公钥" #: src/js/services/onGoingProcess.js:20 msgid "Extracting Wallet information..." -msgstr "" +msgstr "正在提取的钱包信息..." #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1111,18 +1144,18 @@ msgstr "家庭度假资金" msgid "Fee" msgstr "费用" -#: www/views/modals/chooseFeeLevel.html:73 +#: www/views/modals/chooseFeeLevel.html:75 msgid "Fee level" -msgstr "" +msgstr "费用等级" -#: src/js/controllers/modals/feeLevels.js:101 +#: src/js/controllers/modals/feeLevels.js:100 msgid "Fee level is not defined" -msgstr "" +msgstr "未定义收费等级。。" #: www/views/confirm.html:81 #: www/views/modals/txp-details.html:101 msgid "Fee:" -msgstr "" +msgstr "手续费:" #: src/js/controllers/feedback/send.js:23 msgid "Feedback could not be submitted. Please try again later." @@ -1130,17 +1163,21 @@ msgstr "无法提交反馈。请稍后再试。" #: src/js/services/onGoingProcess.js:42 msgid "Fetching BitPay Account..." -msgstr "" +msgstr "正在获取 BitPay 帐户..." #: src/js/services/onGoingProcess.js:21 msgid "Fetching payment information" -msgstr "" +msgstr "获取付款信息" #: www/views/export.html:14 #: www/views/import.html:16 msgid "File/Text" msgstr "文件/文本" +#: www/views/preferencesLogs.html:17 +msgid "Filter setting" +msgstr "筛选器设置" + #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 msgid "Finger Scan Failed" @@ -1158,6 +1195,7 @@ msgstr "供审计目的" #: src/js/controllers/topup.js:306 #: www/views/buyAmazon.html:29 +#: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 #: www/views/modals/txp-details.html:74 #: www/views/topup.html:34 @@ -1171,7 +1209,7 @@ msgstr "从 BitPay 帐户" #: www/views/tab-import-phrase.html:54 msgid "From Hardware Wallet" -msgstr "" +msgstr "从硬件钱包" #: www/views/tab-export-qrCode.html:5 msgid "From the destination device, go to Add wallet > Import wallet and scan this QR code" @@ -1187,7 +1225,7 @@ msgstr "找到资金" #: www/views/topup.html:49 msgid "Funds to be added" -msgstr "" +msgstr "要添加的资金" #: www/views/paperWallet.html:53 msgid "Funds transferred" @@ -1195,7 +1233,7 @@ msgstr "资金转移" #: www/views/topup.html:103 msgid "Funds were added to debit card" -msgstr "" +msgstr "增加了资金,以借记卡" #: www/views/paperWallet.html:22 msgid "Funds will be transferred to" @@ -1203,7 +1241,7 @@ msgstr "资金将会转移到" #: www/views/tab-receive.html:51 msgid "Generate new address" -msgstr "" +msgstr "生成新的地址" #: src/js/services/onGoingProcess.js:22 msgid "Generating .csv file..." @@ -1221,8 +1259,12 @@ msgstr "得到当地现金任何地方您去,从任何 Visa® 兼 msgid "Get news and updates from BitPay" msgstr "从 BitPay 获取新闻和更新" -#: www/views/bitpayCard.html:49 #: www/views/onboarding/welcome.html:8 +msgctxt "button" +msgid "Get started" +msgstr "入门" + +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "马上体验" @@ -1234,17 +1276,23 @@ msgstr "通过添加您的第一个开始。" msgid "Getting fee levels..." msgstr "正在获取收费水平..." +#: 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 "礼品卡不可再使用" + #: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 msgid "Gift card" -msgstr "" +msgstr "礼品卡" #: src/js/controllers/buyAmazon.js:203 msgid "Gift card expired" -msgstr "" +msgstr "礼品卡过期" #: www/views/buyAmazon.html:111 msgid "Gift card generated and ready to use." -msgstr "" +msgstr "礼品卡生成并准备使用。" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 @@ -1276,7 +1324,7 @@ msgstr "硬件钱包" #: www/views/preferencesExternal.html:18 msgid "Hardware not connected." -msgstr "" +msgstr "硬件未连接" #: www/views/import.html:20 msgid "Hardware wallet" @@ -1289,7 +1337,7 @@ msgstr "帮助与支持" #: src/js/controllers/bitpayCard.js:112 #: src/js/controllers/tab-settings.js:46 msgid "Help and support information is available at the website." -msgstr "" +msgstr "帮助&支持现在是可用的" #: www/views/addresses.html:25 msgid "Hide" @@ -1325,7 +1373,7 @@ msgstr "我们如何可以改善您的体验?" #: www/views/feedback/rateCard.html:3 msgid "How do you like {{appName}}?" -msgstr "" +msgstr "你喜欢 {{appName}}?" #: src/js/controllers/feedback/rateCard.js:29 msgid "I don't like it" @@ -1372,7 +1420,7 @@ msgstr "我已经把它写下来" #: www/views/preferences.html:45 msgid "If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected." -msgstr "" +msgstr "如果启用,将保护所有的敏感信息(私人密钥和恢复短语) 和与这个钱包关联的操作 (支出和出口)." #: www/views/advancedSettings.html:22 msgid "If enabled, the Recent Transactions card - a list of transactions occuring across all wallets - will appear in the Home tab." @@ -1419,6 +1467,11 @@ msgstr "正在导入钱包..." msgid "In order to verify your wallet backup, please type your password." msgstr "为了验证您的钱包的备份,请键入您的密码。" +#: www/views/mercadoLibreCards.html:24 +#: www/views/modals/mercadolibre-card-details.html:29 +msgid "Inactive" +msgstr "处于非活动状态" + #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 @@ -1432,7 +1485,7 @@ msgstr "不完整的钱包" #: www/views/modals/pin.html:12 msgid "Incorrect PIN, try again." -msgstr "" +msgstr "PIN码不正确,请重试" #. Trying to import a malformed wallet export QR code #: src/js/controllers/import.js:70 @@ -1441,7 +1494,7 @@ msgstr "代码格式不正确" #: src/js/services/bwcError.js:113 msgid "Incorrect network address" -msgstr "" +msgstr "网络地址不正确" #: src/js/controllers/confirm.js:112 #: src/js/controllers/confirm.js:275 @@ -1460,9 +1513,10 @@ msgid "Invalid" msgstr "无效" #: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 #: src/js/controllers/topup.js:114 msgid "Invalid URL" -msgstr "" +msgstr "错误的URL" #: src/js/controllers/create.js:175 #: src/js/controllers/import.js:327 @@ -1488,10 +1542,10 @@ msgstr "衍生路径无效" msgid "Invitation to share a {{appName}} Wallet" msgstr "邀请分享 {{appName}} 钱包" -#: www/views/buyAmazon.html:49 -#: www/views/topup.html:56 -msgid "Invoice Fee" -msgstr "" +#: www/views/mercadoLibreCards.html:20 +#: www/views/modals/mercadolibre-card-details.html:48 +msgid "Invoice expired" +msgstr "发票过期" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" @@ -1562,15 +1616,15 @@ msgstr "正在加载交易信息..." #: www/views/tab-settings.html:95 msgid "Lock App" -msgstr "" +msgstr "锁定应用" #: src/js/controllers/lockSetup.js:23 msgid "Lock by Fingerprint" -msgstr "" +msgstr "通过指纹挂起应用。" #: src/js/controllers/lockSetup.js:14 msgid "Lock by PIN" -msgstr "" +msgstr "用PIN码锁定" #: www/views/modals/wallet-balance.html:80 msgid "Locked" @@ -1584,17 +1638,21 @@ msgstr "Locktime 在进行中。请稍等以创建新的花费提议" msgid "Locktime in effect. Please wait to remove this spend proposal" msgstr "Locktime 在进行中。请稍等以删除花费提议" +#: www/views/includes/logOptions.html:3 +msgid "Log options" +msgstr "日志选项" + #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" -msgstr "" +msgstr "登出" #: www/views/addresses.html:87 msgid "Low amount inputs" -msgstr "" +msgstr "低额投入" #: www/views/includes/walletHistory.html:27 msgid "Low fees" -msgstr "" +msgstr "手续费太低" #: www/views/onboarding/tour.html:38 msgid "Makes sense" @@ -1620,10 +1678,24 @@ msgstr "咩-没关系" msgid "Memo" msgstr "便签" +#: www/views/mercadoLibre.html:6 +msgid "Mercado Livre Brazil Gift Cards" +msgstr "梅尔卡多里弗巴西礼品卡" + +#: src/js/controllers/buyMercadoLibre.js:97 +msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." +msgstr "就在这时,自由市场礼品卡服务不可用。请稍后再试。" + #: www/views/modals/txp-details.html:133 msgid "Merchant Message" msgstr "商人的消息" +#: www/views/buyAmazon.html:55 +#: www/views/buyMercadoLibre.html:54 +#: www/views/topup.html:63 +msgid "Miner Fee" +msgstr "" + #: src/js/services/bwcError.js:134 msgid "Missing parameter" msgstr "缺失参数" @@ -1661,9 +1733,10 @@ msgstr "注意︰欲从第三方软件导入钱包,请到添加钱包 > 创 msgid "Name" msgstr "名称" -#: www/views/buyAmazon.html:55 -#: www/views/topup.html:63 -msgid "Network Fee" +#: www/views/buyAmazon.html:49 +#: www/views/buyMercadoLibre.html:48 +#: www/views/topup.html:56 +msgid "Network Cost" msgstr "" #: src/js/services/bwcError.js:47 @@ -1691,8 +1764,9 @@ msgid "No Wallet" msgstr "没钱包" #: src/js/controllers/buyAmazon.js:114 +#: src/js/controllers/buyMercadoLibre.js:114 msgid "No access key defined" -msgstr "" +msgstr "没有定义的访问键" #: www/views/onboarding/backupRequest.html:5 msgid "No backup, no bitcoin." @@ -1702,9 +1776,13 @@ msgstr "没有备份,没有比特币。" msgid "No contacts yet" msgstr "然而没有联系人" +#: www/views/preferencesLogs.html:16 +msgid "No entries for this log level" +msgstr "没有为此日志级别的的条目" + #: www/views/preferencesExternal.html:12 msgid "No hardware information available." -msgstr "" +msgstr "没有可用的硬件信息。" #: www/views/tab-import-hardware.html:3 msgid "No hardware wallets supported on this device" @@ -1721,9 +1799,9 @@ msgstr "没有最近的交易" #: src/js/controllers/buyAmazon.js:43 #: src/js/controllers/topup.js:46 msgid "No signing proposal: No private key" -msgstr "" +msgstr "没有签名的建议: 没有私钥" -#: www/views/walletDetails.html:193 +#: www/views/walletDetails.html:192 msgid "No transactions yet" msgstr "没有交易记录" @@ -1736,10 +1814,11 @@ msgid "No wallet selected" msgstr "没有选定的钱包" #: src/js/controllers/buyAmazon.js:298 +#: src/js/controllers/buyMercadoLibre.js:290 #: src/js/controllers/confirm.js:83 #: src/js/controllers/topup.js:263 msgid "No wallets available" -msgstr "" +msgstr "没有可用的钱包" #: www/views/paperWallet.html:47 msgid "No wallets available to receive funds" @@ -1785,15 +1864,15 @@ msgstr "通知" #: www/views/onboarding/collectEmail.html:9 msgid "Notifications by email" -msgstr "" +msgstr "用电子邮件通知" #: www/views/tx-details.html:117 msgid "Notify me if confirmed" -msgstr "" +msgstr "确认完毕时通知我。" #: www/views/preferencesNotifications.html:24 msgid "Notify me when transactions are confirmed" -msgstr "" +msgstr "交易确认完毕时通知我" #: 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." @@ -1828,6 +1907,10 @@ msgstr "官方英文免责声明" msgid "Oh no!" msgstr "出错。" +#: src/js/controllers/buyMercadoLibre.js:304 +msgid "Ok" +msgstr "还行" + #: www/views/tab-home.html:39 msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "在此屏幕上您可以看到您的钱包、 帐户和资产。" @@ -1872,7 +1955,7 @@ msgstr "打开钱包" #: www/views/includes/incomingDataMenu.html:19 msgid "Open website" -msgstr "" +msgstr "打开网站" #: www/views/bitpayCardIntro.html:34 msgid "Order the BitPay Card" @@ -1970,6 +2053,11 @@ msgstr "支付明细" msgid "Payment request" msgstr "支付请求" +#: www/views/mercadoLibreCards.html:22 +#: www/views/modals/mercadolibre-card-details.html:39 +msgid "Pending" +msgstr "处理中" + #: www/views/proposals.html:4 msgid "Pending Proposals" msgstr "支付提议" @@ -2001,7 +2089,7 @@ msgstr "请输入钱包恢复短语" #: www/views/modals/pin.html:9 msgid "Please enter your PIN" -msgstr "" +msgstr "请输入你的PIN码" #: www/views/backup.html:46 msgid "Please tap each word in the correct order." @@ -2017,7 +2105,7 @@ msgstr "请选择你的备份文件" #: www/views/bitpayCard.html:81 msgid "Pre-Auth Holds" -msgstr "" +msgstr "预授权持有" #: www/views/tab-settings.html:40 msgid "Preferences" @@ -2031,7 +2119,7 @@ msgstr "正在准备地址..." msgid "Preparing backup..." msgstr "正在准备备份..." -#: src/js/routes.js:1188 +#: src/js/routes.js:1240 msgid "Press again to exit" msgstr "再按一次退出" @@ -2041,7 +2129,7 @@ msgstr "优先" #: www/views/includes/incomingDataMenu.html:80 msgid "Private Key" -msgstr "" +msgstr "私钥" #: src/js/controllers/paperWallet.js:137 msgid "Private key encrypted. Enter password" @@ -2069,13 +2157,17 @@ msgstr "建议删除" msgid "Proposal Rejected" msgstr "被拒绝的建议" -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:177 msgid "Proposals" msgstr "建议" #: src/js/controllers/buyAmazon.js:281 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" -msgstr "" +msgstr "每天最多购买{{limitPerDay}}{{currency}}" + +#: src/js/controllers/buyMercadoLibre.js:280 +msgid "Purchase amount must be a value between 50 and 2000" +msgstr "采购金额必须 50 到 2000年之间的值" #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" @@ -2117,7 +2209,7 @@ msgstr "接收" #: www/views/customAmount.html:46 msgid "Receive in" -msgstr "" +msgstr "在接收" #: www/views/includes/walletHistory.html:24 #: www/views/tx-details.html:18 @@ -2160,7 +2252,7 @@ msgstr "接收者" msgid "Recovery phrase" msgstr "恢复短语" -#: www/views/walletDetails.html:117 +#: www/views/walletDetails.html:116 #: www/views/walletDetails.html:36 msgid "Recreate" msgstr "重新创建" @@ -2169,6 +2261,10 @@ msgstr "重新创建" msgid "Recreating Wallet..." msgstr "正在重新创建的钱包..." +#: www/views/modals/mercadolibre-card-details.html:22 +msgid "Redeem now" +msgstr "立即兑现" + #: src/js/controllers/modals/txpDetails.js:57 #: src/js/controllers/tx-details.js:63 msgid "Rejected" @@ -2183,8 +2279,9 @@ msgid "Release information" msgstr "发布信息" #: www/views/addressbook.view.html:36 +#: www/views/modals/mercadolibre-card-details.html:69 msgid "Remove" -msgstr "" +msgstr "移除" #: src/js/controllers/preferencesBitpayServices.js:7 msgid "Remove BitPay Account?" @@ -2196,7 +2293,7 @@ msgstr "删除 BitPay 卡吗?" #: src/js/controllers/preferencesBitpayServices.js:8 msgid "Removing your BitPay account will remove all associated BitPay account data from this device. Are you sure you would like to remove your BitPay Account ({{email}}) from this device?" -msgstr "" +msgstr "从该设备删除您的 BitPay 帐户将删除所有关联的 BitPay 帐户数据。你确定你想要从这个设备中删除您的 BitPay 帐户:({{email}})?" #: www/views/join.html:113 #: www/views/join.html:121 @@ -2267,7 +2364,7 @@ msgstr "扫描资金的地址" #: www/views/modals/fingerprintCheck.html:11 msgid "Scan again" -msgstr "" +msgstr "重新扫描" #: src/js/services/fingerprintService.js:56 msgid "Scan your fingerprint please" @@ -2301,6 +2398,10 @@ msgstr "搜索您的货币" msgid "Security" msgstr "安全" +#: www/views/modals/mercadolibre-card-details.html:64 +msgid "See invoice" +msgstr "查看发票" + #: www/views/tab-import-file.html:7 msgid "Select a backup file" msgstr "选择备份文件" @@ -2337,7 +2438,7 @@ msgstr "寄钱" msgid "Send addresses by email" msgstr "通过电邮发送地址" -#: www/views/preferencesLogs.html:13 +#: www/views/includes/logOptions.html:17 #: www/views/tab-export-file.html:82 msgid "Send by email" msgstr "通过电邮发送" @@ -2352,7 +2453,7 @@ msgstr "发送最大数量" #: www/views/includes/incomingDataMenu.html:46 msgid "Send payment to this address" -msgstr "" +msgstr "付款到此地址" #: www/views/feedback/rateApp.html:17 msgid "Send us feedback instead" @@ -2401,8 +2502,9 @@ msgid "Server response could not be verified" msgstr "无法验证服务器响应" #: src/js/controllers/buyAmazon.js:96 +#: src/js/controllers/buyMercadoLibre.js:96 msgid "Service not available" -msgstr "" +msgstr "服务不可用" #: www/views/includes/homeIntegrations.html:3 msgid "Services" @@ -2422,7 +2524,7 @@ msgstr "设置密码" #: src/js/controllers/preferencesFee.js:84 msgid "Set your own fee in satoshis/byte" -msgstr "" +msgstr "设置你的费用(satoshi每字节)" #: www/views/tab-settings.html:3 #: www/views/tabs.html:19 @@ -2453,7 +2555,7 @@ msgstr "显示恢复短语" #: www/views/tab-receive.html:34 msgid "Show address" -msgstr "" +msgstr "显示地址" #: www/views/join.html:45 #: www/views/tab-create-personal.html:25 @@ -2500,8 +2602,9 @@ msgid "Slide" msgstr "滑动" #: www/views/buyAmazon.html:96 +#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" -msgstr "" +msgstr "滑动购买" #: src/js/controllers/create.js:83 #: src/js/controllers/join.js:68 @@ -2520,9 +2623,9 @@ msgstr "找不到花费提议" msgid "Spending Password needed" msgstr "需要支付密码" -#: www/views/walletDetails.html:162 +#: www/views/walletDetails.html:161 msgid "Spending this balance will need significant Bitcoin network fees" -msgstr "" +msgstr "这笔交易将需要非常高的比特币网络手续费" #: www/views/tab-send.html:28 msgid "Start sending bitcoin" @@ -2530,11 +2633,16 @@ msgstr "开始发送比特币" #: www/views/lockSetup.html:3 msgid "Startup Lock" -msgstr "" +msgstr "启动锁定" + +#: www/views/mercadoLibreCards.html:21 +#: www/views/modals/mercadolibre-card-details.html:42 +msgid "Still pending" +msgstr "仍然等待" #: www/views/topup.html:101 msgid "Success" -msgstr "" +msgstr "成功" #: src/js/services/feeService.js:14 msgid "Super Economy" @@ -2561,12 +2669,12 @@ msgstr "此操作无法撤消" msgid "Take control of your money,
get started with bitcoin." msgstr "把你的钱,
得到控制开始用比特币。" -#: www/views/walletDetails.html:140 -#: www/views/walletDetails.html:60 +#: www/views/walletDetails.html:139 +#: www/views/walletDetails.html:59 msgid "Tap and hold to show" msgstr "点击并按住以显示" -#: www/views/walletDetails.html:112 +#: www/views/walletDetails.html:111 #: www/views/walletDetails.html:31 msgid "Tap to retry" msgstr "点击以重试" @@ -2589,7 +2697,7 @@ msgstr "Testnet" #: www/views/includes/incomingDataMenu.html:61 msgid "Text" -msgstr "" +msgstr "文本" #: src/js/controllers/feedback/send.js:27 #: src/js/controllers/feedback/send.js:76 @@ -2724,13 +2832,13 @@ msgstr "此恢复短语是用密码创建。为了恢复此钱包,需要恢复 #: www/views/tx-details.html:93 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 "相对于当前比特币网络费,这笔交易金额太小。手续费相当于这笔交易金额本身。" #: www/views/tx-details.html:89 msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" -msgstr "" +msgstr "这笔交易可能需要很长的时间来确认或可能受到由发件人设置的低费用下降" -#: www/views/walletDetails.html:116 +#: www/views/walletDetails.html:115 #: www/views/walletDetails.html:35 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "此钱包不在给定的 Bitcore Wallet Service (BWS) 注册。你可以从本地信息重新创建它。" @@ -2759,23 +2867,24 @@ msgstr "若要开始,您将需要创建一个比特币的钱包,并获得一 #: src/js/services/bitpayAccountService.js:73 msgid "To {{reason}} you must first add your BitPay account - {{email}}" -msgstr "" +msgstr "到 {{reason}},您必须首先添加您的 BitPay 帐户-{{email}}" #: src/js/services/onGoingProcess.js:48 msgid "Top up in progress..." -msgstr "" +msgstr "在进展充值..." #: src/js/controllers/topup.js:205 msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" -msgstr "" +msgstr "充值 {{amountStr}},记入借方卡 ({{cardLastNumber}})" #: www/views/buyAmazon.html:61 +#: www/views/buyMercadoLibre.html:60 #: www/views/modals/wallet-balance.html:23 #: www/views/topup.html:70 msgid "Total" msgstr "总计" -#: www/views/walletDetails.html:185 +#: www/views/walletDetails.html:184 msgid "Total Locked Balance" msgstr "锁定结余的总额" @@ -2785,7 +2894,7 @@ msgstr "Copayers 的总数" #: www/views/addresses.html:81 msgid "Total wallet inputs" -msgstr "" +msgstr "钱包总共进账" #: src/js/services/fingerprintService.js:63 #: src/js/services/fingerprintService.js:68 @@ -2798,7 +2907,7 @@ msgstr "交易" #: www/views/confirm.html:128 msgid "Transaction Created" -msgstr "" +msgstr "交易记录已创建" #: www/views/preferencesAdvanced.html:29 #: www/views/preferencesHistory.html:3 @@ -2810,30 +2919,31 @@ msgid "Transaction already broadcasted" msgstr "交易已经广播" #: src/js/controllers/buyAmazon.js:306 +#: src/js/controllers/buyMercadoLibre.js:299 #: src/js/controllers/topup.js:279 msgid "Transaction has not been created" -msgstr "" +msgstr "交易记录尚未创建。" #: www/views/topup.html:104 msgid "Transaction initiated" -msgstr "" +msgstr "交易发起" #: src/js/controllers/tx-details.js:102 msgid "Transaction not available at this time" -msgstr "" +msgstr "交易记录暂时不可用" #: src/js/controllers/activity.js:45 #: src/js/controllers/tab-home.js:174 msgid "Transaction not found" msgstr "找不到交易" -#: www/views/modals/chooseFeeLevel.html:54 +#: www/views/modals/chooseFeeLevel.html:55 msgid "Transactions without fee are not supported." -msgstr "" +msgstr "不支持无率交易" #: src/js/controllers/paperWallet.js:110 msgid "Transfer to" -msgstr "" +msgstr "转账给" #: www/views/tab-send.html:67 msgid "Transfer to Wallet" @@ -2841,7 +2951,7 @@ msgstr "转移到钱包" #: www/views/modals/pin.html:13 msgid "Try again in {{expires}}" -msgstr "" +msgstr "在 {{expires}} 中再试一次" #: www/views/bitpayCardIntro.html:18 msgid "Turn bitcoin into dollars, swipe anywhere Visa® is accepted." @@ -2863,7 +2973,7 @@ msgstr "未确认" msgid "Unit" msgstr "单位" -#: www/views/walletDetails.html:179 +#: www/views/walletDetails.html:178 msgid "Unsent transactions" msgstr "未发送的交易" @@ -2883,7 +2993,7 @@ msgstr "可用的更新" msgid "Updating pending proposals. Please stand by" msgstr "正在更新挂起的建议。请袖手旁观" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:210 msgid "Updating transaction history. Please stand by." msgstr "更新交易历史记录。请等待。" @@ -2893,7 +3003,7 @@ msgstr "更新中… 请等待" #: src/js/services/feeService.js:10 msgid "Urgent" -msgstr "" +msgstr "非常快" #: www/views/advancedSettings.html:11 msgid "Use Unconfirmed Funds" @@ -2905,7 +3015,7 @@ msgstr "正在验证恢复短语。。。" #: www/views/modals/fingerprintCheck.html:4 msgid "Verify your identity" -msgstr "" +msgstr "验证您的身份" #: www/views/preferencesAbout.html:14 #: www/views/preferencesExternal.html:25 @@ -2937,7 +3047,11 @@ msgstr "查看更新" msgid "View on blockchain" msgstr "在 blockchain 上查看" -#: www/views/walletDetails.html:171 +#: www/views/mercadoLibre.html:26 +msgid "Visit mercadolivre.com.br →" +msgstr "访问 mercadolivre.com.br →" + +#: www/views/walletDetails.html:170 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "警告︰此设备/钱包无法运行钥匙衍生。无法在此钱包上执行操作。" @@ -2997,7 +3111,7 @@ msgstr "钱包信息" #: www/views/addresses.html:76 msgid "Wallet Inputs" -msgstr "" +msgstr "钱包总共进账" #: www/views/join.html:26 msgid "Wallet Invitation" @@ -3050,8 +3164,8 @@ msgid "Wallet already exists" msgstr "钱包已存在" #: src/js/services/profileService.js:498 -msgid "Wallet already in Copay" -msgstr "钱包已经在 Copay" +msgid "Wallet already in {{appName}}" +msgstr "已经在 {{appName}} 的钱包" #: www/views/includes/walletActivity.html:6 msgid "Wallet created" @@ -3083,7 +3197,7 @@ msgid "Wallet needs backup" msgstr "钱包需要备份" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:157 +#: www/views/walletDetails.html:156 msgid "Wallet not backed up" msgstr "未备份的钱包" @@ -3118,7 +3232,7 @@ msgstr "钱包 & 集成" #: src/js/controllers/addressbookView.js:23 #: src/js/controllers/modals/txpDetails.js:147 #: src/js/controllers/modals/txpDetails.js:164 -#: src/js/controllers/preferencesDelete.js:25 +#: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 msgid "Warning!" @@ -3142,15 +3256,15 @@ msgstr "我们会在下一个屏幕上确认。" #: src/js/controllers/feedback/send.js:77 msgid "We're always looking for ways to improve {{appName}}." -msgstr "" +msgstr "我们一直在寻找方法去改进{{appName}}" #: src/js/controllers/feedback/send.js:83 msgid "We're always looking for ways to improve {{appName}}. How could we improve your experience?" -msgstr "" +msgstr "我们一直在寻找方法去改进{{appName}}。我们该怎么改善您的使用体验?" #: www/views/includes/incomingDataMenu.html:6 msgid "Website" -msgstr "" +msgstr "网站" #: 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." @@ -3174,7 +3288,7 @@ msgstr "为什么?" #: www/views/feedback/rateApp.html:10 msgid "Would you be willing to rate {{appName}} in the app store?" -msgstr "" +msgstr "你会愿意率 {{appName}} app store 中的吗?" #: www/views/onboarding/notifications.html:4 msgid "Would you like to receive push notifications about payments?" @@ -3228,13 +3342,13 @@ msgstr "你可以换其他货币,如美元、 欧元或英镑。" msgid "You control your bitcoin." msgstr "您可以控制您的比特币。" -#: www/views/modals/chooseFeeLevel.html:63 +#: www/views/modals/chooseFeeLevel.html:64 msgid "You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte." -msgstr "" +msgstr "你不应设置高于 {{maxFeeRecommended}} satoshis/字节 的交易手续费。" #: www/views/modals/bitpay-card-confirmation.html:5 msgid "You will need to log back for fill in your BitPay Card." -msgstr "" +msgstr "您将需要登录回来为你 BitPay 卡填写。" #: www/views/preferencesNotifications.html:34 msgid "You'll receive email notifications about payments sent and received from your wallets." @@ -3242,7 +3356,12 @@ msgstr "在您的钱包进行付款操作时发送通知。" #: 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 "您的 BitPay 卡是准备好了。添加到您的卡开始使用它在商店和自动取款机全球基金。" + +#: www/views/mercadoLibre.html:57 +#: www/views/mercadoLibreCards.html:6 +msgid "Your Gift Cards" +msgstr "礼品卡" #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" @@ -3252,9 +3371,9 @@ msgstr "你的比特币钱包被备份 !" msgid "Your bitcoin wallet is ready!" msgstr "你的比特币钱包是准备好了 !" -#: www/views/modals/chooseFeeLevel.html:60 +#: www/views/modals/chooseFeeLevel.html:61 msgid "Your fee is lower than recommended." -msgstr "" +msgstr "你的交易手续费低于建议量。" #: www/views/feedback/send.html:42 msgid "Your ideas, feedback, or comments" @@ -3275,11 +3394,11 @@ msgstr "你的密码" #: www/views/buyAmazon.html:102 msgid "Your purchase could not be completed" -msgstr "" +msgstr "无法完成您的购买" #: www/views/buyAmazon.html:105 msgid "Your purchase was added to the list of pending" -msgstr "" +msgstr "您的购买被添加到列表的挂起" #: www/views/onboarding/backupRequest.html:10 msgid "Your wallet is never saved to cloud storage or standard device backups." @@ -3293,8 +3412,8 @@ msgstr "你的钱包钥匙将被加密。支付密码不能恢复。必须把它 #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:138 +#: www/views/walletDetails.html:58 msgid "[Balance Hidden]" msgstr "[隐藏余额]" @@ -3334,7 +3453,11 @@ msgstr "发送" #: src/js/controllers/buyAmazon.js:238 msgid "{{amountStr}} for Amazon.com Gift Card" -msgstr "" +msgstr "{{amountStr}} 为亚马逊礼品卡的" + +#: src/js/controllers/buyMercadoLibre.js:236 +msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" +msgstr "梅尔卡多里弗巴西礼品卡 {{amountStr}}" #: 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)." @@ -3346,14 +3469,14 @@ msgstr "{{fee}} 将比特币网络费用中扣除。" #: www/views/confirm.html:87 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" -msgstr "" +msgstr "发送量 {{tx.txp[wallet.id].feeRatePerStr}}" -#: www/views/walletDetails.html:212 +#: www/views/walletDetails.html:211 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "下载的 {{updatingTxHistoryProgress}} 交易" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:12 +#: www/views/includes/walletInfo.html:13 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "{{wallet.m}}{{wallet.n}}" From 2b34344c95d8efe8d03b109a8620f951bbca6e1a Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Tue, 29 Aug 2017 16:50:11 -0300 Subject: [PATCH 030/157] Feat: support ISO_4217 currency codes when searching --- src/js/controllers/preferencesAltCurrency.js | 5 +++-- src/sass/views/tab-settings.scss | 8 ++++++++ www/views/preferencesAltCurrency.html | 10 +++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/js/controllers/preferencesAltCurrency.js b/src/js/controllers/preferencesAltCurrency.js index 33c0e47fb..7c5792330 100644 --- a/src/js/controllers/preferencesAltCurrency.js +++ b/src/js/controllers/preferencesAltCurrency.js @@ -43,8 +43,9 @@ angular.module('copayApp.controllers').controller('preferencesAltCurrencyControl $scope.findCurrency = function(search) { if (!search) init(); $scope.altCurrencyList = lodash.filter(completeAlternativeList, function(item) { - var val = item.name; - return lodash.includes(val.toLowerCase(), search.toLowerCase()); + var val = item.name + var val2 = item.isoCode; + return lodash.includes(val.toLowerCase(), search.toLowerCase()) || lodash.includes(val2.toLowerCase(), search.toLowerCase()); }); $timeout(function() { $scope.$apply(); diff --git a/src/sass/views/tab-settings.scss b/src/sass/views/tab-settings.scss index 6e17b4d37..dcd2cfb6a 100644 --- a/src/sass/views/tab-settings.scss +++ b/src/sass/views/tab-settings.scss @@ -137,6 +137,14 @@ .log-level { font-weight: bold; } + .alt-currency-radio { + .item-content { + padding-right: 16px; + } + .radio-icon { + display: none; + } + } } #tab-settings { diff --git a/www/views/preferencesAltCurrency.html b/www/views/preferencesAltCurrency.html index c6b110f04..199bf0ebf 100644 --- a/www/views/preferencesAltCurrency.html +++ b/www/views/preferencesAltCurrency.html @@ -15,14 +15,14 @@
- {{lastUsedAltCurrency.name}} + {{lastUsedAltCurrency.name}} {{lastUsedAltCurrency.isoCode}}
- {{altCurrency.name}} - +
{{altCurrency.name}} {{altCurrency.isoCode}} +
Date: Wed, 30 Aug 2017 10:25:53 -0300 Subject: [PATCH 031/157] read more about amount too low warning --- src/js/controllers/tx-details.js | 10 ++++++++++ src/sass/views/includes/txp-details.scss | 3 +++ www/views/tx-details.html | 6 ++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index 0c277e469..ebd44f6a5 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -40,6 +40,16 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio }); }); + $scope.readMore = function() { + var url = 'https://github.com/bitpay/copay/wiki/COPAY---FAQ#amount-too-low-to-spend'; + var optIn = true; + var title = null; + var message = gettextCatalog.getString('Read more in our Wiki'); + var okText = gettextCatalog.getString('Open'); + var cancelText = gettextCatalog.getString('Go Back'); + externalLinkService.open(url, optIn, title, message, okText, cancelText); + }; + function updateMemo() { walletService.getTxNote($scope.wallet, $scope.btx.txid, function(err, note) { if (err) { diff --git a/src/sass/views/includes/txp-details.scss b/src/sass/views/includes/txp-details.scss index 8d21570f4..3c72898c3 100644 --- a/src/sass/views/includes/txp-details.scss +++ b/src/sass/views/includes/txp-details.scss @@ -99,6 +99,9 @@ i { padding-right: 20px; } + span { + display: inline; + } } } .toggle-unconfirmed { diff --git a/www/views/tx-details.html b/www/views/tx-details.html index de7ab9977..879273f03 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -91,9 +91,11 @@
-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. + 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. Read more +
- +
Confirmations From a9a271fdb7f4f9b228ca30cf6c04b82608fafd45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Donad=C3=ADo?= Date: Wed, 30 Aug 2017 11:10:07 -0300 Subject: [PATCH 032/157] Remove duplicated translate directive --- www/views/tx-details.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/tx-details.html b/www/views/tx-details.html index 879273f03..fbf1cc6ab 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -92,7 +92,7 @@ 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. Read more + to the funds itself. Read more
From bf0f5f451a4502e877713365c187e84b8a913ff1 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 14:52:30 -0300 Subject: [PATCH 033/157] Bug fixes UI from walletDetails --- src/js/controllers/walletDetails.js | 4 +- src/sass/views/walletDetails.scss | 34 ++++- www/views/includes/walletInfo.html | 3 +- www/views/walletDetails.html | 184 ++++++++-------------------- 4 files changed, 86 insertions(+), 139 deletions(-) diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index f8b77cb59..912086c79 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -156,9 +156,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun var updateTxHistory = function(cb) { if (!cb) cb = function() {}; - if ($scope.updatingTxHistory) return; - $scope.updatingTxHistory = true; $scope.updateTxHistoryError = false; $scope.updatingTxHistoryProgress = 0; @@ -358,6 +356,8 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun if (!$scope.wallet) return; $scope.requiresMultipleSignatures = $scope.wallet.credentials.m > 1; + $scope.updatingTxHistory = true; + addressbookService.list(function(err, ab) { if (err) $log.error(err); $scope.addressbook = ab || {}; diff --git a/src/sass/views/walletDetails.scss b/src/sass/views/walletDetails.scss index 9553bf489..a3ef99348 100644 --- a/src/sass/views/walletDetails.scss +++ b/src/sass/views/walletDetails.scss @@ -88,6 +88,27 @@ padding: 1rem; background: #f8f8f9; } + + &__no-transaction { + color: $v-mid-gray; + font-size: 12.5px; + text-align: center; + padding-top: 2rem; + } + + &__no-update-history { + color: $v-error-color; + font-size: 12.5px; + text-align: center; + padding-top: 2rem; + } + + &__updating-history { + color: $v-mid-gray; + font-size: 12.5px; + text-align: center; + padding-top: 1rem; + } } #walletDetails { @@ -177,10 +198,6 @@ align-items: center; justify-content: center; - &.collapsible { - margin-bottom: 10px; - } - &__balance { -webkit-transform: scale3d(1, 1, 1) translateY(45px); transform: scale3d(1, 1, 1) translateY(45px); @@ -200,6 +217,15 @@ border: 1px solid rgba(255,255,255,0.25); } + &__error { + cursor: pointer; + font-size: 14px; + padding: 35px 20px; + } + + } + .no-alternative { + padding-top: 45px; } .item.item-footer { font-weight: lighter; diff --git a/www/views/includes/walletInfo.html b/www/views/includes/walletInfo.html index e0690f6ad..1ddcc4904 100644 --- a/www/views/includes/walletInfo.html +++ b/www/views/includes/walletInfo.html @@ -1,5 +1,6 @@ - +
Auditable diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index 4e7809f25..61bc9e1f4 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -14,72 +14,59 @@
-
+
-
-
- {{updateStatusError}} - Tap to retry -
+
+ {{updateStatusError}} +
-
- This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information. - Recreate -
+
+ This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information. +
+
+ {{status.totalBalanceStr}}
- {{status.totalBalanceStr}} -
- {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}} -
-
- -
- [Balance Hidden] -
- Tap and hold to show -
-
- -
- -
- -
-
-
- ... + class="size-14 amount-alternative" + ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'" + ng-style="{opacity: altAmountOpacity}"> + {{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
+ +
+ [Balance Hidden] +
+ Tap and hold to show +
+
+ +
+ +
+
@@ -94,77 +81,17 @@ on-refresh="onRefresh()"> -
-
-
-
- -
- {{updateStatusError}} - Tap to retry -
- -
- This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information. - Recreate -
- -
- {{status.totalBalanceStr}} -
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
-
- -
- -
- -
- [Balance Hidden] -
- Tap and hold to show -
-
-
-
-
- ... -
-
-
- -
- -
-
- Wallet not backed up - Spending this balance will need significant Bitcoin network fees -
-
+
+
@@ -189,37 +116,30 @@ -
No transactions yet
-
Could not update transaction history
-
-
- -
-
-
- Updating transaction history. Please stand by.
- {{updatingTxHistoryProgress}} transactions downloaded -
-
+
+ Updating transaction history. Please stand by.
+ {{updatingTxHistoryProgress}} transactions downloaded
-
+
From 94363704abd33a2c8a54f6cf14cb24f507169bd9 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 24 Aug 2017 17:02:49 -0300 Subject: [PATCH 034/157] Adds bitcoin cash basic support (unit convertion, integrations, request specific amount, etc) --- src/js/controllers/addresses.js | 6 +- src/js/controllers/amount.js | 13 +- src/js/controllers/buyAmazon.js | 7 +- src/js/controllers/buyCoinbase.js | 152 +++++++------- src/js/controllers/buyGlidera.js | 71 ++++--- src/js/controllers/buyMercadoLibre.js | 7 +- src/js/controllers/confirm.js | 44 ++--- src/js/controllers/customAmount.js | 22 ++- src/js/controllers/modals/txpDetails.js | 2 +- src/js/controllers/sellCoinbase.js | 250 ++++++++++++------------ src/js/controllers/sellGlidera.js | 76 +++---- src/js/controllers/tab-receive.js | 3 +- src/js/controllers/topup.js | 7 +- src/js/controllers/tx-details.js | 2 +- src/js/filters/filters.js | 4 +- src/js/routes.js | 21 +- src/js/services/configService.js | 8 + src/js/services/feeService.js | 1 - src/js/services/profileService.js | 17 +- src/js/services/txFormatService.js | 34 ++-- src/js/services/walletService.js | 38 ++-- src/sass/views/amount.scss | 14 +- www/views/amount.html | 11 +- www/views/customAmount.html | 2 +- 24 files changed, 443 insertions(+), 369 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index 47ec668ce..3bc0b4fea 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -88,9 +88,9 @@ angular.module('copayApp.controllers').controller('addressesController', functio $scope.lowWarning = resp.warning; $scope.lowUtxosNb = resp.lowUtxos.length; $scope.allUtxosNb = resp.allUtxos.length; - $scope.lowUtxosSum = txFormatService.formatAmountStr(lodash.sum(resp.lowUtxos || 0, 'satoshis')); - $scope.allUtxosSum = txFormatService.formatAmountStr(allSum); - $scope.minFee = txFormatService.formatAmountStr(resp.minFee || 0); + $scope.lowUtxosSum = txFormatService.formatAmountStr($scope.wallet, lodash.sum(resp.lowUtxos || 0, 'satoshis')); + $scope.allUtxosSum = txFormatService.formatAmountStr($scope.wallet, allSum); + $scope.minFee = txFormatService.formatAmountStr($scope.wallet, resp.minFee || 0); $scope.minFeePer = per.toFixed(2) + '%'; diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 99912b99f..55c101024 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -21,6 +21,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.nextStep = data.stateParams.nextStep; $scope.currency = data.stateParams.currency; $scope.forceCurrency = data.stateParams.forceCurrency; + $scope.forceChain = data.stateParams.forceChain || null; + $scope.chain = $scope.forceChain || data.stateParams.chain || 'BTC'; $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || $ionicHistory.backView().stateName == 'tabs.bitpayCard'); @@ -63,7 +65,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ }); var config = configService.getSync().wallet.settings; - $scope.unitName = config.unitName; if (data.stateParams.currency) { $scope.alternativeIsoCode = data.stateParams.currency; } else { @@ -124,6 +125,12 @@ angular.module('copayApp.controllers').controller('amountController', function($ } }; + $scope.toggleChain = function() { + if ($scope.forceCurrency || $scope.forceChain) return; + + $scope.chain = $scope.chain == 'BTC' ? 'BCH' : 'BTC'; + }; + function checkFontSize() { if ($scope.amount && $scope.amount.length >= SMALL_FONT_SIZE_LIMIT) $scope.smallFont = true; else $scope.smallFont = false; @@ -227,7 +234,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ $state.transitionTo($scope.nextStep, { id: _id, amount: $scope.useSendMax ? null : _amount, - currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : $scope.unitName, + currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : $scope.chain, + chain: $scope.chain, useSendMax: $scope.useSendMax }); } else { @@ -239,6 +247,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ toName: $scope.toName, toEmail: $scope.toEmail, toColor: $scope.toColor, + chain: $scope.chain, useSendMax: $scope.useSendMax }); } diff --git a/src/js/controllers/buyAmazon.js b/src/js/controllers/buyAmazon.js index 986b2c908..e2418e80e 100644 --- a/src/js/controllers/buyAmazon.js +++ b/src/js/controllers/buyAmazon.js @@ -216,7 +216,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio }); var initialize = function(wallet) { - var parsedAmount = txFormatService.parseAmount(amount, currency); + var parsedAmount = txFormatService.parseAmount(wallet, amount, currency); $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { @@ -260,7 +260,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio invoiceUrl: invoice.url, invoiceTime: invoice.invoiceTime }; - $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); }); }); @@ -292,7 +292,8 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - hasFunds: true + hasFunds: true, + chain: 'BTC' }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js index 57a95a0c7..57d9db779 100644 --- a/src/js/controllers/buyCoinbase.js +++ b/src/js/controllers/buyCoinbase.js @@ -33,6 +33,52 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct } }; + var processPaymentInfo = function() { + ongoingProcess.set('connectingCoinbase', true); + coinbaseService.init(function(err, res) { + if (err) { + ongoingProcess.set('connectingCoinbase', false); + showErrorAndBack(err); + return; + } + var accessToken = res.accessToken; + + coinbaseService.buyPrice(accessToken, coinbaseService.getAvailableCurrency(), function(err, b) { + $scope.buyPrice = b.data || null; + }); + + $scope.paymentMethods = []; + $scope.selectedPaymentMethodId = { value : null }; + coinbaseService.getPaymentMethods(accessToken, function(err, p) { + if (err) { + ongoingProcess.set('connectingCoinbase', false); + showErrorAndBack(err); + return; + } + + var hasPrimary; + var pm; + for(var i = 0; i < p.data.length; i++) { + pm = p.data[i]; + if (pm.allow_buy) { + $scope.paymentMethods.push(pm); + } + if (pm.allow_buy && pm.primary_buy) { + hasPrimary = true; + $scope.selectedPaymentMethodId.value = pm.id; + } + } + if (lodash.isEmpty($scope.paymentMethods)) { + ongoingProcess.set('connectingCoinbase', false); + showErrorAndBack('No payment method available to buy'); + return; + } + if (!hasPrimary) $scope.selectedPaymentMethodId.value = $scope.paymentMethods[0].id; + $scope.buyRequest(); + }); + }); + }; + $scope.$on("$ionicView.beforeLeave", function(event, data) { $ionicConfig.views.swipeBackEnabled(true); }); @@ -42,81 +88,22 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'bits' && data.stateParams.currency != 'BTC' ? true : false; - var parsedAmount = txFormatService.parseAmount( - data.stateParams.amount, - data.stateParams.currency); + $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + amount = data.stateParams.amount; + currency = data.stateParams.currency; - // Buy always in BTC - amount = (parsedAmount.amountSat / 100000000).toFixed(8); - currency = 'BTC'; - - $scope.amountUnitStr = parsedAmount.amountUnitStr; - - ongoingProcess.set('calculatingFee', true); - coinbaseService.checkEnoughFundsForFee(amount, function(err) { - ongoingProcess.set('calculatingFee', false); - if (err) { - showErrorAndBack(err); - return; - } - - $scope.network = coinbaseService.getNetwork(); - $scope.wallets = profileService.getWallets({ - onlyComplete: true, - network: $scope.network - }); - - if (lodash.isEmpty($scope.wallets)) { - showErrorAndBack('No wallets available'); - return; - } - $scope.wallet = $scope.wallets[0]; // Default first wallet - - ongoingProcess.set('connectingCoinbase', true); - coinbaseService.init(function(err, res) { - if (err) { - ongoingProcess.set('connectingCoinbase', false); - showErrorAndBack(err); - return; - } - var accessToken = res.accessToken; - - coinbaseService.buyPrice(accessToken, coinbaseService.getAvailableCurrency(), function(err, b) { - $scope.buyPrice = b.data || null; - }); - - $scope.paymentMethods = []; - $scope.selectedPaymentMethodId = { value : null }; - coinbaseService.getPaymentMethods(accessToken, function(err, p) { - if (err) { - ongoingProcess.set('connectingCoinbase', false); - showErrorAndBack(err); - return; - } - - var hasPrimary; - var pm; - for(var i = 0; i < p.data.length; i++) { - pm = p.data[i]; - if (pm.allow_buy) { - $scope.paymentMethods.push(pm); - } - if (pm.allow_buy && pm.primary_buy) { - hasPrimary = true; - $scope.selectedPaymentMethodId.value = pm.id; - } - } - if (lodash.isEmpty($scope.paymentMethods)) { - ongoingProcess.set('connectingCoinbase', false); - showErrorAndBack('No payment method available to buy'); - return; - } - if (!hasPrimary) $scope.selectedPaymentMethodId.value = $scope.paymentMethods[0].id; - $scope.buyRequest(); - }); - }); + $scope.network = coinbaseService.getNetwork(); + $scope.wallets = profileService.getWallets({ + onlyComplete: true, + network: $scope.network, + chain: 'BTC' }); + + if (lodash.isEmpty($scope.wallets)) { + showErrorAndBack('No wallets available'); + return; + } + $scope.onWalletSelect($scope.wallets[0]); // Default first wallet }); $scope.buyRequest = function() { @@ -248,6 +235,25 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + var parsedAmount = txFormatService.parseAmount( + wallet, + amount, + currency); + + // Buy always in BTC + amount = (parsedAmount.amountSat / 100000000).toFixed(8); + currency = 'BTC'; + + $scope.amountUnitStr = parsedAmount.amountUnitStr; + ongoingProcess.set('calculatingFee', true); + coinbaseService.checkEnoughFundsForFee(amount, function(err) { + ongoingProcess.set('calculatingFee', false); + if (err) { + showErrorAndBack(err); + return; + } + processPaymentInfo(); + }); }; $scope.goBackHome = function() { diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js index 46d0c3238..3b0ef1265 100644 --- a/src/js/controllers/buyGlidera.js +++ b/src/js/controllers/buyGlidera.js @@ -35,36 +35,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi } }; - $scope.$on("$ionicView.beforeLeave", function(event, data) { - $ionicConfig.views.swipeBackEnabled(true); - }); - - $scope.$on("$ionicView.enter", function(event, data) { - $ionicConfig.views.swipeBackEnabled(false); - }); - - $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'bits' && data.stateParams.currency != 'BTC' ? true : false; - var parsedAmount = txFormatService.parseAmount( - data.stateParams.amount, - data.stateParams.currency); - - amount = parsedAmount.amount; - currency = parsedAmount.currency; - $scope.amountUnitStr = parsedAmount.amountUnitStr; - - $scope.network = glideraService.getNetwork(); - $scope.wallets = profileService.getWallets({ - onlyComplete: true, - network: $scope.network - }); - - if (lodash.isEmpty($scope.wallets)) { - showErrorAndBack('No wallets available'); - return; - } - $scope.wallet = $scope.wallets[0]; // Default first wallet - + var processPaymentInfo = function() { ongoingProcess.set('connectingGlidera', true); glideraService.init(function(err, data) { if (err) { @@ -88,6 +59,33 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi $scope.buyInfo = buy; }); }); + }; + + $scope.$on("$ionicView.beforeLeave", function(event, data) { + $ionicConfig.views.swipeBackEnabled(true); + }); + + $scope.$on("$ionicView.enter", function(event, data) { + $ionicConfig.views.swipeBackEnabled(false); + }); + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + amount = data.stateParams.amount; + currency = data.stateParams.currency; + + $scope.network = glideraService.getNetwork(); + $scope.wallets = profileService.getWallets({ + onlyComplete: true, + network: $scope.network, + chain: 'BTC' + }); + + if (lodash.isEmpty($scope.wallets)) { + showErrorAndBack('No wallets available'); + return; + } + $scope.onWalletSelect($scope.wallets[0]); // Default first wallet }); var ask2FaCode = function(mode, cb) { @@ -105,7 +103,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi popupService.showPrompt(title, message, null, function(twoFaCode) { if (typeof twoFaCode == 'undefined') return cb(); return cb(twoFaCode); - }); + }); } else { return cb(); } @@ -116,7 +114,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi var okText = 'Confirm'; var cancelText = 'Cancel'; popupService.showConfirm(null, message, okText, cancelText, function(ok) { - if (!ok) return; + if (!ok) return; ongoingProcess.set('buyingBitcoin', true, statusChangeHandler); glideraService.get2faCode($scope.token, function(err, tfa) { if (err) { @@ -162,6 +160,15 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + var parsedAmount = txFormatService.parseAmount( + wallet, + amount, + currency); + + amount = parsedAmount.amount; + currency = parsedAmount.currency; + $scope.amountUnitStr = parsedAmount.amountUnitStr; + processPaymentInfo(); }; $scope.goBackHome = function() { diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index fa01a6143..a89a38d83 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -214,7 +214,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f }); var initialize = function(wallet) { - var parsedAmount = txFormatService.parseAmount(amount, currency); + var parsedAmount = txFormatService.parseAmount(wallet, amount, currency); $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { @@ -258,7 +258,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f invoiceUrl: invoice.url, invoiceTime: invoice.invoiceTime }; - $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); }); }); @@ -284,7 +284,8 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f $scope.network = mercadoLibreService.getNetwork(); $scope.wallets = profileService.getWallets({ onlyComplete: true, - network: $scope.network + network: $scope.network, + chain: 'BTC' }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index eff5aa4b2..4135ec4b3 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -69,14 +69,15 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.$on("$ionicView.beforeEnter", function(event, data) { - function setWalletSelector(network, minAmount, cb) { + function setWalletSelector(chain, network, minAmount, cb) { // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; $scope.wallets = profileService.getWallets({ onlyComplete: true, - network: network + network: network, + chain: chain }); if (!$scope.wallets || !$scope.wallets.length) { @@ -137,6 +138,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, network: (new bitcore.Address(data.stateParams.toAddress)).network.name, + chain: data.stateParams.chain || 'BTC', txp: {}, }; @@ -146,23 +148,21 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.isWindowsPhoneApp = isWindowsPhoneApp; $scope.showAddress = false; - updateTx(tx, null, {}, function() { - $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); + $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); - setWalletSelector(tx.network, tx.toAmount, function(err) { - if (err) { - return exitWithError('Could not update wallets'); - } - - if ($scope.wallets.length > 1) { - $scope.showWalletSelector(); - } else if ($scope.wallets.length) { - setWallet($scope.wallets[0], tx); - } - }); + setWalletSelector(tx.chain, tx.network, tx.toAmount, function(err) { + if (err) { + return exitWithError('Could not update wallets'); + } + if ($scope.wallets.length > 1) { + $scope.showWalletSelector(); + } else if ($scope.wallets.length) { + setWallet($scope.wallets[0], tx); + } }); + }); @@ -238,7 +238,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( if (!tx.toAmount) return; // Amount - tx.amountStr = txFormatService.formatAmountStr(tx.toAmount); + tx.amountStr = txFormatService.formatAmountStr(wallet, tx.toAmount); tx.amountValueStr = tx.amountStr.split(' ')[0]; tx.amountUnitStr = tx.amountStr.split(' ')[1]; txFormatService.formatAlternativeStr(tx.toAmount, function(v) { @@ -280,7 +280,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( tx.sendMaxInfo = sendMaxInfo; tx.toAmount = tx.sendMaxInfo.amount; updateAmount(); - showSendMaxWarning(sendMaxInfo); + showSendMaxWarning(wallet, sendMaxInfo); } // txp already generated for this wallet? @@ -292,7 +292,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( getTxp(lodash.clone(tx), wallet, opts.dryRun, function(err, txp) { if (err) return cb(err); - txp.feeStr = txFormatService.formatAmountStr(txp.fee); + txp.feeStr = txFormatService.formatAmountStr(wallet, txp.fee); txFormatService.formatAlternativeStr(txp.fee, function(v) { txp.alternativeFeeStr = v; }); @@ -337,26 +337,26 @@ angular.module('copayApp.controllers').controller('confirmController', function( }; - function showSendMaxWarning(sendMaxInfo) { + function showSendMaxWarning(wallet, sendMaxInfo) { function verifyExcludedUtxos() { var warningMsg = []; if (sendMaxInfo.utxosBelowFee > 0) { warningMsg.push(gettextCatalog.getString("A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided.", { - amountBelowFeeStr: txFormatService.formatAmountStr(sendMaxInfo.amountBelowFee) + amountBelowFeeStr: txFormatService.formatAmountStr(wallet, sendMaxInfo.amountBelowFee) })); } if (sendMaxInfo.utxosAboveMaxSize > 0) { warningMsg.push(gettextCatalog.getString("A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded.", { - amountAboveMaxSizeStr: txFormatService.formatAmountStr(sendMaxInfo.amountAboveMaxSize) + amountAboveMaxSizeStr: txFormatService.formatAmountStr(wallet, sendMaxInfo.amountAboveMaxSize) })); } return warningMsg.join('\n'); }; var msg = gettextCatalog.getString("{{fee}} will be deducted for bitcoin networking fees.", { - fee: txFormatService.formatAmountStr(sendMaxInfo.fee) + fee: txFormatService.formatAmountStr(wallet, sendMaxInfo.fee) }); var warningMsg = verifyExcludedUtxos(); diff --git a/src/js/controllers/customAmount.js b/src/js/controllers/customAmount.js index 9a2b46f6c..093edd568 100644 --- a/src/js/controllers/customAmount.js +++ b/src/js/controllers/customAmount.js @@ -15,7 +15,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func showErrorAndBack('Error', 'No wallet selected'); return; } - + $scope.showShareButton = platformInfo.isCordova ? (platformInfo.isIOS ? 'iOS' : 'Android') : null; $scope.wallet = profileService.getWallet(walletId); @@ -25,11 +25,13 @@ angular.module('copayApp.controllers').controller('customAmountController', func showErrorAndBack('Error', 'Could not get the address'); return; } - + $scope.address = addr; - + + $scope.chain = (data.stateParams.chain).toLowerCase(); var parsedAmount = txFormatService.parseAmount( - data.stateParams.amount, + $scope.wallet, + data.stateParams.amount, data.stateParams.currency); // Amount in USD or BTC @@ -37,16 +39,16 @@ angular.module('copayApp.controllers').controller('customAmountController', func var currency = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; - if (currency != 'BTC') { - // Convert to BTC + if (currency != 'BTC' && currency != 'BCH') { + // Convert to BTC or BCH var config = configService.getSync().wallet.settings; var amountUnit = txFormatService.satToUnit(parsedAmount.amountSat); - var btcParsedAmount = txFormatService.parseAmount(amountUnit, config.unitName); - + var btcParsedAmount = txFormatService.parseAmount($scope.wallet, amountUnit, $scope.wallet.chain); + $scope.amountBtc = btcParsedAmount.amount; $scope.altAmountStr = btcParsedAmount.amountUnitStr; } else { - $scope.amountBtc = amount; // BTC + $scope.amountBtc = amount; // BTC or BCH $scope.altAmountStr = txFormatService.formatAlternativeStr(parsedAmount.amountSat); } }); @@ -66,7 +68,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func } $scope.copyToClipboard = function() { - return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc; + return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&chain=' + $scope.chain; }; }); diff --git a/src/js/controllers/modals/txpDetails.js b/src/js/controllers/modals/txpDetails.js index 68c6d0778..79c8738c6 100644 --- a/src/js/controllers/modals/txpDetails.js +++ b/src/js/controllers/modals/txpDetails.js @@ -219,7 +219,7 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi copayerId: $scope.wallet.credentials.copayerId }); - $scope.tx = txFormatService.processTx(tx); + $scope.tx = txFormatService.processTx($scope.wallet, tx); if (!action && tx.status == 'pending') $scope.tx.pendingForUs = true; diff --git a/src/js/controllers/sellCoinbase.js b/src/js/controllers/sellCoinbase.js index c6fd31f58..3bee99602 100644 --- a/src/js/controllers/sellCoinbase.js +++ b/src/js/controllers/sellCoinbase.js @@ -34,124 +34,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func }, onSendStatusChange); }; - var checkTransaction = lodash.throttle(function(count, txp) { - $log.warn('Check if transaction has been received by Coinbase. Try ' + count + '/5'); - // TX amount in BTC - var satToBtc = 1 / 100000000; - var amountBTC = (txp.amount * satToBtc).toFixed(8); - coinbaseService.init(function(err, res) { - if (err) { - $log.error(err); - checkTransaction(count, txp); - return; - } - var accessToken = res.accessToken; - var accountId = res.accountId; - var sellPrice = null; - - coinbaseService.sellPrice(accessToken, coinbaseService.getAvailableCurrency(), function(err, sell) { - if (err) { - $log.debug(err); - checkTransaction(count, txp); - return; - } - sellPrice = sell.data; - - coinbaseService.getTransactions(accessToken, accountId, function(err, ctxs) { - if (err) { - $log.debug(err); - checkTransaction(count, txp); - return; - } - - var coinbaseTransactions = ctxs.data; - var txFound = false; - var ctx; - for(var i = 0; i < coinbaseTransactions.length; i++) { - ctx = coinbaseTransactions[i]; - if (ctx.type == 'send' && ctx.from && ctx.amount.amount == amountBTC ) { - $log.warn('Transaction found!', ctx); - txFound = true; - $log.debug('Saving transaction to process later...'); - ctx['payment_method'] = $scope.selectedPaymentMethodId.value; - ctx['status'] = 'pending'; // Forcing "pending" status to process later - ctx['price_sensitivity'] = $scope.selectedPriceSensitivity.data; - ctx['sell_price_amount'] = sellPrice ? sellPrice.amount : ''; - ctx['sell_price_currency'] = sellPrice ? sellPrice.currency : 'USD'; - ctx['description'] = appConfigService.nameCase + ' Wallet: ' + $scope.wallet.name; - coinbaseService.savePendingTransaction(ctx, null, function(err) { - ongoingProcess.set('sellingBitcoin', false, statusChangeHandler); - if (err) $log.debug(err); - }); - return; - } - } - if (!txFound) { - // Transaction sent, but could not be verified by Coinbase.com - $log.warn('Transaction not found in Coinbase.'); - if (count < 5) { - checkTransaction(count + 1, txp); - } else { - ongoingProcess.set('sellingBitcoin', false, statusChangeHandler); - showError('No transaction found'); - return; - } - } - }); - }); - }); - }, 8000, { - 'leading': true - }); - - var statusChangeHandler = function (processName, showName, isOn) { - $log.debug('statusChangeHandler: ', processName, showName, isOn); - if ( processName == 'sellingBitcoin' && !isOn) { - $scope.sendStatus = 'success'; - $timeout(function() { - $scope.$digest(); - }, 100); - } else if (showName) { - $scope.sendStatus = showName; - } - }; - - $scope.$on("$ionicView.beforeLeave", function(event, data) { - $ionicConfig.views.swipeBackEnabled(true); - }); - - $scope.$on("$ionicView.enter", function(event, data) { - $ionicConfig.views.swipeBackEnabled(false); - }); - - $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'bits' && data.stateParams.currency != 'BTC' ? true : false; - var parsedAmount = txFormatService.parseAmount( - data.stateParams.amount, - data.stateParams.currency); - - amount = parsedAmount.amount; - currency = parsedAmount.currency; - $scope.amountUnitStr = parsedAmount.amountUnitStr; - - $scope.priceSensitivity = coinbaseService.priceSensitivity; - $scope.selectedPriceSensitivity = { data: coinbaseService.selectedPriceSensitivity }; - - $scope.network = coinbaseService.getNetwork(); - $scope.wallets = profileService.getWallets({ - m: 1, // Only 1-signature wallet - onlyComplete: true, - network: $scope.network, - hasFunds: true, - minAmount: parsedAmount.amountSat - }); - - if (lodash.isEmpty($scope.wallets)) { - showErrorAndBack('Insufficient funds'); - return; - } - $scope.wallet = $scope.wallets[0]; // Default first wallet - + var processPaymentInfo = function() { ongoingProcess.set('connectingCoinbase', true); coinbaseService.init(function(err, res) { if (err) { @@ -193,7 +76,121 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func if (!hasPrimary) $scope.selectedPaymentMethodId.value = $scope.paymentMethods[0].id; $scope.sellRequest(); }); - }); + }); + }; + + var checkTransaction = lodash.throttle(function(count, txp) { + $log.warn('Check if transaction has been received by Coinbase. Try ' + count + '/5'); + // TX amount in BTC + var satToBtc = 1 / 100000000; + var amountBTC = (txp.amount * satToBtc).toFixed(8); + coinbaseService.init(function(err, res) { + if (err) { + $log.error(err); + checkTransaction(count, txp); + return; + } + var accessToken = res.accessToken; + var accountId = res.accountId; + var sellPrice = null; + + coinbaseService.sellPrice(accessToken, coinbaseService.getAvailableCurrency(), function(err, sell) { + if (err) { + $log.debug(err); + checkTransaction(count, txp); + return; + } + sellPrice = sell.data; + + coinbaseService.getTransactions(accessToken, accountId, function(err, ctxs) { + if (err) { + $log.debug(err); + checkTransaction(count, txp); + return; + } + + var coinbaseTransactions = ctxs.data; + var txFound = false; + var ctx; + for(var i = 0; i < coinbaseTransactions.length; i++) { + ctx = coinbaseTransactions[i]; + if (ctx.type == 'send' && ctx.from && ctx.amount.amount == amountBTC ) { + $log.warn('Transaction found!', ctx); + txFound = true; + $log.debug('Saving transaction to process later...'); + ctx['payment_method'] = $scope.selectedPaymentMethodId.value; + ctx['status'] = 'pending'; // Forcing "pending" status to process later + ctx['price_sensitivity'] = $scope.selectedPriceSensitivity.data; + ctx['sell_price_amount'] = sellPrice ? sellPrice.amount : ''; + ctx['sell_price_currency'] = sellPrice ? sellPrice.currency : 'USD'; + ctx['description'] = appConfigService.nameCase + ' Wallet: ' + $scope.wallet.name; + coinbaseService.savePendingTransaction(ctx, null, function(err) { + ongoingProcess.set('sellingBitcoin', false, statusChangeHandler); + if (err) $log.debug(err); + }); + return; + } + } + if (!txFound) { + // Transaction sent, but could not be verified by Coinbase.com + $log.warn('Transaction not found in Coinbase.'); + if (count < 5) { + checkTransaction(count + 1, txp); + } else { + ongoingProcess.set('sellingBitcoin', false, statusChangeHandler); + showError('No transaction found'); + return; + } + } + }); + }); + }); + }, 8000, { + 'leading': true + }); + + var statusChangeHandler = function (processName, showName, isOn) { + $log.debug('statusChangeHandler: ', processName, showName, isOn); + if ( processName == 'sellingBitcoin' && !isOn) { + $scope.sendStatus = 'success'; + $timeout(function() { + $scope.$digest(); + }, 100); + } else if (showName) { + $scope.sendStatus = showName; + } + }; + + $scope.$on("$ionicView.beforeLeave", function(event, data) { + $ionicConfig.views.swipeBackEnabled(true); + }); + + $scope.$on("$ionicView.enter", function(event, data) { + $ionicConfig.views.swipeBackEnabled(false); + }); + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + amount = data.stateParams.amount; + currency = data.stateParams.currency; + + $scope.priceSensitivity = coinbaseService.priceSensitivity; + $scope.selectedPriceSensitivity = { data: coinbaseService.selectedPriceSensitivity }; + + $scope.network = coinbaseService.getNetwork(); + $scope.wallets = profileService.getWallets({ + m: 1, // Only 1-signature wallet + onlyComplete: true, + network: $scope.network, + hasFunds: true, + chain: 'BTC' + }); + + if (lodash.isEmpty($scope.wallets)) { + showErrorAndBack('Insufficient funds'); + return; + } + $scope.onWalletSelect($scope.wallets[0]); // Default first wallet }); $scope.sellRequest = function() { @@ -236,7 +233,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func var cancelText = 'Cancel'; popupService.showConfirm(null, message, okText, cancelText, function(ok) { if (!ok) return; - + ongoingProcess.set('sellingBitcoin', true, statusChangeHandler); coinbaseService.init(function(err, res) { if (err) { @@ -294,8 +291,8 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func checkTransaction(1, txSent); }); }); - }); - }); + }); + }); }); }; @@ -306,6 +303,15 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + var parsedAmount = txFormatService.parseAmount( + wallet, + amount, + currency); + + amount = parsedAmount.amount; + currency = parsedAmount.currency; + $scope.amountUnitStr = parsedAmount.amountUnitStr; + processPaymentInfo(); }; $scope.goBackHome = function() { diff --git a/src/js/controllers/sellGlidera.js b/src/js/controllers/sellGlidera.js index 90a6ed027..0978590c7 100644 --- a/src/js/controllers/sellGlidera.js +++ b/src/js/controllers/sellGlidera.js @@ -35,39 +35,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct } }; - $scope.$on("$ionicView.beforeLeave", function(event, data) { - $ionicConfig.views.swipeBackEnabled(true); - }); - - $scope.$on("$ionicView.enter", function(event, data) { - $ionicConfig.views.swipeBackEnabled(false); - }); - - $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'bits' && data.stateParams.currency != 'BTC' ? true : false; - var parsedAmount = txFormatService.parseAmount( - data.stateParams.amount, - data.stateParams.currency); - - amount = parsedAmount.amount; - currency = parsedAmount.currency; - $scope.amountUnitStr = parsedAmount.amountUnitStr; - - $scope.network = glideraService.getNetwork(); - $scope.wallets = profileService.getWallets({ - m: 1, // Only 1-signature wallet - onlyComplete: true, - network: $scope.network, - hasFunds: true, - minAmount: parsedAmount.amountSat - }); - - if (lodash.isEmpty($scope.wallets)) { - showErrorAndBack('Insufficient funds'); - return; - } - $scope.wallet = $scope.wallets[0]; // Default first wallet - + var processPaymentInfo = function() { ongoingProcess.set('connectingGlidera', true); glideraService.init(function(err, data) { if (err) { @@ -91,6 +59,35 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct $scope.sellInfo = sell; }); }); + }; + + $scope.$on("$ionicView.beforeLeave", function(event, data) { + $ionicConfig.views.swipeBackEnabled(true); + }); + + $scope.$on("$ionicView.enter", function(event, data) { + $ionicConfig.views.swipeBackEnabled(false); + }); + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + amount = data.stateParams.amount; + currency = data.stateParams.currency; + + $scope.network = glideraService.getNetwork(); + $scope.wallets = profileService.getWallets({ + m: 1, // Only 1-signature wallet + onlyComplete: true, + network: $scope.network, + hasFunds: true, + chain: 'BTC' + }); + + if (lodash.isEmpty($scope.wallets)) { + showErrorAndBack('Insufficient funds'); + return; + } + $scope.onWalletSelect($scope.wallets[0]); // Default first wallet }); var ask2FaCode = function(mode, cb) { @@ -108,7 +105,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct popupService.showPrompt(title, message, null, function(twoFaCode) { if (typeof twoFaCode == 'undefined') return cb(); return cb(twoFaCode); - }); + }); } else { return cb(); } @@ -119,7 +116,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct var okText = 'Confirm'; var cancelText = 'Cancel'; popupService.showConfirm(null, message, okText, cancelText, function(ok) { - if (!ok) return; + if (!ok) return; ongoingProcess.set('sellingBitcoin', true, statusChangeHandler); glideraService.get2faCode($scope.token, function(err, tfa) { if (err) { @@ -231,6 +228,15 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + var parsedAmount = txFormatService.parseAmount( + wallet, + amount, + currency); + + amount = parsedAmount.amount; + currency = parsedAmount.currency; + $scope.amountUnitStr = parsedAmount.amountUnitStr; + processPaymentInfo(); }; $scope.goBackHome = function() { diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 39446924f..5bd61c70b 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -8,7 +8,8 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.requestSpecificAmount = function() { $state.go('tabs.paymentRequest.amount', { - id: $scope.wallet.credentials.walletId + id: $scope.wallet.credentials.walletId, + forceChain: $scope.wallet.chain }); }; diff --git a/src/js/controllers/topup.js b/src/js/controllers/topup.js index 3c66830b1..d5959e545 100644 --- a/src/js/controllers/topup.js +++ b/src/js/controllers/topup.js @@ -218,7 +218,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s // Save TX in memory createdTx = ctxp; - $scope.totalAmountStr = txFormatService.formatAmountStr(ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); @@ -256,7 +256,8 @@ angular.module('copayApp.controllers').controller('topUpController', function($s $scope.wallets = profileService.getWallets({ onlyComplete: true, network: bitpayService.getEnvironment().network, - hasFunds: true + hasFunds: true, + chain: 'BTC' }); if (lodash.isEmpty($scope.wallets)) { @@ -319,7 +320,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s }); return; } - var parsedAmount = txFormatService.parseAmount(a, c); + var parsedAmount = txFormatService.parseAmount(wallet, a, c); initializeTopUp(wallet, parsedAmount); }); }; diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index ebd44f6a5..58eb473aa 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -112,7 +112,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio return popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Transaction not available at this time')); } - $scope.btx = txFormatService.processTx(tx); + $scope.btx = txFormatService.processTx($scope.wallet, tx); txFormatService.formatAlternativeStr(tx.fees, function(v) { $scope.btx.feeFiatStr = v; $scope.btx.feeRateStr = ($scope.btx.fees / ($scope.btx.amount + $scope.btx.fees) * 100).toFixed(2) + '%'; diff --git a/src/js/filters/filters.js b/src/js/filters/filters.js index 8d9a56d10..e074f803b 100644 --- a/src/js/filters/filters.js +++ b/src/js/filters/filters.js @@ -27,12 +27,10 @@ angular.module('copayApp.filters', []) } }) .filter('formatFiatAmount', ['$filter', '$locale', 'configService', - function(filter, locale, configService) { + function(filter, locale) { var numberFilter = filter('number'); var formats = locale.NUMBER_FORMATS; - var config = configService.getSync().wallet.settings; return function(amount) { - if (!config) return amount; var fractionSize = 2; var value = numberFilter(amount, fractionSize); diff --git a/src/js/routes.js b/src/js/routes.js index 59cfad4fa..04ae0ad6f 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/:recipientType/:toAddress/:toName/:toEmail/:toColor', + url: '/amount/:recipientType/:toAddress/:toName/:toEmail/:toColor/:chain', views: { 'tab-send@tabs': { controller: 'amountController', @@ -296,7 +296,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.send.confirm', { - url: '/confirm/:recipientType/:toAddress/:toName/:toAmount/:toEmail/:toColor/:description/:useSendMax', + url: '/confirm/:recipientType/:toAddress/:toName/:toAmount/:toEmail/:toColor/:description/:chain/:useSendMax', views: { 'tab-send@tabs': { controller: 'confirmController', @@ -681,7 +681,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr }) .state('tabs.paymentRequest.amount', { - url: '/amount', + url: '/amount/:forceChain', views: { 'tab-receive@tabs': { controller: 'amountController', @@ -690,7 +690,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.paymentRequest.confirm', { - url: '/confirm/:amount/:currency', + url: '/confirm/:amount/:currency/:chain', views: { 'tab-receive@tabs': { controller: 'customAmountController', @@ -923,6 +923,9 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr controllerAs: 'glidera', templateUrl: 'views/glidera.html' } + }, + params: { + forceChain: 'BTC' } }) .state('tabs.buyandsell.glidera.amount', { @@ -976,6 +979,9 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr controllerAs: 'coinbase', templateUrl: 'views/coinbase.html' } + }, + params: { + forceChain: 'BTC' } }) .state('tabs.preferences.coinbase', { @@ -1064,7 +1070,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { nextStep: 'tabs.giftcards.mercadoLibre.buy', currency: 'BRL', - forceCurrency: true + forceCurrency: true, + forceChain: 'BTC' } }) .state('tabs.giftcards.mercadoLibre.buy', { @@ -1115,7 +1122,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { nextStep: 'tabs.giftcards.amazon.buy', currency: 'USD', - forceCurrency: true + forceCurrency: true, + forceChain: 'BTC' } }) .state('tabs.giftcards.amazon.buy', { @@ -1155,6 +1163,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { id: null, currency: 'USD', + forceChain: 'BTC', useSendMax: null } }) diff --git a/src/js/services/configService.js b/src/js/services/configService.js index a17fcf628..3fa2f1f59 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -143,6 +143,14 @@ angular.module('copayApp.services').factory('configService', function(storageSer configCache.bitpayAccount = defaultConfig.bitpayAccount; } + if (configCache.wallet.settings.unitCode == 'bit') { + // Convert to BTC. Bits will be disabled + configCache.wallet.settings.unitName = defaultConfig.wallet.settings.unitName; + configCache.wallet.settings.unitToSatoshi = defaultConfig.wallet.settings.unitToSatoshi; + configCache.wallet.settings.unitDecimals = defaultConfig.wallet.settings.unitDecimals; + configCache.wallet.settings.unitCode = defaultConfig.wallet.settings.unitCode; + } + } else { configCache = lodash.clone(defaultConfig); }; diff --git a/src/js/services/feeService.js b/src/js/services/feeService.js index 3a289bfd8..852c0cf31 100644 --- a/src/js/services/feeService.js +++ b/src/js/services/feeService.js @@ -64,7 +64,6 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou } var walletClient = bwcService.getClient(); - var unitName = configService.getSync().wallet.settings.unitName; walletClient.getFeeLevels('livenet', function(errLivenet, levelsLivenet) { walletClient.getFeeLevels('testnet', function(errTestnet, levelsTestnet) { diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 9f32b137f..b1d7b30e1 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -89,6 +89,7 @@ angular.module('copayApp.services') wallet.copayerId = wallet.credentials.copayerId; wallet.m = wallet.credentials.m; wallet.n = wallet.credentials.n; + wallet.chain = wallet.credentials.chain; root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; @@ -222,11 +223,13 @@ angular.module('copayApp.services') return ((config.bwsFor && config.bwsFor[walletId]) || defaults.bws.url); }; - var client = bwcService.getClient(JSON.stringify(credentials), { bwsurl: getBWSURL(credentials.walletId), }); + // TODO: Should return "chain" = "BTC" or "BCH" + client.credentials.chain = 'BTC'; + var skipKeyValidation = shouldSkipValidation(credentials.walletId); if (!skipKeyValidation) root.runValidation(client, 500); @@ -749,6 +752,12 @@ angular.module('copayApp.services') var ret = lodash.values(root.wallet); + if (opts.chain) { + ret = lodash.filter(ret, function(x) { + return (x.credentials.chain == opts.chain); + }); + } + if (opts.network) { ret = lodash.filter(ret, function(x) { return (x.credentials.network == opts.network); @@ -848,7 +857,7 @@ angular.module('copayApp.services') }); }; - function process(notifications) { + function process(wallet, notifications) { if (!notifications) return []; var shown = lodash.sortBy(notifications, 'createdOn').reverse(); @@ -861,7 +870,7 @@ angular.module('copayApp.services') x.types = [x.type]; if (x.data && x.data.amount) - x.amountStr = txFormatService.formatAmountStr(x.data.amount); + x.amountStr = txFormatService.formatAmountStr(wallet, x.data.amount); x.action = function() { // TODO? @@ -939,7 +948,7 @@ angular.module('copayApp.services') notifications = lodash.sortBy(notifications, 'createdOn'); notifications = lodash.compact(lodash.flatten(notifications)).slice(0, MAX); var total = notifications.length; - return cb(null, process(notifications), total); + return cb(null, process(wallet, notifications), total); }; }); }); diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index 0df46fe86..e203ad69a 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -17,10 +17,10 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return this.Utils.formatAmount(satoshis, config.unitCode, opts); }; - root.formatAmountStr = function(satoshis) { + root.formatAmountStr = function(wallet, satoshis) { +console.log('[txFormatService.js:20]',wallet); //TODO/ if (isNaN(satoshis)) return; - var config = configService.getSync().wallet.settings; - return root.formatAmount(satoshis) + ' ' + config.unitName; + return root.formatAmount(satoshis) + ' ' + wallet.chain; }; root.toFiat = function(satoshis, code, cb) { @@ -86,7 +86,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, }; }; - root.processTx = function(tx) { + root.processTx = function(wallet, tx) { if (!tx || tx.action == 'invalid') return tx; @@ -101,7 +101,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, tx.hasMultiplesOutputs = true; } tx.amount = lodash.reduce(tx.outputs, function(total, o) { - o.amountStr = root.formatAmountStr(o.amount); + o.amountStr = root.formatAmountStr(wallet, o.amount); o.alternativeAmountStr = root.formatAlternativeStr(o.amount); return total + o.amount; }, 0); @@ -109,9 +109,9 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, tx.toAddress = tx.outputs[0].toAddress; } - tx.amountStr = root.formatAmountStr(tx.amount); + tx.amountStr = root.formatAmountStr(wallet, tx.amount); tx.alternativeAmountStr = root.formatAlternativeStr(tx.amount); - tx.feeStr = root.formatAmountStr(tx.fee || tx.fees); + tx.feeStr = root.formatAmountStr(wallet, tx.fee || tx.fees); if (tx.amountStr) { tx.amountValueStr = tx.amountStr.split(' ')[0]; @@ -145,8 +145,6 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, lodash.each(txps, function(tx) { - tx = txFormatService.processTx(tx); - // no future transactions... if (tx.createdOn > now) tx.createdOn = now; @@ -157,6 +155,8 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return; } + tx = txFormatService.processTx(tx.wallet, tx); + var action = lodash.find(tx.actions, { copayerId: tx.wallet.copayerId }); @@ -180,7 +180,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return txps; }; - root.parseAmount = function(amount, currency) { + root.parseAmount = function(wallet, amount, currency) { var config = configService.getSync().wallet.settings; var satToBtc = 1 / 100000000; var unitToSatoshi = config.unitToSatoshi; @@ -189,21 +189,21 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, var alternativeIsoCode = config.alternativeIsoCode; // If fiat currency - if (currency != 'bits' && currency != 'BTC' && currency != 'sat') { + if (currency != 'BCH' && currency != 'BTC' && currency != 'sat') { amountUnitStr = $filter('formatFiatAmount')(amount) + ' ' + currency; amountSat = rateService.fromFiat(amount, currency).toFixed(0); } else if (currency == 'sat') { amountSat = amount; - amountUnitStr = root.formatAmountStr(amountSat); - // convert sat to BTC + amountUnitStr = root.formatAmountStr(wallet, amountSat); + // convert sat to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = 'BTC'; + currency = wallet.chain; } else { amountSat = parseInt((amount * unitToSatoshi).toFixed(0)); - amountUnitStr = root.formatAmountStr(amountSat); - // convert unit to BTC + amountUnitStr = root.formatAmountStr(wallet, amountSat); + // convert unit to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = 'BTC'; + currency = wallet.chain; } return { diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 5414da09c..e90aa1a1d 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -2,8 +2,8 @@ angular.module('copayApp.services').factory('walletService', function($log, $timeout, lodash, trezor, ledger, intelTEE, storageService, configService, rateService, uxLanguage, $filter, gettextCatalog, bwcError, $ionicPopup, fingerprintService, ongoingProcess, gettext, $rootScope, txFormatService, $ionicModal, $state, bwcService, bitcore, popupService) { - // Ratio low amount warning (fee/amount) in incoming TX - var LOW_AMOUNT_RATIO = 0.15; + // Ratio low amount warning (fee/amount) in incoming TX + var LOW_AMOUNT_RATIO = 0.15; // Ratio of "many utxos" warning in total balance (fee/amount) var TOTAL_LOW_WARNING_RATIO = .3; @@ -130,7 +130,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim lodash.each(txps, function(tx) { - tx = txFormatService.processTx(tx); + tx = txFormatService.processTx(wallet, tx); // no future transactions... if (tx.createdOn > now) @@ -213,14 +213,13 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim // Selected unit cache.unitToSatoshi = config.settings.unitToSatoshi; cache.satToUnit = 1 / cache.unitToSatoshi; - cache.unitName = config.settings.unitName; //STR - cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + cache.unitName; - cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + cache.unitName; - cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + cache.unitName; - cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + cache.unitName; - cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + cache.unitName; + cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + wallet.chain; + cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + wallet.chain; + cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + wallet.chain; + cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + wallet.chain; + cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + wallet.chain; cache.alternativeName = config.settings.alternativeName; cache.alternativeIsoCode = config.settings.alternativeIsoCode; @@ -366,7 +365,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim wallet.hasUnsafeConfirmed = false; lodash.each(txs, function(tx) { - tx = txFormatService.processTx(tx); + tx = txFormatService.processTx(wallet, tx); // no future transactions... if (tx.time > now) @@ -400,7 +399,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var LIMIT = 50; var requestLimit = FIRST_LIMIT; var walletId = wallet.credentials.walletId; - var config = configService.getSync().wallet.settings; var opts = opts || {}; var progressFn = opts.progressFn || function() {}; @@ -414,17 +412,15 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var fixTxsUnit = function(txs) { if (!txs || !txs[0] || !txs[0].amountStr) return; - var cacheUnit = txs[0].amountStr.split(' ')[1]; + var cacheChain = txs[0].amountStr.split(' ')[1]; - if (cacheUnit == config.unitName) + if (cacheChain == wallet.chain) return; - var name = ' ' + config.unitName; - - $log.debug('Fixing Tx Cache Unit to:' + name) + $log.debug('Fixing Tx Cache Unit to: ' + wallet.chain) lodash.each(txs, function(tx) { - tx.amountStr = txFormatService.formatAmount(tx.amount) + name; - tx.feeStr = txFormatService.formatAmount(tx.fees) + name; + tx.amountStr = txFormatService.formatAmountStr(wallet, tx.amount); + tx.feeStr = txFormatService.formatAmountStr(wallet, tx.fees); }); }; @@ -788,7 +784,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim //prefs.email (may come from arguments) prefs.email = config.emailNotifications.email; prefs.language = uxLanguage.getCurrentLanguage(); - prefs.unit = walletSettings.unitCode; + // prefs.unit = walletSettings.unitCode; // TODO: remove, not used updateRemotePreferencesFor(lodash.clone(clients), prefs, function(err) { if (err) return cb(err); @@ -922,7 +918,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }; - // Approx utxo amount, from which the uxto is economically redeemable + // Approx utxo amount, from which the uxto is economically redeemable root.getMinFee = function(wallet, feeLevels, nbOutputs) { var lowLevelRate = (lodash.find(feeLevels[wallet.network], { level: 'normal', @@ -933,7 +929,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }; - // Approx utxo amount, from which the uxto is economically redeemable + // Approx utxo amount, from which the uxto is economically redeemable root.getLowAmount = function(wallet, feeLevels, nbOutputs) { var minFee = root.getMinFee(wallet,feeLevels, nbOutputs); return parseInt( minFee / LOW_AMOUNT_RATIO); diff --git a/src/sass/views/amount.scss b/src/sass/views/amount.scss index 627f905e8..1f6a242d6 100644 --- a/src/sass/views/amount.scss +++ b/src/sass/views/amount.scss @@ -139,6 +139,19 @@ } } .amount { + .icon-toggle { + font-size: 1.2em; + width: auto; + margin: 0.8em auto; + border: 1px solid $v-subtle-gray; + color: $v-dark-gray; + border-radius: 3px; + padding: 0 10px; + cursor: pointer; + @media(max-height: 280px) { + margin: 0.1em auto; + } + } &__editable { &--minimize { font-size: 22px; @@ -196,7 +209,6 @@ &__result-equiv { color: $v-mid-gray; font-size: 1.2em; - margin-top: 2rem; @media(max-height: 480px) { margin-top: 0; font-size: 16px; diff --git a/www/views/amount.html b/www/views/amount.html index 5dfee29e5..b3b4b0cfd 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -48,16 +48,19 @@
+
+
-
{{globalResult}} {{unitName}}
+
{{globalResult}} {{chain}}
≈ {{amountResult || '0.00'}} {{alternativeIsoCode}}
{{globalResult}} {{alternativeIsoCode}}
-
{{alternativeResult || '0.00'}} {{unitName}}
+
{{alternativeResult || '0.00'}} {{chain}}
diff --git a/www/views/customAmount.html b/www/views/customAmount.html index f9d5aafb7..6cd7be9c3 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -21,7 +21,7 @@
- +
From e1aa5cc8f83c890ba0c4db8598d2d4bea5315006 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 24 Aug 2017 17:14:09 -0300 Subject: [PATCH 035/157] Removes Unit from settings --- src/js/controllers/preferencesUnit.js | 43 --------------------------- src/js/controllers/tab-settings.js | 1 - src/js/routes.js | 9 ------ www/views/preferencesUnit.html | 14 --------- www/views/tab-settings.html | 10 ------- 5 files changed, 77 deletions(-) delete mode 100644 src/js/controllers/preferencesUnit.js delete mode 100644 www/views/preferencesUnit.html diff --git a/src/js/controllers/preferencesUnit.js b/src/js/controllers/preferencesUnit.js deleted file mode 100644 index 235deb3b2..000000000 --- a/src/js/controllers/preferencesUnit.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -angular.module('copayApp.controllers').controller('preferencesUnitController', function($scope, $log, configService, $ionicHistory, gettextCatalog, walletService, profileService) { - - var config = configService.getSync(); - $scope.unitList = [{ - name: 'bits (1,000,000 bits = 1BTC)', - shortName: 'bits', - value: 100, - decimals: 2, - code: 'bit', - }, { - name: 'BTC', - shortName: 'BTC', - value: 100000000, - decimals: 8, - code: 'btc', - }]; - - $scope.save = function(newUnit) { - var opts = { - wallet: { - settings: { - unitName: newUnit.shortName, - unitToSatoshi: newUnit.value, - unitDecimals: newUnit.decimals, - unitCode: newUnit.code, - } - } - }; - - configService.set(opts, function(err) { - if (err) $log.warn(err); - - $ionicHistory.goBack(); - walletService.updateRemotePreferences(profileService.getWallets()) - }); - }; - - $scope.$on("$ionicView.enter", function(event, data){ - $scope.currentUnit = config.wallet.settings.unitCode; - }); -}); diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js index 01ffacd42..f806b0f84 100644 --- a/src/js/controllers/tab-settings.js +++ b/src/js/controllers/tab-settings.js @@ -10,7 +10,6 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct $scope.buyAndSellServices = buyAndSellService.getLinked(); configService.whenAvailable(function(config) { - $scope.unitName = config.wallet.settings.unitName; $scope.selectedAlternative = { name: config.wallet.settings.alternativeName, isoCode: config.wallet.settings.alternativeIsoCode diff --git a/src/js/routes.js b/src/js/routes.js index 04ae0ad6f..2726a697d 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -392,15 +392,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } } }) - .state('tabs.unit', { - url: '/unit', - views: { - 'tab-settings@tabs': { - controller: 'preferencesUnitController', - templateUrl: 'views/preferencesUnit.html' - } - } - }) .state('tabs.fee', { url: '/fee', views: { diff --git a/www/views/preferencesUnit.html b/www/views/preferencesUnit.html deleted file mode 100644 index 77edf05d7..000000000 --- a/www/views/preferencesUnit.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - {{'Unit'|translate}} - - - - - - {{unit.shortName}} - - - diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index 2ccd0afdb..ff27f0d33 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -56,16 +56,6 @@ - - - - - {{'Bitcoin Unit' | translate}} - - {{unitName}} - - - From 450be84fcc87223f5540e67a4f48d14cfe83dd63 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 25 Aug 2017 13:05:15 -0300 Subject: [PATCH 036/157] Change wallet icons for btc, bch and testnet --- src/js/services/txFormatService.js | 1 - www/img/icon-bch.svg | 12 ++++++++++++ www/img/icon-btc.svg | 12 ++++++++++++ www/img/icon-wallet-testnet.svg | 7 +++++++ www/views/buyAmazon.html | 2 +- www/views/buyCoinbase.html | 2 +- www/views/buyGlidera.html | 2 +- www/views/buyMercadoLibre.html | 2 +- www/views/confirm.html | 2 +- www/views/customAmount.html | 2 +- www/views/includes/walletItem.html | 2 +- www/views/includes/walletSelector.html | 2 +- www/views/modals/txp-details.html | 2 +- www/views/paperWallet.html | 2 +- www/views/sellCoinbase.html | 2 +- www/views/sellGlidera.html | 2 +- www/views/tab-home.html | 2 +- www/views/tab-receive.html | 2 +- www/views/tab-send.html | 2 +- www/views/tab-settings.html | 2 +- www/views/topup.html | 4 ++-- www/views/tx-details.html | 2 +- 22 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 www/img/icon-bch.svg create mode 100644 www/img/icon-btc.svg create mode 100644 www/img/icon-wallet-testnet.svg diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index e203ad69a..d0be0de6f 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -18,7 +18,6 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, }; root.formatAmountStr = function(wallet, satoshis) { -console.log('[txFormatService.js:20]',wallet); //TODO/ if (isNaN(satoshis)) return; return root.formatAmount(satoshis) + ' ' + wallet.chain; }; diff --git a/www/img/icon-bch.svg b/www/img/icon-bch.svg new file mode 100644 index 000000000..b02172ceb --- /dev/null +++ b/www/img/icon-bch.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/www/img/icon-btc.svg b/www/img/icon-btc.svg new file mode 100644 index 000000000..da480b629 --- /dev/null +++ b/www/img/icon-btc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/www/img/icon-wallet-testnet.svg b/www/img/icon-wallet-testnet.svg new file mode 100644 index 000000000..c1759c599 --- /dev/null +++ b/www/img/icon-wallet-testnet.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index ded0aca93..25e89148e 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyCoinbase.html b/www/views/buyCoinbase.html index 8ae1999a0..8311c7398 100644 --- a/www/views/buyCoinbase.html +++ b/www/views/buyCoinbase.html @@ -38,7 +38,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyGlidera.html b/www/views/buyGlidera.html index df8e386e9..6959af141 100644 --- a/www/views/buyGlidera.html +++ b/www/views/buyGlidera.html @@ -30,7 +30,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index 7791aee82..d132bb27d 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -28,7 +28,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/confirm.html b/www/views/confirm.html index a2b85ad88..831d3182c 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -65,7 +65,7 @@ From
- +
{{wallet.name}}
diff --git a/www/views/customAmount.html b/www/views/customAmount.html index 6cd7be9c3..3705c7cd9 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -39,7 +39,7 @@
- + {{wallet.name}}
diff --git a/www/views/includes/walletItem.html b/www/views/includes/walletItem.html index e087e1410..9d86fb573 100644 --- a/www/views/includes/walletItem.html +++ b/www/views/includes/walletItem.html @@ -1,6 +1,6 @@
- +
{{wallet.name || wallet.id}} diff --git a/www/views/includes/walletSelector.html b/www/views/includes/walletSelector.html index 28b77830f..13e4e2860 100644 --- a/www/views/includes/walletSelector.html +++ b/www/views/includes/walletSelector.html @@ -7,7 +7,7 @@ ng-click="selectWallet(w)" > - +
diff --git a/www/views/modals/txp-details.html b/www/views/modals/txp-details.html index 144202699..01d0eb88f 100644 --- a/www/views/modals/txp-details.html +++ b/www/views/modals/txp-details.html @@ -74,7 +74,7 @@ From
- +
{{wallet.name}}
diff --git a/www/views/paperWallet.html b/www/views/paperWallet.html index 81b84ba41..12d862685 100644 --- a/www/views/paperWallet.html +++ b/www/views/paperWallet.html @@ -24,7 +24,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/sellCoinbase.html b/www/views/sellCoinbase.html index 5827efda6..0dbc97ac9 100644 --- a/www/views/sellCoinbase.html +++ b/www/views/sellCoinbase.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/sellGlidera.html b/www/views/sellGlidera.html index cb354bac0..b4409a13f 100644 --- a/www/views/sellGlidera.html +++ b/www/views/sellGlidera.html @@ -30,7 +30,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 0af9df0cd..9deef5e39 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -81,7 +81,7 @@ class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet" ng-click="openWallet(wallet)"> - + {{wallet.name || wallet.id}} diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index 7f42ab857..7e198ad1d 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -63,7 +63,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 6b36814b0..0abbe3039 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -69,7 +69,7 @@
- + {{item.name}} diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index ff27f0d33..74cba161d 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -95,7 +95,7 @@ ui-sref="tabs.preferences({'walletId': item.id})" ng-repeat="item in wallets track by $index"> - + {{item.name || item.id}} diff --git a/www/views/topup.html b/www/views/topup.html index 9dee6b185..1a093544c 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -31,10 +31,10 @@
-
From
+
From {{wallet.chain}}
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tx-details.html b/www/views/tx-details.html index fbf1cc6ab..df5e66591 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -53,7 +53,7 @@ To
- +
{{wallet.name}}
From be15f7bc7c523662a393c293caa6f4567dc811fa Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 25 Aug 2017 15:26:44 -0300 Subject: [PATCH 037/157] Confirm without chain param, show all available wallets --- src/js/controllers/confirm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 4135ec4b3..9b7a87df9 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -138,7 +138,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, network: (new bitcore.Address(data.stateParams.toAddress)).network.name, - chain: data.stateParams.chain || 'BTC', + chain: data.stateParams.chain, txp: {}, }; From ef8302f8546e5e5fd4ace2a1b61d30008b0abed1 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 25 Aug 2017 15:50:57 -0300 Subject: [PATCH 038/157] Handler bip21 with extra param chain --- src/js/services/incomingData.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index c9d633eb8..ac1274577 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -46,7 +46,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat return true; } - function goSend(addr, amount, message) { + function goSend(addr, amount, message, chain) { $state.go('tabs.send', {}, { 'reload': true, 'notify': $state.current.name == 'tabs.send' ? false : true @@ -57,11 +57,13 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat $state.transitionTo('tabs.send.confirm', { toAmount: amount, toAddress: addr, - description: message + description: message, + chain: chain }); } else { $state.transitionTo('tabs.send.amount', { - toAddress: addr + toAddress: addr, + chain: chain }); } }, 100); @@ -90,16 +92,17 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat var message = parsed.message; var amount = parsed.amount ? parsed.amount : ''; + var chain = parsed.extras && parsed.extras.chain ? (parsed.extras.chain).toUpperCase() : ''; if (parsed.r) { payproService.getPayProDetails(parsed.r, function(err, details) { if (err) { - if (addr && amount) goSend(addr, amount, message); + if (addr && amount) goSend(addr, amount, message, chain); else popupService.showAlert(gettextCatalog.getString('Error'), err); } else handlePayPro(details); }); } else { - goSend(addr, amount, message); + goSend(addr, amount, message, chain); } return true; From ac5ede702d75fd9cfbee483d2b2d9887f8d6791d Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Sun, 27 Aug 2017 18:00:39 -0300 Subject: [PATCH 039/157] Fix btc/bch icons. Adds coin param to createWallet method --- src/js/controllers/create.js | 2 ++ src/js/services/profileService.js | 10 +++++++--- www/views/buyAmazon.html | 2 +- www/views/buyCoinbase.html | 2 +- www/views/buyGlidera.html | 2 +- www/views/buyMercadoLibre.html | 2 +- www/views/customAmount.html | 2 +- www/views/includes/walletItem.html | 2 +- www/views/includes/walletSelector.html | 2 +- www/views/modals/txp-details.html | 2 +- www/views/paperWallet.html | 2 +- www/views/sellCoinbase.html | 2 +- www/views/sellGlidera.html | 2 +- www/views/tab-create-personal.html | 10 ++++++++++ www/views/tab-home.html | 2 +- www/views/tab-receive.html | 2 +- www/views/tab-send.html | 2 +- www/views/tab-settings.html | 2 +- www/views/topup.html | 2 +- www/views/tx-details.html | 2 +- 20 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index c43bf406b..b32e8bd25 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -27,6 +27,7 @@ angular.module('copayApp.controllers').controller('createController', $scope.formData.bwsurl = defaults.bws.url; $scope.TCValues = lodash.range(2, defaults.limits.totalCopayers + 1); $scope.formData.derivationPath = derivationPathHelper.default; + $scope.formData.coin = 'btc'; $scope.setTotalCopayers(tc); updateRCSelect(tc); resetPasswordFields(); @@ -137,6 +138,7 @@ angular.module('copayApp.controllers').controller('createController', bwsurl: $scope.formData.bwsurl, singleAddress: $scope.formData.singleAddressEnabled, walletPrivKey: $scope.formData._walletPrivKey, // Only for testing + coin: $scope.formData.coin }; var setSeed = $scope.formData.seedSource.id == 'set'; diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index b1d7b30e1..cb7aa4eb7 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -89,7 +89,10 @@ angular.module('copayApp.services') wallet.copayerId = wallet.credentials.copayerId; wallet.m = wallet.credentials.m; wallet.n = wallet.credentials.n; - wallet.chain = wallet.credentials.chain; + wallet.chain = wallet.credentials.chain ? (wallet.credentials.chain).toUpperCase() : 'BTC'; + + // TODO: Should return "chain" = "BTC" or "BCH" + client.credentials.chain = 'BTC'; root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; @@ -227,8 +230,7 @@ angular.module('copayApp.services') bwsurl: getBWSURL(credentials.walletId), }); - // TODO: Should return "chain" = "BTC" or "BCH" - client.credentials.chain = 'BTC'; + var skipKeyValidation = shouldSkipValidation(credentials.walletId); if (!skipKeyValidation) @@ -395,6 +397,7 @@ angular.module('copayApp.services') network: opts.networkName, singleAddress: opts.singleAddress, walletPrivKey: opts.walletPrivKey, + coin: opts.coin }, function(err, secret) { if (err) return bwcError.cb(err, gettextCatalog.getString('Error creating wallet'), cb); return cb(null, walletClient, secret); @@ -687,6 +690,7 @@ angular.module('copayApp.services') opts.m = 1; opts.n = 1; opts.networkName = 'livenet'; + opts.coin = 'btc'; root.createWallet(opts, cb); }; diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index 25e89148e..704f29167 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyCoinbase.html b/www/views/buyCoinbase.html index 8311c7398..013d9b053 100644 --- a/www/views/buyCoinbase.html +++ b/www/views/buyCoinbase.html @@ -38,7 +38,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyGlidera.html b/www/views/buyGlidera.html index 6959af141..1acbbedea 100644 --- a/www/views/buyGlidera.html +++ b/www/views/buyGlidera.html @@ -30,7 +30,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index d132bb27d..a4ff67c90 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -28,7 +28,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/customAmount.html b/www/views/customAmount.html index 3705c7cd9..95c4bd0fb 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -39,7 +39,7 @@
- + {{wallet.name}}
diff --git a/www/views/includes/walletItem.html b/www/views/includes/walletItem.html index 9d86fb573..c44abef1c 100644 --- a/www/views/includes/walletItem.html +++ b/www/views/includes/walletItem.html @@ -1,6 +1,6 @@
- +
{{wallet.name || wallet.id}} diff --git a/www/views/includes/walletSelector.html b/www/views/includes/walletSelector.html index 13e4e2860..add64d0cd 100644 --- a/www/views/includes/walletSelector.html +++ b/www/views/includes/walletSelector.html @@ -7,7 +7,7 @@ ng-click="selectWallet(w)" > - +
diff --git a/www/views/modals/txp-details.html b/www/views/modals/txp-details.html index 01d0eb88f..beb122b9d 100644 --- a/www/views/modals/txp-details.html +++ b/www/views/modals/txp-details.html @@ -74,7 +74,7 @@ From
- +
{{wallet.name}}
diff --git a/www/views/paperWallet.html b/www/views/paperWallet.html index 12d862685..904cb5b6c 100644 --- a/www/views/paperWallet.html +++ b/www/views/paperWallet.html @@ -24,7 +24,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/sellCoinbase.html b/www/views/sellCoinbase.html index 0dbc97ac9..6972c5f98 100644 --- a/www/views/sellCoinbase.html +++ b/www/views/sellCoinbase.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/sellGlidera.html b/www/views/sellGlidera.html index b4409a13f..ee6e262c9 100644 --- a/www/views/sellGlidera.html +++ b/www/views/sellGlidera.html @@ -30,7 +30,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tab-create-personal.html b/www/views/tab-create-personal.html index 9b695aefc..38bb2794f 100644 --- a/www/views/tab-create-personal.html +++ b/www/views/tab-create-personal.html @@ -19,6 +19,16 @@ required> + +
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 9deef5e39..7ffcb5629 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -81,7 +81,7 @@ class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet" ng-click="openWallet(wallet)"> - + {{wallet.name || wallet.id}} diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index 7e198ad1d..c78317451 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -63,7 +63,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 0abbe3039..8b1e0c3eb 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -69,7 +69,7 @@
- + {{item.name}} diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index 74cba161d..e6b3f0ad8 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -95,7 +95,7 @@ ui-sref="tabs.preferences({'walletId': item.id})" ng-repeat="item in wallets track by $index"> - + {{item.name || item.id}} diff --git a/www/views/topup.html b/www/views/topup.html index 1a093544c..a9329ba94 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -34,7 +34,7 @@
From {{wallet.chain}}
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tx-details.html b/www/views/tx-details.html index df5e66591..3e281b8bf 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -53,7 +53,7 @@ To
- +
{{wallet.name}}
From 2c33f186af2f439c04dfb4cc431433a848aa3966 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Sun, 27 Aug 2017 23:50:27 -0300 Subject: [PATCH 040/157] Ref chain to coin. Adds create wallet --- src/js/controllers/addresses.js | 7 +------ src/js/controllers/amount.js | 16 ++++++++-------- src/js/controllers/buyAmazon.js | 2 +- src/js/controllers/buyCoinbase.js | 4 ++-- src/js/controllers/buyGlidera.js | 4 ++-- src/js/controllers/buyMercadoLibre.js | 2 +- src/js/controllers/confirm.js | 8 ++++---- src/js/controllers/customAmount.js | 6 +++--- src/js/controllers/sellCoinbase.js | 4 ++-- src/js/controllers/sellGlidera.js | 4 ++-- src/js/controllers/tab-receive.js | 2 +- src/js/controllers/topup.js | 2 +- src/js/routes.js | 23 ++++++++++++++--------- src/js/services/feeService.js | 4 ++-- src/js/services/incomingData.js | 12 ++++++------ src/js/services/profileService.js | 11 ++++++----- src/js/services/txFormatService.js | 6 +++--- src/js/services/walletService.js | 16 ++++++++-------- www/views/amount.html | 6 +++--- www/views/buyAmazon.html | 2 +- www/views/buyCoinbase.html | 2 +- www/views/buyGlidera.html | 2 +- www/views/buyMercadoLibre.html | 2 +- www/views/confirm.html | 2 +- www/views/customAmount.html | 4 ++-- www/views/includes/walletItem.html | 2 +- www/views/includes/walletSelector.html | 2 +- www/views/modals/txp-details.html | 2 +- www/views/paperWallet.html | 2 +- www/views/sellCoinbase.html | 2 +- www/views/sellGlidera.html | 2 +- www/views/tab-home.html | 2 +- www/views/tab-receive.html | 2 +- www/views/tab-send.html | 2 +- www/views/tab-settings.html | 2 +- www/views/topup.html | 4 ++-- www/views/tx-details.html | 2 +- 37 files changed, 90 insertions(+), 89 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index 3bc0b4fea..97cca45e1 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -1,13 +1,8 @@ 'use strict'; -angular.module('copayApp.controllers').controller('addressesController', function($scope, $log, $stateParams, $state, $timeout, $ionicHistory, $ionicScrollDelegate, configService, popupService, gettextCatalog, ongoingProcess, lodash, profileService, walletService, bwcError, platformInfo, appConfigService, txFormatService, feeService) { +angular.module('copayApp.controllers').controller('addressesController', function($scope, $log, $stateParams, $state, $timeout, $ionicHistory, $ionicScrollDelegate, popupService, gettextCatalog, ongoingProcess, lodash, profileService, walletService, bwcError, platformInfo, appConfigService, txFormatService, feeService) { var UNUSED_ADDRESS_LIMIT = 5; var BALANCE_ADDRESS_LIMIT = 5; - var config = configService.getSync().wallet.settings; - var unitName = config.unitName; - var unitToSatoshi = config.unitToSatoshi; - var satToUnit = 1 / unitToSatoshi; - var unitDecimals = config.unitDecimals; var withBalance, cachedWallet; $scope.isCordova = platformInfo.isCordova; diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 55c101024..03e9743af 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -21,8 +21,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.nextStep = data.stateParams.nextStep; $scope.currency = data.stateParams.currency; $scope.forceCurrency = data.stateParams.forceCurrency; - $scope.forceChain = data.stateParams.forceChain || null; - $scope.chain = $scope.forceChain || data.stateParams.chain || 'BTC'; + $scope.forceCoin = data.stateParams.forceCoin; + $scope.coin = data.stateParams.coin || 'btc'; $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || $ionicHistory.backView().stateName == 'tabs.bitpayCard'); @@ -125,10 +125,10 @@ angular.module('copayApp.controllers').controller('amountController', function($ } }; - $scope.toggleChain = function() { - if ($scope.forceCurrency || $scope.forceChain) return; + $scope.toggleCoin = function() { + if ($scope.forceCurrency || $scope.forceCoin) return; - $scope.chain = $scope.chain == 'BTC' ? 'BCH' : 'BTC'; + $scope.coin = $scope.coin == 'btc' ? 'bch' : 'btc'; }; function checkFontSize() { @@ -234,8 +234,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ $state.transitionTo($scope.nextStep, { id: _id, amount: $scope.useSendMax ? null : _amount, - currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : $scope.chain, - chain: $scope.chain, + currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : $scope.coin, + coin: $scope.coin, useSendMax: $scope.useSendMax }); } else { @@ -247,7 +247,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ toName: $scope.toName, toEmail: $scope.toEmail, toColor: $scope.toColor, - chain: $scope.chain, + coin: $scope.coin, useSendMax: $scope.useSendMax }); } diff --git a/src/js/controllers/buyAmazon.js b/src/js/controllers/buyAmazon.js index e2418e80e..ee3732e95 100644 --- a/src/js/controllers/buyAmazon.js +++ b/src/js/controllers/buyAmazon.js @@ -293,7 +293,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio onlyComplete: true, network: $scope.network, hasFunds: true, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js index 57d9db779..d9690f058 100644 --- a/src/js/controllers/buyCoinbase.js +++ b/src/js/controllers/buyCoinbase.js @@ -88,7 +88,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + $scope.isFiat = data.stateParams.currency != 'BTC' ? true : false; amount = data.stateParams.amount; currency = data.stateParams.currency; @@ -96,7 +96,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js index 3b0ef1265..536dbc1e8 100644 --- a/src/js/controllers/buyGlidera.js +++ b/src/js/controllers/buyGlidera.js @@ -70,7 +70,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + $scope.isFiat = data.stateParams.currency != 'BTC' ? true : false; amount = data.stateParams.amount; currency = data.stateParams.currency; @@ -78,7 +78,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index a89a38d83..153a715d5 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -285,7 +285,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 9b7a87df9..e2065ebb2 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -69,7 +69,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.$on("$ionicView.beforeEnter", function(event, data) { - function setWalletSelector(chain, network, minAmount, cb) { + function setWalletSelector(coin, network, minAmount, cb) { // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; @@ -77,7 +77,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.wallets = profileService.getWallets({ onlyComplete: true, network: network, - chain: chain + coin: coin }); if (!$scope.wallets || !$scope.wallets.length) { @@ -138,7 +138,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, network: (new bitcore.Address(data.stateParams.toAddress)).network.name, - chain: data.stateParams.chain, + coin: data.stateParams.coin, txp: {}, }; @@ -151,7 +151,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); - setWalletSelector(tx.chain, tx.network, tx.toAmount, function(err) { + setWalletSelector(tx.coin, tx.network, tx.toAmount, function(err) { if (err) { return exitWithError('Could not update wallets'); } diff --git a/src/js/controllers/customAmount.js b/src/js/controllers/customAmount.js index 093edd568..4fa97ed18 100644 --- a/src/js/controllers/customAmount.js +++ b/src/js/controllers/customAmount.js @@ -28,7 +28,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func $scope.address = addr; - $scope.chain = (data.stateParams.chain).toLowerCase(); + $scope.coin = (data.stateParams.coin).toLowerCase(); var parsedAmount = txFormatService.parseAmount( $scope.wallet, data.stateParams.amount, @@ -43,7 +43,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func // Convert to BTC or BCH var config = configService.getSync().wallet.settings; var amountUnit = txFormatService.satToUnit(parsedAmount.amountSat); - var btcParsedAmount = txFormatService.parseAmount($scope.wallet, amountUnit, $scope.wallet.chain); + var btcParsedAmount = txFormatService.parseAmount($scope.wallet, amountUnit, $scope.wallet.coin); $scope.amountBtc = btcParsedAmount.amount; $scope.altAmountStr = btcParsedAmount.amountUnitStr; @@ -68,7 +68,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func } $scope.copyToClipboard = function() { - return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&chain=' + $scope.chain; + return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.coin; }; }); diff --git a/src/js/controllers/sellCoinbase.js b/src/js/controllers/sellCoinbase.js index 3bee99602..624748f7c 100644 --- a/src/js/controllers/sellCoinbase.js +++ b/src/js/controllers/sellCoinbase.js @@ -170,7 +170,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + $scope.isFiat = data.stateParams.currency != 'BTC' ? true : false; amount = data.stateParams.amount; currency = data.stateParams.currency; @@ -183,7 +183,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func onlyComplete: true, network: $scope.network, hasFunds: true, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { diff --git a/src/js/controllers/sellGlidera.js b/src/js/controllers/sellGlidera.js index 0978590c7..bf5db0f7a 100644 --- a/src/js/controllers/sellGlidera.js +++ b/src/js/controllers/sellGlidera.js @@ -70,7 +70,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - $scope.isFiat = data.stateParams.currency != 'BCH' && data.stateParams.currency != 'BTC' ? true : false; + $scope.isFiat = data.stateParams.currency != 'BTC' ? true : false; amount = data.stateParams.amount; currency = data.stateParams.currency; @@ -80,7 +80,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct onlyComplete: true, network: $scope.network, hasFunds: true, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 5bd61c70b..43785ab8b 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -9,7 +9,7 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.requestSpecificAmount = function() { $state.go('tabs.paymentRequest.amount', { id: $scope.wallet.credentials.walletId, - forceChain: $scope.wallet.chain + coin: $scope.wallet.coin }); }; diff --git a/src/js/controllers/topup.js b/src/js/controllers/topup.js index d5959e545..d72ad8e2a 100644 --- a/src/js/controllers/topup.js +++ b/src/js/controllers/topup.js @@ -257,7 +257,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s onlyComplete: true, network: bitpayService.getEnvironment().network, hasFunds: true, - chain: 'BTC' + coin: 'btc' }); if (lodash.isEmpty($scope.wallets)) { diff --git a/src/js/routes.js b/src/js/routes.js index 2726a697d..e8beece45 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/:recipientType/:toAddress/:toName/:toEmail/:toColor/:chain', + url: '/amount/:recipientType/:toAddress/:toName/:toEmail/:toColor/:coin', views: { 'tab-send@tabs': { controller: 'amountController', @@ -296,7 +296,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.send.confirm', { - url: '/confirm/:recipientType/:toAddress/:toName/:toAmount/:toEmail/:toColor/:description/:chain/:useSendMax', + url: '/confirm/:recipientType/:toAddress/:toName/:toAmount/:toEmail/:toColor/:description/:coin/:useSendMax', views: { 'tab-send@tabs': { controller: 'confirmController', @@ -672,7 +672,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr }) .state('tabs.paymentRequest.amount', { - url: '/amount/:forceChain', + url: '/amount/:coin', views: { 'tab-receive@tabs': { controller: 'amountController', @@ -681,7 +681,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('tabs.paymentRequest.confirm', { - url: '/confirm/:amount/:currency/:chain', + url: '/confirm/:amount/:currency/:coin', views: { 'tab-receive@tabs': { controller: 'customAmountController', @@ -916,7 +916,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }, params: { - forceChain: 'BTC' + coin: 'btc', + forceCoin: true } }) .state('tabs.buyandsell.glidera.amount', { @@ -972,7 +973,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }, params: { - forceChain: 'BTC' + coin: 'btc', + forceCoin: true } }) .state('tabs.preferences.coinbase', { @@ -1062,7 +1064,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr nextStep: 'tabs.giftcards.mercadoLibre.buy', currency: 'BRL', forceCurrency: true, - forceChain: 'BTC' + coin: 'btc', + forceCoin: true } }) .state('tabs.giftcards.mercadoLibre.buy', { @@ -1114,7 +1117,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr nextStep: 'tabs.giftcards.amazon.buy', currency: 'USD', forceCurrency: true, - forceChain: 'BTC' + coin: 'btc', + forceCoin: true } }) .state('tabs.giftcards.amazon.buy', { @@ -1154,7 +1158,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { id: null, currency: 'USD', - forceChain: 'BTC', + coin: 'btc', + forceCoin: true, useSendMax: null } }) diff --git a/src/js/services/feeService.js b/src/js/services/feeService.js index 852c0cf31..e827cac1b 100644 --- a/src/js/services/feeService.js +++ b/src/js/services/feeService.js @@ -65,8 +65,8 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou var walletClient = bwcService.getClient(); - walletClient.getFeeLevels('livenet', function(errLivenet, levelsLivenet) { - walletClient.getFeeLevels('testnet', function(errTestnet, levelsTestnet) { + walletClient.getFeeLevels('btc', 'livenet', function(errLivenet, levelsLivenet) { + walletClient.getFeeLevels('btc', 'testnet', function(errTestnet, levelsTestnet) { if (errLivenet || errTestnet) { return cb(gettextCatalog.getString('Could not get dynamic fee')); } diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index ac1274577..48f037c7a 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -46,7 +46,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat return true; } - function goSend(addr, amount, message, chain) { + function goSend(addr, amount, message, coin) { $state.go('tabs.send', {}, { 'reload': true, 'notify': $state.current.name == 'tabs.send' ? false : true @@ -58,12 +58,12 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat toAmount: amount, toAddress: addr, description: message, - chain: chain + coin: coin }); } else { $state.transitionTo('tabs.send.amount', { toAddress: addr, - chain: chain + coin: coin }); } }, 100); @@ -92,17 +92,17 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat var message = parsed.message; var amount = parsed.amount ? parsed.amount : ''; - var chain = parsed.extras && parsed.extras.chain ? (parsed.extras.chain).toUpperCase() : ''; + var coin = parsed.extras && parsed.extras.coin ? (parsed.extras.coin).toUpperCase() : ''; if (parsed.r) { payproService.getPayProDetails(parsed.r, function(err, details) { if (err) { - if (addr && amount) goSend(addr, amount, message, chain); + if (addr && amount) goSend(addr, amount, message, coin); else popupService.showAlert(gettextCatalog.getString('Error'), err); } else handlePayPro(details); }); } else { - goSend(addr, amount, message, chain); + goSend(addr, amount, message, coin); } return true; diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index cb7aa4eb7..bbba03cf6 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -89,10 +89,11 @@ angular.module('copayApp.services') wallet.copayerId = wallet.credentials.copayerId; wallet.m = wallet.credentials.m; wallet.n = wallet.credentials.n; - wallet.chain = wallet.credentials.chain ? (wallet.credentials.chain).toUpperCase() : 'BTC'; + wallet.coin = wallet.credentials.coin ? wallet.credentials.coin : 'btc'; +console.log('[profileService.js:92]',wallet); //TODO/ - // TODO: Should return "chain" = "BTC" or "BCH" - client.credentials.chain = 'BTC'; + // TODO: Should return "coin" = "btc" or "bch" + //client.credentials.coin = 'btc'; root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; @@ -756,9 +757,9 @@ angular.module('copayApp.services') var ret = lodash.values(root.wallet); - if (opts.chain) { + if (opts.coin) { ret = lodash.filter(ret, function(x) { - return (x.credentials.chain == opts.chain); + return (x.credentials.coin == opts.coin); }); } diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index d0be0de6f..428286d1a 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -19,7 +19,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, root.formatAmountStr = function(wallet, satoshis) { if (isNaN(satoshis)) return; - return root.formatAmount(satoshis) + ' ' + wallet.chain; + return root.formatAmount(satoshis) + ' ' + wallet.coin; }; root.toFiat = function(satoshis, code, cb) { @@ -196,13 +196,13 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, amountUnitStr = root.formatAmountStr(wallet, amountSat); // convert sat to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = wallet.chain; + currency = (wallet.coin).toUpperCase(); } else { amountSat = parseInt((amount * unitToSatoshi).toFixed(0)); amountUnitStr = root.formatAmountStr(wallet, amountSat); // convert unit to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = wallet.chain; + currency = (wallet.coin).toUpperCase(); } return { diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index e90aa1a1d..496765ea9 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -215,11 +215,11 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim cache.satToUnit = 1 / cache.unitToSatoshi; //STR - cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + wallet.chain; - cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + wallet.chain; - cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + wallet.chain; - cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + wallet.chain; - cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + wallet.chain; + cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + wallet.coin; + cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + wallet.coin; + cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + wallet.coin; + cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + wallet.coin; + cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + wallet.coin; cache.alternativeName = config.settings.alternativeName; cache.alternativeIsoCode = config.settings.alternativeIsoCode; @@ -412,12 +412,12 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var fixTxsUnit = function(txs) { if (!txs || !txs[0] || !txs[0].amountStr) return; - var cacheChain = txs[0].amountStr.split(' ')[1]; + var cacheCoin = txs[0].amountStr.split(' ')[1]; - if (cacheChain == wallet.chain) + if (cacheCoin == wallet.coin) return; - $log.debug('Fixing Tx Cache Unit to: ' + wallet.chain) + $log.debug('Fixing Tx Cache Unit to: ' + wallet.coin) lodash.each(txs, function(tx) { tx.amountStr = txFormatService.formatAmountStr(wallet, tx.amount); tx.feeStr = txFormatService.formatAmountStr(wallet, tx.fees); diff --git a/www/views/amount.html b/www/views/amount.html index b3b4b0cfd..4f37414ca 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -49,18 +49,18 @@
-
{{globalResult}} {{chain}}
+
{{globalResult}} {{coin}}
≈ {{amountResult || '0.00'}} {{alternativeIsoCode}}
{{globalResult}} {{alternativeIsoCode}}
-
{{alternativeResult || '0.00'}} {{chain}}
+
{{alternativeResult || '0.00'}} {{coin}}
diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index 704f29167..3ea4d78c6 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyCoinbase.html b/www/views/buyCoinbase.html index 013d9b053..fe1371ce9 100644 --- a/www/views/buyCoinbase.html +++ b/www/views/buyCoinbase.html @@ -38,7 +38,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyGlidera.html b/www/views/buyGlidera.html index 1acbbedea..5f1168996 100644 --- a/www/views/buyGlidera.html +++ b/www/views/buyGlidera.html @@ -30,7 +30,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index a4ff67c90..322259a01 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -28,7 +28,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/confirm.html b/www/views/confirm.html index 831d3182c..3622398a1 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -65,7 +65,7 @@ From
- +
{{wallet.name}}
diff --git a/www/views/customAmount.html b/www/views/customAmount.html index 95c4bd0fb..c05c8d704 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -21,7 +21,7 @@
- +
@@ -39,7 +39,7 @@
- + {{wallet.name}}
diff --git a/www/views/includes/walletItem.html b/www/views/includes/walletItem.html index c44abef1c..1d5ba209e 100644 --- a/www/views/includes/walletItem.html +++ b/www/views/includes/walletItem.html @@ -1,6 +1,6 @@
- +
{{wallet.name || wallet.id}} diff --git a/www/views/includes/walletSelector.html b/www/views/includes/walletSelector.html index add64d0cd..3fa8860f1 100644 --- a/www/views/includes/walletSelector.html +++ b/www/views/includes/walletSelector.html @@ -7,7 +7,7 @@ ng-click="selectWallet(w)" > - +
diff --git a/www/views/modals/txp-details.html b/www/views/modals/txp-details.html index beb122b9d..c5e2aea91 100644 --- a/www/views/modals/txp-details.html +++ b/www/views/modals/txp-details.html @@ -74,7 +74,7 @@ From
- +
{{wallet.name}}
diff --git a/www/views/paperWallet.html b/www/views/paperWallet.html index 904cb5b6c..d92aba85e 100644 --- a/www/views/paperWallet.html +++ b/www/views/paperWallet.html @@ -24,7 +24,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/sellCoinbase.html b/www/views/sellCoinbase.html index 6972c5f98..ae715ebe4 100644 --- a/www/views/sellCoinbase.html +++ b/www/views/sellCoinbase.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/sellGlidera.html b/www/views/sellGlidera.html index ee6e262c9..e3ac25c31 100644 --- a/www/views/sellGlidera.html +++ b/www/views/sellGlidera.html @@ -30,7 +30,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 7ffcb5629..1a30620da 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -81,7 +81,7 @@ class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet" ng-click="openWallet(wallet)"> - + {{wallet.name || wallet.id}} diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index c78317451..95c35b8de 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -63,7 +63,7 @@
- + {{wallet.name || wallet.id}} diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 8b1e0c3eb..23ef00e62 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -69,7 +69,7 @@
- + {{item.name}} diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index e6b3f0ad8..f5768dfd2 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -95,7 +95,7 @@ ui-sref="tabs.preferences({'walletId': item.id})" ng-repeat="item in wallets track by $index"> - + {{item.name || item.id}} diff --git a/www/views/topup.html b/www/views/topup.html index a9329ba94..2290359f6 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -31,10 +31,10 @@
-
From {{wallet.chain}}
+
From {{wallet.coin}}
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tx-details.html b/www/views/tx-details.html index 3e281b8bf..be97b37eb 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -53,7 +53,7 @@ To
- +
{{wallet.name}}
From 378a780df23ddfdd3c9bbeea4a6a07e72d9ef065 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 00:00:37 -0300 Subject: [PATCH 041/157] Currency in uppercase --- 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 03e9743af..167200e1d 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -234,7 +234,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ $state.transitionTo($scope.nextStep, { id: _id, amount: $scope.useSendMax ? null : _amount, - currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : $scope.coin, + currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : ($scope.coin).toUpperCase(), coin: $scope.coin, useSendMax: $scope.useSendMax }); From e85175ed6cbb1f2c3e3bbccf97d65acc7dffe8d5 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 09:59:49 -0300 Subject: [PATCH 042/157] Fix incomingData --- 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 48f037c7a..8e384b051 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -92,7 +92,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat var message = parsed.message; var amount = parsed.amount ? parsed.amount : ''; - var coin = parsed.extras && parsed.extras.coin ? (parsed.extras.coin).toUpperCase() : ''; + var coin = parsed.extras && parsed.extras.coin ? parsed.extras.coin : ''; if (parsed.r) { payproService.getPayProDetails(parsed.r, function(err, details) { From 5175e7e2c49f3d7d45f19d2a54e7434be7db4e01 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 12:57:32 -0300 Subject: [PATCH 043/157] Create, import join wallet BCH --- src/js/controllers/import.js | 2 ++ src/js/controllers/join.js | 4 +++- src/js/services/profileService.js | 8 +++++++- www/views/join.html | 11 +++++++++++ www/views/tab-create-shared.html | 10 ++++++++++ www/views/tab-import-phrase.html | 11 +++++++++++ 6 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index 3b34839ad..d026c6c07 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -15,6 +15,7 @@ angular.module('copayApp.controllers').controller('importController', $scope.formData.bwsurl = defaults.bws.url; $scope.formData.derivationPath = derivationPathHelper.default; $scope.formData.account = 1; + $scope.formData.coin = 'btc'; $scope.importErr = false; $scope.isCopay = appConfigService.name == 'copay'; $scope.fromHardwareWallet = { value: false }; @@ -273,6 +274,7 @@ angular.module('copayApp.controllers').controller('importController', } opts.passphrase = $scope.formData.passphrase || null; + opts.coin = $scope.formData.coin; if ($scope.fromHardwareWallet.value) { $log.debug('Importing seed from hardware wallet'); diff --git a/src/js/controllers/join.js b/src/js/controllers/join.js index 2728b6eb0..bf1e5ec00 100644 --- a/src/js/controllers/join.js +++ b/src/js/controllers/join.js @@ -10,6 +10,7 @@ angular.module('copayApp.controllers').controller('joinController', $scope.formData.derivationPath = derivationPathHelper.default; $scope.formData.account = 1; $scope.formData.secret = null; + $scope.formData.coin = 'btc'; resetPasswordFields(); updateSeedSourceSelect(); }); @@ -103,7 +104,8 @@ angular.module('copayApp.controllers').controller('joinController', var opts = { secret: $scope.formData.secret, myName: $scope.formData.myName, - bwsurl: $scope.formData.bwsurl + bwsurl: $scope.formData.bwsurl, + coin: $scope.formData.coin } var setSeed = $scope.formData.seedSource.id == 'set'; diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index bbba03cf6..bef87b67d 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -334,6 +334,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ passphrase: opts.passphrase, account: opts.account || 0, derivationStrategy: opts.derivationStrategy || 'BIP44', + coin: opts.coin }); } catch (ex) { @@ -352,6 +353,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ walletClient.seedFromExtendedPublicKey(opts.extendedPublicKey, opts.externalSource, opts.entropySource, { account: opts.account || 0, derivationStrategy: opts.derivationStrategy || 'BIP44', + coin: opts.coin }); walletClient.credentials.hwInfo = opts.hwInfo; } catch (ex) { @@ -366,6 +368,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ passphrase: opts.passphrase, language: lang, account: 0, + coin: opts.coin }); } catch (e) { $log.info('Error creating recovery phrase: ' + e.message); @@ -375,6 +378,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ network: network, passphrase: opts.passphrase, account: 0, + coin: opts.coin }); } else { return cb(e); @@ -442,7 +446,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ seedWallet(opts, function(err, walletClient) { if (err) return cb(err); - walletClient.joinWallet(opts.secret, opts.myName || 'me', {}, function(err) { + walletClient.joinWallet(opts.secret, opts.myName || 'me', { coin: opts.coin }, function(err) { if (err) return bwcError.cb(err, gettextCatalog.getString('Could not join wallet'), cb); addAndBindWalletClient(walletClient, { bwsurl: opts.bwsurl @@ -630,6 +634,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ entropySourcePath: opts.entropySourcePath, derivationStrategy: opts.derivationStrategy || 'BIP44', account: opts.account || 0, + coin: opts.coin }, function(err) { if (err) { if (err instanceof errors.NOT_AUTHORIZED) @@ -651,6 +656,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ walletClient.importFromExtendedPublicKey(opts.extendedPublicKey, opts.externalSource, opts.entropySource, { account: opts.account || 0, derivationStrategy: opts.derivationStrategy || 'BIP44', + coin: opts.coin }, function(err) { if (err) { diff --git a/www/views/join.html b/www/views/join.html index 411b8b190..ce282b67e 100644 --- a/www/views/join.html +++ b/www/views/join.html @@ -39,6 +39,17 @@
+ + +
diff --git a/www/views/tab-create-shared.html b/www/views/tab-create-shared.html index 700ac9c2b..593dad599 100644 --- a/www/views/tab-create-shared.html +++ b/www/views/tab-create-shared.html @@ -29,6 +29,16 @@ ng-blur="formFocus(false)"> + +
+ + +
From 09d1d5d3ffef0d54118ab7b246ba4ec66c45ac17 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Mon, 28 Aug 2017 13:33:10 -0300 Subject: [PATCH 044/157] add BCH to rateService --- src/js/services/rateService.js | 88 +++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 22 deletions(-) diff --git a/src/js/services/rateService.js b/src/js/services/rateService.js index 9cbfe2821..4cc6f88d5 100644 --- a/src/js/services/rateService.js +++ b/src/js/services/rateService.js @@ -25,9 +25,10 @@ var RateService = function(opts) { self._isAvailable = false; self._rates = {}; self._alternatives = []; + self._ratesBCH = {}; self._queued = []; - self._fetchCurrencies(); + self.updateRates(); }; @@ -39,14 +40,20 @@ RateService.singleton = function(opts) { return _instance; }; -RateService.prototype._fetchCurrencies = function() { +RateService.prototype.updateRates = function() { +console.log('[rateService.js.44:updateRates:]'); //TODO var self = this; var backoffSeconds = 5; var updateFrequencySeconds = 5 * 60; var rateServiceUrl = 'https://bitpay.com/api/rates'; + var bchRateServiceUrl = 'https://api.kraken.com/0/public/Ticker?pair=BCHUSD,BCHEUR'; + + + function getBTC(cb, tries) { + tries = tries || 0; + if (tries > 5) return cb('could not get BTC rates'); - var retrieve = function() { //log.info('Fetching exchange rates'); self.httprequest.get(rateServiceUrl).success(function(res) { self.lodash.each(res, function(currency) { @@ -57,27 +64,64 @@ RateService.prototype._fetchCurrencies = function() { rate: currency.rate }); }); + + return cb(); + }).error(function() { + //log.debug('Error fetching exchange rates', err); + setTimeout(function() { + backoffSeconds *= 1.5; + getBTC(cb, tries++); + }, backoffSeconds * 1000); + return; + }) + } + + function getBCH(cb, tries) { + tries = tries || 0; + if (tries > 5) return cb('could not get BCH rates'); + + function retry(tries) { +console.log('[rateService.js.84:retry:] BCH'); //TODO + //log.debug('Error fetching exchange rates', err); + setTimeout(function() { + backoffSeconds *= 1.5; + getBTC(cb, tries++); + }, backoffSeconds * 1000); + return; + } + + self.httprequest.get(bchRateServiceUrl).success(function(res) { + self.lodash.each(res.result, function(data, paircode) { + var code = paircode.substr(3,3); + var rate =data.c[0]; + self._ratesBCH[code] = rate; + }) + return cb(); + }).error(function() { + return retry(tries); + }) + } + + getBTC(function(err) { + if (err) return; + getBCH(function(err) { + if (err) return; + self._isAvailable = true; self.lodash.each(self._queued, function(callback) { setTimeout(callback, 1); }); - setTimeout(retrieve, updateFrequencySeconds * 1000); - }).error(function(err) { - //log.debug('Error fetching exchange rates', err); - setTimeout(function() { - backoffSeconds *= 1.5; - retrieve(); - }, backoffSeconds * 1000); - return; - }); + setTimeout( self.updateRates , updateFrequencySeconds * 1000); + }) + }) - }; - - retrieve(); }; -RateService.prototype.getRate = function(code) { - return this._rates[code]; +RateService.prototype.getRate = function(code, chain) { + if (chain = 'bch') + return this._ratesBCH[code]; + else + return this._rates[code]; }; RateService.prototype.getAlternatives = function() { @@ -90,25 +134,25 @@ RateService.prototype.isAvailable = function() { RateService.prototype.whenAvailable = function(callback) { if (this.isAvailable()) { - setTimeout(callback, 1); + setTimeout(callback, 10); } else { this._queued.push(callback); } }; -RateService.prototype.toFiat = function(satoshis, code) { +RateService.prototype.toFiat = function(satoshis, code, chain) { if (!this.isAvailable()) { return null; } - return satoshis * this.SAT_TO_BTC * this.getRate(code); + return satoshis * this.SAT_TO_BTC * this.getRate(code, chain); }; -RateService.prototype.fromFiat = function(amount, code) { +RateService.prototype.fromFiat = function(amount, code, chain) { if (!this.isAvailable()) { return null; } - return amount / this.getRate(code) * this.BTC_TO_SAT; + return amount / this.getRate(code, chain) * this.BTC_TO_SAT; }; RateService.prototype.listAlternatives = function(sort) { From a5a80684eb777b439befcc8edca45f256f45fc4a Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 15:51:13 -0300 Subject: [PATCH 045/157] Fix rateService. Add usd rates --- src/js/controllers/addresses.js | 6 ++-- src/js/controllers/amount.js | 4 +-- src/js/controllers/buyAmazon.js | 9 +++--- src/js/controllers/buyCoinbase.js | 5 +-- src/js/controllers/buyGlidera.js | 5 +-- src/js/controllers/buyMercadoLibre.js | 9 +++--- src/js/controllers/confirm.js | 18 +++++------ src/js/controllers/customAmount.js | 12 +++---- src/js/controllers/modals/txpDetails.js | 4 +-- src/js/controllers/onboarding/tour.js | 2 +- src/js/controllers/paperWallet.js | 3 +- src/js/controllers/sellCoinbase.js | 5 +-- src/js/controllers/sellGlidera.js | 5 +-- src/js/controllers/topup.js | 9 +++--- src/js/controllers/tx-details.js | 4 +-- src/js/routes.js | 3 +- src/js/services/rateService.js | 4 +-- src/js/services/txFormatService.js | 42 ++++++++++++------------- src/js/services/walletService.js | 18 +++++------ 19 files changed, 87 insertions(+), 80 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index 97cca45e1..684ee53de 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -83,9 +83,9 @@ angular.module('copayApp.controllers').controller('addressesController', functio $scope.lowWarning = resp.warning; $scope.lowUtxosNb = resp.lowUtxos.length; $scope.allUtxosNb = resp.allUtxos.length; - $scope.lowUtxosSum = txFormatService.formatAmountStr($scope.wallet, lodash.sum(resp.lowUtxos || 0, 'satoshis')); - $scope.allUtxosSum = txFormatService.formatAmountStr($scope.wallet, allSum); - $scope.minFee = txFormatService.formatAmountStr($scope.wallet, resp.minFee || 0); + $scope.lowUtxosSum = txFormatService.formatAmountStr($scope.wallet.coin, lodash.sum(resp.lowUtxos || 0, 'satoshis')); + $scope.allUtxosSum = txFormatService.formatAmountStr($scope.wallet.coin, allSum); + $scope.minFee = txFormatService.formatAmountStr($scope.wallet.coin, resp.minFee || 0); $scope.minFeePer = per.toFixed(2) + '%'; diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 167200e1d..813667251 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -200,11 +200,11 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; function fromFiat(val) { - return parseFloat((rateService.fromFiat(val, $scope.alternativeIsoCode) * satToUnit).toFixed(unitDecimals)); + return parseFloat((rateService.fromFiat(val, $scope.alternativeIsoCode, $scope.coin) * satToUnit).toFixed(unitDecimals)); }; function toFiat(val) { - return parseFloat((rateService.toFiat(val * unitToSatoshi, $scope.alternativeIsoCode)).toFixed(2)); + return parseFloat((rateService.toFiat(val * unitToSatoshi, $scope.alternativeIsoCode, $scope.coin)).toFixed(2)); }; function evaluate(val) { diff --git a/src/js/controllers/buyAmazon.js b/src/js/controllers/buyAmazon.js index ee3732e95..856888e68 100644 --- a/src/js/controllers/buyAmazon.js +++ b/src/js/controllers/buyAmazon.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', function($scope, $log, $state, $timeout, $filter, $ionicHistory, $ionicConfig, lodash, amazonService, popupService, profileService, ongoingProcess, configService, walletService, payproService, bwcError, externalLinkService, platformInfo, gettextCatalog, txFormatService) { + var coin = 'btc'; var amount; var currency; var createdTx; @@ -64,7 +65,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio }; var satToFiat = function(sat, cb) { - txFormatService.toFiat(sat, $scope.currencyIsoCode, function(value) { + txFormatService.toFiat(coin, sat, $scope.currencyIsoCode, function(value) { return cb(value); }); }; @@ -216,7 +217,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio }); var initialize = function(wallet) { - var parsedAmount = txFormatService.parseAmount(wallet, amount, currency); + var parsedAmount = txFormatService.parseAmount(coin, amount, currency); $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { @@ -260,7 +261,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio invoiceUrl: invoice.url, invoiceTime: invoice.invoiceTime }; - $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(coin, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); }); }); @@ -293,7 +294,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', functio onlyComplete: true, network: $scope.network, hasFunds: true, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js index d9690f058..10e6e35a0 100644 --- a/src/js/controllers/buyCoinbase.js +++ b/src/js/controllers/buyCoinbase.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', function($scope, $log, $state, $timeout, $ionicHistory, $ionicScrollDelegate, $ionicConfig, lodash, coinbaseService, popupService, profileService, ongoingProcess, walletService, txFormatService) { + var coin = 'btc'; var amount; var currency; @@ -96,7 +97,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { @@ -236,7 +237,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController', funct $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; var parsedAmount = txFormatService.parseAmount( - wallet, + coin, amount, currency); diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js index 536dbc1e8..a2040bc3c 100644 --- a/src/js/controllers/buyGlidera.js +++ b/src/js/controllers/buyGlidera.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', function($scope, $log, $state, $timeout, $ionicHistory, $ionicConfig, lodash, glideraService, popupService, profileService, ongoingProcess, walletService, platformInfo, txFormatService) { + var coin = 'btc'; var amount; var currency; @@ -78,7 +79,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { @@ -161,7 +162,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController', functi $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; var parsedAmount = txFormatService.parseAmount( - wallet, + coin, amount, currency); diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index 153a715d5..2bd96ed55 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', function($scope, $log, $state, $timeout, $filter, $ionicHistory, $ionicConfig, lodash, mercadoLibreService, popupService, profileService, ongoingProcess, configService, walletService, payproService, bwcError, externalLinkService, platformInfo, txFormatService, gettextCatalog) { + var coin = 'btc'; var amount; var currency; var createdTx; @@ -64,7 +65,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f }; var satToFiat = function(sat, cb) { - txFormatService.toFiat(sat, $scope.currencyIsoCode, function(value) { + txFormatService.toFiat(coin, sat, $scope.currencyIsoCode, function(value) { return cb(value); }); }; @@ -214,7 +215,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f }); var initialize = function(wallet) { - var parsedAmount = txFormatService.parseAmount(wallet, amount, currency); + var parsedAmount = txFormatService.parseAmount(coin, amount, currency); $scope.currencyIsoCode = parsedAmount.currency; $scope.amountUnitStr = parsedAmount.amountUnitStr; var dataSrc = { @@ -258,7 +259,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f invoiceUrl: invoice.url, invoiceTime: invoice.invoiceTime }; - $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(coin, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); }); }); @@ -285,7 +286,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f $scope.wallets = profileService.getWallets({ onlyComplete: true, network: $scope.network, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { showErrorAndBack(null, gettextCatalog.getString('No wallets available')); diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index e2065ebb2..4111487e3 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, gettextCatalog, walletService, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, profileService, bitcore, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { +angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { var countDown = null; var CONFIRM_LIMIT_USD = 20; @@ -238,10 +238,10 @@ angular.module('copayApp.controllers').controller('confirmController', function( if (!tx.toAmount) return; // Amount - tx.amountStr = txFormatService.formatAmountStr(wallet, tx.toAmount); + tx.amountStr = txFormatService.formatAmountStr(wallet.coin, tx.toAmount); tx.amountValueStr = tx.amountStr.split(' ')[0]; tx.amountUnitStr = tx.amountStr.split(' ')[1]; - txFormatService.formatAlternativeStr(tx.toAmount, function(v) { + txFormatService.formatAlternativeStr(wallet.coin, tx.toAmount, function(v) { tx.alternativeAmountStr = v; }); } @@ -292,8 +292,8 @@ angular.module('copayApp.controllers').controller('confirmController', function( getTxp(lodash.clone(tx), wallet, opts.dryRun, function(err, txp) { if (err) return cb(err); - txp.feeStr = txFormatService.formatAmountStr(wallet, txp.fee); - txFormatService.formatAlternativeStr(txp.fee, function(v) { + txp.feeStr = txFormatService.formatAmountStr(wallet.coin, txp.fee); + txFormatService.formatAlternativeStr(wallet.coin, txp.fee, function(v) { txp.alternativeFeeStr = v; }); @@ -343,20 +343,20 @@ angular.module('copayApp.controllers').controller('confirmController', function( var warningMsg = []; if (sendMaxInfo.utxosBelowFee > 0) { warningMsg.push(gettextCatalog.getString("A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided.", { - amountBelowFeeStr: txFormatService.formatAmountStr(wallet, sendMaxInfo.amountBelowFee) + amountBelowFeeStr: txFormatService.formatAmountStr(wallet.coin, sendMaxInfo.amountBelowFee) })); } if (sendMaxInfo.utxosAboveMaxSize > 0) { warningMsg.push(gettextCatalog.getString("A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded.", { - amountAboveMaxSizeStr: txFormatService.formatAmountStr(wallet, sendMaxInfo.amountAboveMaxSize) + amountAboveMaxSizeStr: txFormatService.formatAmountStr(wallet.coin, sendMaxInfo.amountAboveMaxSize) })); } return warningMsg.join('\n'); }; var msg = gettextCatalog.getString("{{fee}} will be deducted for bitcoin networking fees.", { - fee: txFormatService.formatAmountStr(wallet, sendMaxInfo.fee) + fee: txFormatService.formatAmountStr(wallet.coin, sendMaxInfo.fee) }); var warningMsg = verifyExcludedUtxos(); @@ -483,7 +483,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( if (walletService.isEncrypted(wallet)) return cb(); - var amountUsd = parseFloat(txFormatService.formatToUSD(txp.amount)); + var amountUsd = parseFloat(txFormatService.formatToUSD(wallet.coin, txp.amount)); if (amountUsd <= CONFIRM_LIMIT_USD) return cb(); diff --git a/src/js/controllers/customAmount.js b/src/js/controllers/customAmount.js index 4fa97ed18..a57ea8c3b 100644 --- a/src/js/controllers/customAmount.js +++ b/src/js/controllers/customAmount.js @@ -28,9 +28,9 @@ angular.module('copayApp.controllers').controller('customAmountController', func $scope.address = addr; - $scope.coin = (data.stateParams.coin).toLowerCase(); + $scope.coin = data.stateParams.coin; var parsedAmount = txFormatService.parseAmount( - $scope.wallet, + $scope.wallet.coin, data.stateParams.amount, data.stateParams.currency); @@ -43,13 +43,13 @@ angular.module('copayApp.controllers').controller('customAmountController', func // Convert to BTC or BCH var config = configService.getSync().wallet.settings; var amountUnit = txFormatService.satToUnit(parsedAmount.amountSat); - var btcParsedAmount = txFormatService.parseAmount($scope.wallet, amountUnit, $scope.wallet.coin); + var btcParsedAmount = txFormatService.parseAmount($scope.wallet.coin, amountUnit, $scope.wallet.coin); $scope.amountBtc = btcParsedAmount.amount; $scope.altAmountStr = btcParsedAmount.amountUnitStr; } else { $scope.amountBtc = amount; // BTC or BCH - $scope.altAmountStr = txFormatService.formatAlternativeStr(parsedAmount.amountSat); + $scope.altAmountStr = txFormatService.formatAlternativeStr($scope.wallet.coin, parsedAmount.amountSat); } }); }); @@ -63,12 +63,12 @@ angular.module('copayApp.controllers').controller('customAmountController', func $scope.shareAddress = function() { if (!platformInfo.isCordova) return; - var data = 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc; + var data = 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.wallet.coin; window.plugins.socialsharing.share(data, null, null, null); } $scope.copyToClipboard = function() { - return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.coin; + return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.wallet.coin; }; }); diff --git a/src/js/controllers/modals/txpDetails.js b/src/js/controllers/modals/txpDetails.js index 79c8738c6..a901871e8 100644 --- a/src/js/controllers/modals/txpDetails.js +++ b/src/js/controllers/modals/txpDetails.js @@ -23,7 +23,7 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi }; function displayFeeValues() { - txFormatService.formatAlternativeStr($scope.tx.fee, function(v) { + txFormatService.formatAlternativeStr($scope.wallet.coin, $scope.tx.fee, function(v) { $scope.tx.feeFiatStr = v; }); $scope.tx.feeRateStr = ($scope.tx.fee / ($scope.tx.amount + $scope.tx.fee) * 100).toFixed(2) + '%'; @@ -219,7 +219,7 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi copayerId: $scope.wallet.credentials.copayerId }); - $scope.tx = txFormatService.processTx($scope.wallet, tx); + $scope.tx = txFormatService.processTx($scope.wallet.coin, tx); if (!action && tx.status == 'pending') $scope.tx.pendingForUs = true; diff --git a/src/js/controllers/onboarding/tour.js b/src/js/controllers/onboarding/tour.js index bcea8c405..5781ec22a 100644 --- a/src/js/controllers/onboarding/tour.js +++ b/src/js/controllers/onboarding/tour.js @@ -27,7 +27,7 @@ angular.module('copayApp.controllers').controller('tourController', rateService.whenAvailable(function() { var localCurrency = 'USD'; var btcAmount = 1; - var rate = rateService.toFiat(btcAmount * 1e8, localCurrency); + var rate = rateService.toFiat(btcAmount * 1e8, localCurrency, 'btc'); $scope.localCurrencySymbol = '$'; $scope.localCurrencyPerBtc = $filter('formatFiatAmount')(parseFloat(rate.toFixed(2), 10)); $timeout(function() { diff --git a/src/js/controllers/paperWallet.js b/src/js/controllers/paperWallet.js index 83346fbbc..c00d4910b 100644 --- a/src/js/controllers/paperWallet.js +++ b/src/js/controllers/paperWallet.js @@ -45,8 +45,7 @@ angular.module('copayApp.controllers').controller('paperWalletController', $scope.balanceSat = balance; if ($scope.balanceSat <= 0) popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Not funds found')); - var config = configService.getSync().wallet.settings; - $scope.balance = txFormatService.formatAmount(balance) + ' ' + config.unitName; + $scope.balance = txFormatService.formatAmountStr($scope.wallet.coin, balance); } $scope.$apply(); }); diff --git a/src/js/controllers/sellCoinbase.js b/src/js/controllers/sellCoinbase.js index 624748f7c..b90b1e610 100644 --- a/src/js/controllers/sellCoinbase.js +++ b/src/js/controllers/sellCoinbase.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', function($scope, $log, $state, $timeout, $ionicHistory, $ionicScrollDelegate, $ionicConfig, lodash, coinbaseService, popupService, profileService, ongoingProcess, walletService, appConfigService, configService, txFormatService) { + var coin = 'btc'; var amount; var currency; @@ -183,7 +184,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func onlyComplete: true, network: $scope.network, hasFunds: true, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { @@ -304,7 +305,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController', func $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; var parsedAmount = txFormatService.parseAmount( - wallet, + coin, amount, currency); diff --git a/src/js/controllers/sellGlidera.js b/src/js/controllers/sellGlidera.js index bf5db0f7a..039286980 100644 --- a/src/js/controllers/sellGlidera.js +++ b/src/js/controllers/sellGlidera.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', function($scope, $log, $state, $timeout, $ionicHistory, $ionicConfig, lodash, glideraService, popupService, profileService, ongoingProcess, walletService, configService, platformInfo, txFormatService) { + var coin = 'btc'; var amount; var currency; @@ -80,7 +81,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct onlyComplete: true, network: $scope.network, hasFunds: true, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { @@ -229,7 +230,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController', funct $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; var parsedAmount = txFormatService.parseAmount( - wallet, + coin, amount, currency); diff --git a/src/js/controllers/topup.js b/src/js/controllers/topup.js index d72ad8e2a..ee47872cc 100644 --- a/src/js/controllers/topup.js +++ b/src/js/controllers/topup.js @@ -3,6 +3,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($scope, $log, $state, $timeout, $ionicHistory, $ionicConfig, lodash, popupService, profileService, ongoingProcess, walletService, configService, platformInfo, bitpayService, bitpayCardService, payproService, bwcError, txFormatService, sendMaxService, gettextCatalog) { $scope.isCordova = platformInfo.isCordova; + var coin = 'btc'; var cardId; var useSendMax; var amount; @@ -36,7 +37,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s }; var satToFiat = function(sat, cb) { - txFormatService.toFiat(sat, $scope.currencyIsoCode, function(value) { + txFormatService.toFiat(coin, sat, $scope.currencyIsoCode, function(value) { return cb(value); }); }; @@ -218,7 +219,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s // Save TX in memory createdTx = ctxp; - $scope.totalAmountStr = txFormatService.formatAmountStr(wallet, ctxp.amount); + $scope.totalAmountStr = txFormatService.formatAmountStr(coin, ctxp.amount); setTotalAmount(parsedAmount.amountSat, invoiceFeeSat, ctxp.fee); @@ -257,7 +258,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s onlyComplete: true, network: bitpayService.getEnvironment().network, hasFunds: true, - coin: 'btc' + coin: coin }); if (lodash.isEmpty($scope.wallets)) { @@ -320,7 +321,7 @@ angular.module('copayApp.controllers').controller('topUpController', function($s }); return; } - var parsedAmount = txFormatService.parseAmount(wallet, a, c); + var parsedAmount = txFormatService.parseAmount(coin, a, c); initializeTopUp(wallet, parsedAmount); }); }; diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index 58eb473aa..e2ef2f9f8 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -112,8 +112,8 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio return popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Transaction not available at this time')); } - $scope.btx = txFormatService.processTx($scope.wallet, tx); - txFormatService.formatAlternativeStr(tx.fees, function(v) { + $scope.btx = txFormatService.processTx($scope.wallet.coin, tx); + txFormatService.formatAlternativeStr($scope.wallet.coin, tx.fees, function(v) { $scope.btx.feeFiatStr = v; $scope.btx.feeRateStr = ($scope.btx.fees / ($scope.btx.amount + $scope.btx.fees) * 100).toFixed(2) + '%'; }); diff --git a/src/js/routes.js b/src/js/routes.js index e8beece45..c3e8442ae 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -667,7 +667,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr abstract: true, params: { id: null, - nextStep: 'tabs.paymentRequest.confirm' + nextStep: 'tabs.paymentRequest.confirm', + forceCoin: true } }) diff --git a/src/js/services/rateService.js b/src/js/services/rateService.js index 4cc6f88d5..a6dc7dd9e 100644 --- a/src/js/services/rateService.js +++ b/src/js/services/rateService.js @@ -118,9 +118,9 @@ console.log('[rateService.js.84:retry:] BCH'); //TODO }; RateService.prototype.getRate = function(code, chain) { - if (chain = 'bch') + if (chain == 'bch') return this._ratesBCH[code]; - else + else return this._rates[code]; }; diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index 428286d1a..249c28ad1 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -17,15 +17,15 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return this.Utils.formatAmount(satoshis, config.unitCode, opts); }; - root.formatAmountStr = function(wallet, satoshis) { + root.formatAmountStr = function(coin, satoshis) { if (isNaN(satoshis)) return; - return root.formatAmount(satoshis) + ' ' + wallet.coin; + return root.formatAmount(satoshis) + ' ' + coin; }; - root.toFiat = function(satoshis, code, cb) { + root.toFiat = function(coin, satoshis, code, cb) { if (isNaN(satoshis)) return; var val = function() { - var v1 = rateService.toFiat(satoshis, code); + var v1 = rateService.toFiat(satoshis, code, coin); if (!v1) return null; return v1.toFixed(2); @@ -42,10 +42,10 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, }; }; - root.formatToUSD = function(satoshis, cb) { + root.formatToUSD = function(coin, satoshis, cb) { if (isNaN(satoshis)) return; var val = function() { - var v1 = rateService.toFiat(satoshis, 'USD'); + var v1 = rateService.toFiat(satoshis, 'USD', coin); if (!v1) return null; return v1.toFixed(2); @@ -62,12 +62,12 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, }; }; - root.formatAlternativeStr = function(satoshis, cb) { + root.formatAlternativeStr = function(coin, satoshis, cb) { if (isNaN(satoshis)) return; var config = configService.getSync().wallet.settings; var val = function() { - var v1 = parseFloat((rateService.toFiat(satoshis, config.alternativeIsoCode)).toFixed(2)); + var v1 = parseFloat((rateService.toFiat(satoshis, config.alternativeIsoCode, coin)).toFixed(2)); v1 = $filter('formatFiatAmount')(v1); if (!v1) return null; @@ -85,7 +85,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, }; }; - root.processTx = function(wallet, tx) { + root.processTx = function(coin, tx) { if (!tx || tx.action == 'invalid') return tx; @@ -100,17 +100,17 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, tx.hasMultiplesOutputs = true; } tx.amount = lodash.reduce(tx.outputs, function(total, o) { - o.amountStr = root.formatAmountStr(wallet, o.amount); - o.alternativeAmountStr = root.formatAlternativeStr(o.amount); + o.amountStr = root.formatAmountStr(coin, o.amount); + o.alternativeAmountStr = root.formatAlternativeStr(coin, o.amount); return total + o.amount; }, 0); } tx.toAddress = tx.outputs[0].toAddress; } - tx.amountStr = root.formatAmountStr(wallet, tx.amount); - tx.alternativeAmountStr = root.formatAlternativeStr(tx.amount); - tx.feeStr = root.formatAmountStr(wallet, tx.fee || tx.fees); + tx.amountStr = root.formatAmountStr(coin, tx.amount); + tx.alternativeAmountStr = root.formatAlternativeStr(coin, tx.amount); + tx.feeStr = root.formatAmountStr(coin, tx.fee || tx.fees); if (tx.amountStr) { tx.amountValueStr = tx.amountStr.split(' ')[0]; @@ -154,7 +154,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return; } - tx = txFormatService.processTx(tx.wallet, tx); + tx = txFormatService.processTx(tx.wallet.coin, tx); var action = lodash.find(tx.actions, { copayerId: tx.wallet.copayerId @@ -179,7 +179,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, return txps; }; - root.parseAmount = function(wallet, amount, currency) { + root.parseAmount = function(coin, amount, currency) { var config = configService.getSync().wallet.settings; var satToBtc = 1 / 100000000; var unitToSatoshi = config.unitToSatoshi; @@ -190,19 +190,19 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, // If fiat currency if (currency != 'BCH' && currency != 'BTC' && currency != 'sat') { amountUnitStr = $filter('formatFiatAmount')(amount) + ' ' + currency; - amountSat = rateService.fromFiat(amount, currency).toFixed(0); + amountSat = rateService.fromFiat(amount, currency, coin).toFixed(0); } else if (currency == 'sat') { amountSat = amount; - amountUnitStr = root.formatAmountStr(wallet, amountSat); + amountUnitStr = root.formatAmountStr(coin, amountSat); // convert sat to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = (wallet.coin).toUpperCase(); + currency = (coin).toUpperCase(); } else { amountSat = parseInt((amount * unitToSatoshi).toFixed(0)); - amountUnitStr = root.formatAmountStr(wallet, amountSat); + amountUnitStr = root.formatAmountStr(coin, amountSat); // convert unit to BTC or BCH amount = (amountSat * satToBtc).toFixed(8); - currency = (wallet.coin).toUpperCase(); + currency = (coin).toUpperCase(); } return { diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 496765ea9..8d2ad40ca 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -130,7 +130,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim lodash.each(txps, function(tx) { - tx = txFormatService.processTx(wallet, tx); + tx = txFormatService.processTx(wallet.coin, tx); // no future transactions... if (tx.createdOn > now) @@ -237,11 +237,11 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim rateService.whenAvailable(function() { - var totalBalanceAlternative = rateService.toFiat(cache.totalBalanceSat, cache.alternativeIsoCode); - var pendingBalanceAlternative = rateService.toFiat(cache.pendingAmount, cache.alternativeIsoCode); - var lockedBalanceAlternative = rateService.toFiat(cache.lockedBalanceSat, cache.alternativeIsoCode); - var spendableBalanceAlternative = rateService.toFiat(cache.spendableAmount, cache.alternativeIsoCode); - var alternativeConversionRate = rateService.toFiat(100000000, cache.alternativeIsoCode); + var totalBalanceAlternative = rateService.toFiat(cache.totalBalanceSat, cache.alternativeIsoCode, wallet.coin); + var pendingBalanceAlternative = rateService.toFiat(cache.pendingAmount, cache.alternativeIsoCode, wallet.coin); + var lockedBalanceAlternative = rateService.toFiat(cache.lockedBalanceSat, cache.alternativeIsoCode, wallet.coin); + var spendableBalanceAlternative = rateService.toFiat(cache.spendableAmount, cache.alternativeIsoCode, wallet.coin); + var alternativeConversionRate = rateService.toFiat(100000000, cache.alternativeIsoCode, wallet.coin); cache.totalBalanceAlternative = $filter('formatFiatAmount')(totalBalanceAlternative); cache.pendingBalanceAlternative = $filter('formatFiatAmount')(pendingBalanceAlternative); @@ -365,7 +365,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim wallet.hasUnsafeConfirmed = false; lodash.each(txs, function(tx) { - tx = txFormatService.processTx(wallet, tx); + tx = txFormatService.processTx(wallet.coin, tx); // no future transactions... if (tx.time > now) @@ -419,8 +419,8 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim $log.debug('Fixing Tx Cache Unit to: ' + wallet.coin) lodash.each(txs, function(tx) { - tx.amountStr = txFormatService.formatAmountStr(wallet, tx.amount); - tx.feeStr = txFormatService.formatAmountStr(wallet, tx.fees); + tx.amountStr = txFormatService.formatAmountStr(wallet.coin, tx.amount); + tx.feeStr = txFormatService.formatAmountStr(wallet.coin, tx.fees); }); }; From 2e9d2793208fe65c6c137abbe315f470fdf87612 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 16:10:23 -0300 Subject: [PATCH 046/157] Fix getTxInfo, formatAmountStr --- src/js/services/profileService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index bef87b67d..492171431 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -881,7 +881,7 @@ console.log('[profileService.js:92]',wallet); //TODO/ x.types = [x.type]; if (x.data && x.data.amount) - x.amountStr = txFormatService.formatAmountStr(wallet, x.data.amount); + x.amountStr = txFormatService.formatAmountStr(wallet.coin, x.data.amount); x.action = function() { // TODO? From ac5a5a9bdc40ba719489f857f71e244fcac1d6ec Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 17:17:32 -0300 Subject: [PATCH 047/157] Fix feeRate, sendMax --- src/js/controllers/modals/feeLevels.js | 6 +++--- src/js/controllers/paperWallet.js | 4 ++-- src/js/controllers/preferencesFee.js | 4 ++-- src/js/services/coinbaseService.js | 4 ++-- src/js/services/feeService.js | 6 +++--- src/js/services/profileService.js | 4 ---- src/js/services/walletService.js | 2 +- 7 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/js/controllers/modals/feeLevels.js b/src/js/controllers/modals/feeLevels.js index 72a3e2abf..30776ac88 100644 --- a/src/js/controllers/modals/feeLevels.js +++ b/src/js/controllers/modals/feeLevels.js @@ -18,14 +18,14 @@ angular.module('copayApp.controllers').controller('feeLevelsController', functio var value = lodash.find($scope.feeLevels[$scope.network], { level: 'superEconomy' }); - return parseInt((value.feePerKB / 1000).toFixed()); + return parseInt((value.feePerKb / 1000).toFixed()); }; var getMaxRecommended = function() { var value = lodash.find($scope.feeLevels[$scope.network], { level: 'urgent' }); - return parseInt((value.feePerKB / 1000).toFixed()); + return parseInt((value.feePerKb / 1000).toFixed()); }; $scope.ok = function() { @@ -61,7 +61,7 @@ angular.module('copayApp.controllers').controller('feeLevelsController', functio // If no custom fee if (value) { $scope.customFeePerKB = null; - $scope.feePerSatByte = (value.feePerKB / 1000).toFixed(); + $scope.feePerSatByte = (value.feePerKb / 1000).toFixed(); $scope.avgConfirmationTime = value.nbBlocks * 10; } else { $scope.avgConfirmationTime = null; diff --git a/src/js/controllers/paperWallet.js b/src/js/controllers/paperWallet.js index c00d4910b..82390bc3e 100644 --- a/src/js/controllers/paperWallet.js +++ b/src/js/controllers/paperWallet.js @@ -59,9 +59,9 @@ angular.module('copayApp.controllers').controller('paperWalletController', $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, null, function(err, testTx) { if (err) return cb(err); var rawTxLength = testTx.serialize().length; - feeService.getCurrentFeeRate('livenet', function(err, feePerKB) { + feeService.getCurrentFeeRate('livenet', function(err, feePerKb) { var opts = {}; - opts.fee = Math.round((feePerKB * rawTxLength) / 2000); + opts.fee = Math.round((feePerKb * rawTxLength) / 2000); $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, opts, function(err, tx) { if (err) return cb(err); $scope.wallet.broadcastRawTx({ diff --git a/src/js/controllers/preferencesFee.js b/src/js/controllers/preferencesFee.js index 9339b413e..5446d7737 100644 --- a/src/js/controllers/preferencesFee.js +++ b/src/js/controllers/preferencesFee.js @@ -66,7 +66,7 @@ angular.module('copayApp.controllers').controller('preferencesFeeController', fu return; } - $scope.feePerSatByte = (value.feePerKB / 1000).toFixed(); + $scope.feePerSatByte = (value.feePerKb / 1000).toFixed(); $scope.avgConfirmationTime = value.nbBlocks * 10; $scope.invalidCustomFeeEntered = false; setMinWarning(); @@ -97,7 +97,7 @@ angular.module('copayApp.controllers').controller('preferencesFeeController', fu var value = lodash.find($scope.feeLevels[$scope.network], { level: 'superEconomy' }); - return parseInt((value.feePerKB / 1000).toFixed()); + return parseInt((value.feePerKb / 1000).toFixed()); }; var setMinWarning = function() { diff --git a/src/js/services/coinbaseService.js b/src/js/services/coinbaseService.js index 87e732bb1..6c393e307 100644 --- a/src/js/services/coinbaseService.js +++ b/src/js/services/coinbaseService.js @@ -170,9 +170,9 @@ angular.module('copayApp.services').factory('coinbaseService', function($http, $ var _getNetAmount = function(amount, cb) { // Fee Normal for a single transaction (450 bytes) var txNormalFeeKB = 450 / 1000; - feeService.getFeeRate(null, 'normal', function(err, feePerKB) { + feeService.getFeeRate(null, 'normal', function(err, feePerKb) { if (err) return cb(err); - var feeBTC = (feePerKB * txNormalFeeKB / 100000000).toFixed(8); + var feeBTC = (feePerKb * txNormalFeeKB / 100000000).toFixed(8); return cb(null, amount - feeBTC, feeBTC); }); diff --git a/src/js/services/feeService.js b/src/js/services/feeService.js index e827cac1b..c396c2337 100644 --- a/src/js/services/feeService.js +++ b/src/js/services/feeService.js @@ -37,7 +37,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou level: feeLevel }); - if (!feeLevelRate || !feeLevelRate.feePerKB) { + if (!feeLevelRate || !feeLevelRate.feePerKb) { return cb({ message: gettextCatalog.getString("Could not get dynamic fee for level: {{feeLevel}}", { feeLevel: feeLevel @@ -45,9 +45,9 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou }); } - var feeRate = feeLevelRate.feePerKB; + var feeRate = feeLevelRate.feePerKb; - if (!fromCache) $log.debug('Dynamic fee: ' + feeLevel + '/' + network + ' ' + (feeLevelRate.feePerKB / 1000).toFixed() + ' SAT/B'); + if (!fromCache) $log.debug('Dynamic fee: ' + feeLevel + '/' + network + ' ' + (feeLevelRate.feePerKb / 1000).toFixed() + ' SAT/B'); return cb(null, feeRate); }); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 492171431..f30a011f8 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -90,10 +90,6 @@ angular.module('copayApp.services') wallet.m = wallet.credentials.m; wallet.n = wallet.credentials.n; wallet.coin = wallet.credentials.coin ? wallet.credentials.coin : 'btc'; -console.log('[profileService.js:92]',wallet); //TODO/ - - // TODO: Should return "coin" = "btc" or "bch" - //client.credentials.coin = 'btc'; root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 8d2ad40ca..295484558 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -922,7 +922,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim root.getMinFee = function(wallet, feeLevels, nbOutputs) { var lowLevelRate = (lodash.find(feeLevels[wallet.network], { level: 'normal', - }).feePerKB / 1000).toFixed(0); + }).feePerKb / 1000).toFixed(0); var size = root.getEstimatedTxSize(wallet, nbOutputs); return size * lowLevelRate; From db04a31a061ede31744d555be918c3222fca78d6 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 18:01:07 -0300 Subject: [PATCH 048/157] Fix priority normal for bch transactions --- src/js/controllers/confirm.js | 9 +++++++-- src/js/services/profileService.js | 9 ++++++--- www/views/confirm.html | 18 ++++++++++-------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 4111487e3..26265dda9 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -119,6 +119,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); }; + // TODO: Default fee level for BCH + if (data.stateParams.coin == 'bch') { + configFeeLevel = 'normal'; + } + // Setup $scope // Grab stateParams @@ -142,13 +147,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( txp: {}, }; - // Other Scope vars $scope.isCordova = isCordova; $scope.isWindowsPhoneApp = isWindowsPhoneApp; $scope.showAddress = false; - $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); setWalletSelector(tx.coin, tx.network, tx.toAmount, function(err) { @@ -563,6 +566,8 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.chooseFeeLevel = function(tx, wallet) { + if (wallet.coin == 'bch') return; + var scope = $rootScope.$new(true); scope.network = tx.network; scope.feeLevel = tx.feeLevel; diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index f30a011f8..006adaf23 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -91,6 +91,9 @@ angular.module('copayApp.services') wallet.n = wallet.credentials.n; wallet.coin = wallet.credentials.coin ? wallet.credentials.coin : 'btc'; + // TODO + if (wallet.id == 'bf338d5b-6b2e-4118-adb0-6208c2d22a81') wallet.credentials.coin = wallet.coin = 'bch'; + root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; @@ -864,7 +867,7 @@ angular.module('copayApp.services') }); }; - function process(wallet, notifications) { + function process(notifications) { if (!notifications) return []; var shown = lodash.sortBy(notifications, 'createdOn').reverse(); @@ -877,7 +880,7 @@ angular.module('copayApp.services') x.types = [x.type]; if (x.data && x.data.amount) - x.amountStr = txFormatService.formatAmountStr(wallet.coin, x.data.amount); + x.amountStr = txFormatService.formatAmountStr(x.wallet.coin, x.data.amount); x.action = function() { // TODO? @@ -955,7 +958,7 @@ angular.module('copayApp.services') notifications = lodash.sortBy(notifications, 'createdOn'); notifications = lodash.compact(lodash.flatten(notifications)).slice(0, MAX); var total = notifications.length; - return cb(null, process(wallet, notifications), total); + return cb(null, process(notifications), total); }; }); }); diff --git a/www/views/confirm.html b/www/views/confirm.html index 3622398a1..fa0fd8821 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -79,18 +79,20 @@
{{'Fee:' | translate}} {{tx.feeLevelName | translate}} - {{tx.txp[wallet.id].feeStr || '...'}} - - {{tx.txp[wallet.id].alternativeFeeStr || '...'}}  - · -   - {{tx.txp[wallet.id].feeRatePerStr}} of the sending amount + + {{tx.txp[wallet.id].feeStr || '...'}} + + {{tx.txp[wallet.id].alternativeFeeStr || '...'}}  + · +   + {{tx.txp[wallet.id].feeRatePerStr}} of the sending amount + + - - +
Add Memo From 5613e06e6234b023e8684858a6023a1c594fb5ce Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 28 Aug 2017 18:15:08 -0300 Subject: [PATCH 049/157] Import bch from file --- src/js/controllers/import.js | 2 ++ www/views/tab-import-file.html | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index d026c6c07..b520ad2b6 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -204,6 +204,7 @@ angular.module('copayApp.controllers').controller('importController', if (evt.target.readyState == FileReader.DONE) { // DONE == 2 var opts = {}; opts.bwsurl = $scope.formData.bwsurl; + opts.coin = $scope.formData.coin; _importBlob(evt.target.result, opts); } } @@ -229,6 +230,7 @@ angular.module('copayApp.controllers').controller('importController', } else { var opts = {}; opts.bwsurl = $scope.formData.bwsurl; + opts.coin = $scope.formData.coin; _importBlob(backupText, opts); } }; diff --git a/www/views/tab-import-file.html b/www/views/tab-import-file.html index 65e9ee001..4f931dc8e 100644 --- a/www/views/tab-import-file.html +++ b/www/views/tab-import-file.html @@ -21,6 +21,16 @@ ng-model="formData.password"> + +
From c21afeca3059e39d321cc38796d2c9b06fd1f851 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 29 Aug 2017 10:52:26 -0300 Subject: [PATCH 050/157] cash support in amount.js --- src/js/controllers/advancedSettings.js | 17 +++ src/js/controllers/amount.js | 151 +++++++++++++++++++++---- src/js/services/configService.js | 10 +- src/sass/views/amount.scss | 2 +- www/views/advancedSettings.html | 10 ++ www/views/amount.html | 16 +-- 6 files changed, 170 insertions(+), 36 deletions(-) diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index cd065200c..baca061fc 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -14,6 +14,10 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', $scope.hideNextSteps = { value: config.hideNextSteps.enabled }; + $scope.cashSupport = { + value: config.cashSupport.enabled + }; + }; $scope.spendUnconfirmedChange = function() { @@ -27,6 +31,19 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; + + $scope.cashSupportChange = function() { + var opts = { + cashSupport: { + enabled: $scope.cashSupport.value + } + }; + configService.set(opts, function(err) { + if (err) $log.debug(err); + }); + }; + + $scope.nextStepsChange = function() { var opts = { hideNextSteps: { diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 813667251..d1f503efb 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -9,6 +9,12 @@ angular.module('copayApp.controllers').controller('amountController', function($ var SMALL_FONT_SIZE_LIMIT = 10; var LENGTH_EXPRESSION_LIMIT = 19; var isNW = platformInfo.isNW; + + var unitIndex = 0; + var altUnitIndex = 0; + var availableUnits = []; + var fiatCode; + $scope.isChromeApp = platformInfo.isChromeApp; $scope.$on('$ionicView.leave', function() { @@ -16,13 +22,71 @@ angular.module('copayApp.controllers').controller('amountController', function($ }); $scope.$on("$ionicView.beforeEnter", function(event, data) { + + var config = configService.getSync().wallet.settings; + + function setAvailableUnits() { + + // TODO: Depends on the available wallets + // also, depends on forceCurrency & forceCoin + // Take this from somewhere elase + availableUnits = [{ + name: 'Bitcoin', + id: 'btc', + shortName: 'BTC', + }]; + + + var anyCashWallet = true; // TODO!! + if (anyCashWallet) { + availableUnits.push({ + name: 'Bitcoin Cash', + id: 'bch', + shortName: 'BCH', + }); + }; + + + var fiat; + if (data.stateParams.currency) { + fiat = data.stateParams.currency; + } else { + fiat = config.fiat || 'USD'; + } + + availableUnits.push({ + name: fiat, // TODO + id: fiat, + shortName: fiat, + isFiat: true, + }); + + unitIndex = 0; + altUnitIndex = availableUnits.length - 1; + fiatCode = fiat; + }; + // Go to... _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) $scope.nextStep = data.stateParams.nextStep; + + // TODO $scope.currency = data.stateParams.currency; $scope.forceCurrency = data.stateParams.forceCurrency; $scope.forceCoin = data.stateParams.forceCoin; - $scope.coin = data.stateParams.coin || 'btc'; + + + // TODO + // if (data.stateParams.coin) { + // unitIndex = lodash.indexOf(data.stateParams.coin.toUpperCase()); + // if (unitIndex < 0) { + // $log.warn('Could not find desired coin:' + data.stateParams.coin) + // unitIndex = 0; + // } + // } + + setAvailableUnits(); + updateUnitUI(); $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || $ionicHistory.backView().stateName == 'tabs.bitpayCard'); @@ -30,7 +94,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.toAddress = data.stateParams.toAddress; $scope.toName = data.stateParams.toName; $scope.toEmail = data.stateParams.toEmail; - $scope.showAlternativeAmount = !!$scope.nextStep; $scope.toColor = data.stateParams.toColor; $scope.showSendMax = false; @@ -63,13 +126,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.$apply(); }); }); - - var config = configService.getSync().wallet.settings; - if (data.stateParams.currency) { - $scope.alternativeIsoCode = data.stateParams.currency; - } else { - $scope.alternativeIsoCode = config.alternativeIsoCode || 'USD'; - } $scope.specificAmount = $scope.specificAlternativeAmount = ''; $scope.isCordova = platformInfo.isCordova; unitToSatoshi = config.unitToSatoshi; @@ -115,6 +171,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.finish(); }; + + // TODO $scope.toggleAlternative = function() { if ($scope.forceCurrency) return; $scope.showAlternativeAmount = !$scope.showAlternativeAmount; @@ -125,10 +183,52 @@ angular.module('copayApp.controllers').controller('amountController', function($ } }; - $scope.toggleCoin = function() { - if ($scope.forceCurrency || $scope.forceCoin) return; + function updateUnitUI() { - $scope.coin = $scope.coin == 'btc' ? 'bch' : 'btc'; + $scope.unit = availableUnits[unitIndex].shortName; + $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; + + processAmount(); + $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); //TODO + }; + + $scope.changeUnit = function() { + // TODO + // if ($scope.forceCurrency || $scope.forceCoin) return; + + unitIndex++; + if (unitIndex >= availableUnits.length) unitIndex = 0; + + + if (availableUnits[unitIndex].isFiat) { + // Always return to BTC... TODO? + altUnitIndex = 0; + } else { + altUnitIndex = lodash.findIndex(availableUnits, { + isFiat: true + }); + } + + updateUnitUI(); + }; + + + $scope.changeAlternativeUnit = function() { + console.log('[amount.js.215:changeAlternativeUnit:]'); //TODO + + // Do nothing is fiat is not main unit + if (!availableUnits[unitIndex].isFiat) return; + + var nextCoin = lodash.findIndex(availableUnits, function(x) { + if (x.isFiat) return false; + if (x.id == availableUnits[altUnitIndex].id) return false; + return true; + }); + + if (nextCoin >= 0) { + altUnitIndex = nextCoin; + updateUnitUI(); + } }; function checkFontSize() { @@ -139,7 +239,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.pushDigit = function(digit) { if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return; if ($scope.amount.indexOf('.') > -1 && digit == '.') return; - if ($scope.showAlternativeAmount && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; + if (availableUnits[unitIndex].isFiat && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; $scope.amount = ($scope.amount + digit).replace('..', '.'); checkFontSize(); @@ -176,7 +276,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; $scope.resetAmount = function() { - $scope.amount = $scope.alternativeResult = $scope.amountResult = $scope.globalResult = ''; + $scope.amount = $scope.alternativeAmount = $scope.globalResult = ''; $scope.allowSend = false; checkFontSize(); }; @@ -187,24 +287,28 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.allowSend = lodash.isNumber(result) && +result > 0; if (lodash.isNumber(result)) { $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; - $scope.amountResult = $filter('formatFiatAmount')(toFiat(result)); - $scope.alternativeResult = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); + + if (availableUnits[unitIndex].isFiat) { + $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); + } else { + $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); + } } }; function processResult(val) { - if ($scope.showAlternativeAmount) + if (availableUnits[unitIndex].isFiat) return $filter('formatFiatAmount')(val); else return txFormatService.formatAmount(val.toFixed(unitDecimals) * unitToSatoshi, true); }; function fromFiat(val) { - return parseFloat((rateService.fromFiat(val, $scope.alternativeIsoCode, $scope.coin) * satToUnit).toFixed(unitDecimals)); + return parseFloat((rateService.fromFiat(val, fiatCode, availableUnits[altUnitIndex].id) * satToUnit).toFixed(unitDecimals)); }; function toFiat(val) { - return parseFloat((rateService.toFiat(val * unitToSatoshi, $scope.alternativeIsoCode, $scope.coin)).toFixed(2)); + return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); }; function evaluate(val) { @@ -219,6 +323,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; function format(val) { + if (!val) return; + var result = val.toString(); if (isOperator(lodash.last(val))) @@ -234,8 +340,9 @@ angular.module('copayApp.controllers').controller('amountController', function($ $state.transitionTo($scope.nextStep, { id: _id, amount: $scope.useSendMax ? null : _amount, - currency: $scope.showAlternativeAmount ? $scope.alternativeIsoCode : ($scope.coin).toUpperCase(), - coin: $scope.coin, + // TODO + currency: $scope.showAlternativeAmount ? fiatCode : (coin).toUpperCase(), + coin: coin, useSendMax: $scope.useSendMax }); } else { @@ -247,7 +354,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ toName: $scope.toName, toEmail: $scope.toEmail, toColor: $scope.toColor, - coin: $scope.coin, + coin: coin, useSendMax: $scope.useSendMax }); } diff --git a/src/js/services/configService.js b/src/js/services/configService.js index 3fa2f1f59..de2776c0d 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -61,7 +61,10 @@ angular.module('copayApp.services').factory('configService', function(storageSer bannedUntil: null, }, - // External services + cashSupport: { + enabled: true, + }, + recentTransactions: { enabled: true, }, @@ -133,6 +136,11 @@ angular.module('copayApp.services').factory('configService', function(storageSer configCache.hideNextSteps = defaultConfig.hideNextSteps; } + + if (!configCache.cashSupport) { + configCache.cashSupport = defaultConfig.cashSupport; + } + if (!configCache.recentTransactions) { configCache.recentTransactions = defaultConfig.recentTransactions; } diff --git a/src/sass/views/amount.scss b/src/sass/views/amount.scss index 1f6a242d6..bd45e524a 100644 --- a/src/sass/views/amount.scss +++ b/src/sass/views/amount.scss @@ -200,7 +200,7 @@ &__result { color: $v-light-gray; font-size: .9em; - margin-bottom: -.9em; + //margin-bottom: -.9em; TODO matias line-height: 1; @media(max-height: 480px) { margin-bottom: 0; diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index 68f1f58a5..6b610b5ea 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -7,6 +7,16 @@
+ + + Support Bitcoin Cash + + + + + Use Unconfirmed Funds diff --git a/www/views/amount.html b/www/views/amount.html index 4f37414ca..5d79f8ad7 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -48,19 +48,11 @@
{{amount || "0.00" }} - {{alternativeIsoCode}} - {{coin}} + {{unit}}
-
- -
-
-
{{globalResult}} {{coin}}
-
≈ {{amountResult || '0.00'}} {{alternativeIsoCode}}
-
-
-
{{globalResult}} {{alternativeIsoCode}}
-
{{alternativeResult || '0.00'}} {{coin}}
+
+
{{globalResult}} {{unit}}
+
≈ {{alternativeAmount || '0.00'}} {{alternativeUnit}}
From e040871e2650dc408d4cddfd4b562d164365d350 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 29 Aug 2017 11:24:29 -0300 Subject: [PATCH 051/157] add confirm fixes --- src/js/controllers/amount.js | 55 +++++++++++++++++++---------------- src/js/controllers/confirm.js | 1 + 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index d1f503efb..0252636a1 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -27,9 +27,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ function setAvailableUnits() { - // TODO: Depends on the available wallets - // also, depends on forceCurrency & forceCoin - // Take this from somewhere elase availableUnits = [{ name: 'Bitcoin', id: 'btc', @@ -70,20 +67,18 @@ angular.module('copayApp.controllers').controller('amountController', function($ _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) $scope.nextStep = data.stateParams.nextStep; - // TODO - $scope.currency = data.stateParams.currency; $scope.forceCurrency = data.stateParams.forceCurrency; $scope.forceCoin = data.stateParams.forceCoin; - - // TODO - // if (data.stateParams.coin) { - // unitIndex = lodash.indexOf(data.stateParams.coin.toUpperCase()); - // if (unitIndex < 0) { - // $log.warn('Could not find desired coin:' + data.stateParams.coin) - // unitIndex = 0; - // } - // } + if (data.stateParams.coin) { + var index = lodash.findIndex(availableUnits, { id: data.stateParams.coin }); + + if (index < 0) { + $log.warn('Could not find desired coin:' + data.stateParams.coin) + } else { + unitIndex = index; + } + } setAvailableUnits(); updateUnitUI(); @@ -172,11 +167,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; - // TODO $scope.toggleAlternative = function() { - if ($scope.forceCurrency) return; - $scope.showAlternativeAmount = !$scope.showAlternativeAmount; - if ($scope.amount && isExpression($scope.amount)) { var amount = evaluate(format($scope.amount)); $scope.globalResult = '= ' + processResult(amount); @@ -193,8 +184,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; $scope.changeUnit = function() { - // TODO - // if ($scope.forceCurrency || $scope.forceCoin) return; + if ($scope.forceCurrency || $scope.forceCoin) return; unitIndex++; if (unitIndex >= availableUnits.length) unitIndex = 0; @@ -334,27 +324,42 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; $scope.finish = function() { + + var unit = availableUnits[unitIndex]; var _amount = evaluate(format($scope.amount)); if ($scope.nextStep) { + + var coin = unit.id; + if (unit.isFiat) { + coin = availableUnits[altUnitIndex].id; + } + $state.transitionTo($scope.nextStep, { id: _id, amount: $scope.useSendMax ? null : _amount, - // TODO - currency: $scope.showAlternativeAmount ? fiatCode : (coin).toUpperCase(), + currency: unit.id.toUpperCase(), coin: coin, useSendMax: $scope.useSendMax }); } else { - var amount = $scope.showAlternativeAmount ? fromFiat(_amount) : _amount; + var amount = _amount; + + if (unit.isFiat) { + amount = fromFiat(_amount); + } else if ($scope.useSendMax){ + amount = (amount * unitToSatoshi).toFixed(0); + } + + $state.transitionTo('tabs.send.confirm', { recipientType: $scope.recipientType, - toAmount: $scope.useSendMax ? null : (amount * unitToSatoshi).toFixed(0), + toAmount: amount, toAddress: $scope.toAddress, toName: $scope.toName, toEmail: $scope.toEmail, toColor: $scope.toColor, - coin: coin, + coin: unit.id, useSendMax: $scope.useSendMax }); } diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 26265dda9..1f792fa8d 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -74,6 +74,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; +console.log('[confirm.js.76]', network, coin); //TODO $scope.wallets = profileService.getWallets({ onlyComplete: true, network: network, From 42ee794c3e22375ce5841d6e20ec19999a6af86f Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 29 Aug 2017 12:45:10 -0300 Subject: [PATCH 052/157] fix fixedUnit --- src/js/controllers/amount.js | 60 +++++++++++++++++++++++------------- src/js/routes.js | 12 ++------ 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 0252636a1..8697b9d37 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -15,6 +15,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ var availableUnits = []; var fiatCode; + var fixedUnit; + $scope.isChromeApp = platformInfo.isChromeApp; $scope.$on('$ionicView.leave', function() { @@ -33,8 +35,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ shortName: 'BTC', }]; - - var anyCashWallet = true; // TODO!! + + var anyCashWallet = true; // TODO!! if (anyCashWallet) { availableUnits.push({ name: 'Bitcoin Cash', @@ -43,12 +45,38 @@ angular.module('copayApp.controllers').controller('amountController', function($ }); }; + unitIndex = 0; + if (data.stateParams.coin) { + var coins = data.stateParams.coin.split(','); + var newAvailableUnits = []; + + lodash.each(coins, function(c) { + var coin = lodash.find(availableUnits, { + id: c + }); + if (!coin) { + $log.warn('Could not find desired coin:' + data.stateParams.coin) + } else { + newAvailableUnits.push(coin); + } + }); + + if (newAvailableUnits.length>0) { + availableUnits = newAvailableUnits; + } + } + + + // currency have preference var fiat; if (data.stateParams.currency) { fiat = data.stateParams.currency; + altUnitIndex = unitIndex + unitIndex = availableUnits.length; } else { fiat = config.fiat || 'USD'; + altUnitIndex = availableUnits.length; } availableUnits.push({ @@ -58,27 +86,17 @@ angular.module('copayApp.controllers').controller('amountController', function($ isFiat: true, }); - unitIndex = 0; - altUnitIndex = availableUnits.length - 1; fiatCode = fiat; + + if (data.stateParams.fixedUnit) { + fixedUnit = true; + } }; // Go to... _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) $scope.nextStep = data.stateParams.nextStep; - $scope.forceCurrency = data.stateParams.forceCurrency; - $scope.forceCoin = data.stateParams.forceCoin; - - if (data.stateParams.coin) { - var index = lodash.findIndex(availableUnits, { id: data.stateParams.coin }); - - if (index < 0) { - $log.warn('Could not find desired coin:' + data.stateParams.coin) - } else { - unitIndex = index; - } - } setAvailableUnits(); updateUnitUI(); @@ -175,16 +193,15 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; function updateUnitUI() { - $scope.unit = availableUnits[unitIndex].shortName; $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; processAmount(); - $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); //TODO + $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); }; $scope.changeUnit = function() { - if ($scope.forceCurrency || $scope.forceCoin) return; + if (fixedUnit) return; unitIndex++; if (unitIndex >= availableUnits.length) unitIndex = 0; @@ -204,7 +221,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.changeAlternativeUnit = function() { - console.log('[amount.js.215:changeAlternativeUnit:]'); //TODO // Do nothing is fiat is not main unit if (!availableUnits[unitIndex].isFiat) return; @@ -332,7 +348,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ var coin = unit.id; if (unit.isFiat) { - coin = availableUnits[altUnitIndex].id; + coin = availableUnits[altUnitIndex].id; } $state.transitionTo($scope.nextStep, { @@ -347,7 +363,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ if (unit.isFiat) { amount = fromFiat(_amount); - } else if ($scope.useSendMax){ + } else if ($scope.useSendMax) { amount = (amount * unitToSatoshi).toFixed(0); } diff --git a/src/js/routes.js b/src/js/routes.js index c3e8442ae..0fe72181d 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/:recipientType/:toAddress/:toName/:toEmail/:toColor/:coin', + url: '/amount/:recipientType/:toAddress/:toName/:toEmail/:toColor/:coin/:fixedUnit', views: { 'tab-send@tabs': { controller: 'amountController', @@ -668,7 +668,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { id: null, nextStep: 'tabs.paymentRequest.confirm', - forceCoin: true } }) @@ -918,7 +917,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr }, params: { coin: 'btc', - forceCoin: true } }) .state('tabs.buyandsell.glidera.amount', { @@ -975,7 +973,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr }, params: { coin: 'btc', - forceCoin: true } }) .state('tabs.preferences.coinbase', { @@ -1064,9 +1061,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { nextStep: 'tabs.giftcards.mercadoLibre.buy', currency: 'BRL', - forceCurrency: true, coin: 'btc', - forceCoin: true + fixedUnit: 1, } }) .state('tabs.giftcards.mercadoLibre.buy', { @@ -1117,9 +1113,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr params: { nextStep: 'tabs.giftcards.amazon.buy', currency: 'USD', - forceCurrency: true, coin: 'btc', - forceCoin: true + fixedUnit: true, } }) .state('tabs.giftcards.amazon.buy', { @@ -1160,7 +1155,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr id: null, currency: 'USD', coin: 'btc', - forceCoin: true, useSendMax: null } }) From 491aef0acf89aa96843581eb28ff9085b688e29c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 29 Aug 2017 15:42:51 -0300 Subject: [PATCH 053/157] Fix amount in satoshis --- 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 8697b9d37..c759f0dfb 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -363,7 +363,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ if (unit.isFiat) { amount = fromFiat(_amount); - } else if ($scope.useSendMax) { + } else { amount = (amount * unitToSatoshi).toFixed(0); } From 70fa50177c78d27168e90aba47f100e9e181957c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 29 Aug 2017 15:47:39 -0300 Subject: [PATCH 054/157] Fix fee levels for btc and bch --- src/js/controllers/addresses.js | 2 +- src/js/controllers/confirm.js | 4 ++-- src/js/controllers/modals/feeLevels.js | 2 +- src/js/controllers/paperWallet.js | 2 +- src/js/controllers/preferencesFee.js | 3 ++- src/js/controllers/tx-details.js | 2 +- src/js/controllers/walletDetails.js | 4 ++-- src/js/services/coinbaseService.js | 2 +- src/js/services/feeService.js | 13 +++++++------ src/js/services/profileService.js | 5 +---- src/js/services/sendMax.js | 2 +- www/views/confirm.html | 2 -- 12 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index 684ee53de..cfcd33f64 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -70,7 +70,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio - feeService.getFeeLevels(function(err, levels){ + feeService.getFeeLevels($scope.wallet.coin, function(err, levels){ walletService.getLowUtxos($scope.wallet, levels, function(err, resp) { if (err) return; diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 1f792fa8d..45605f719 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -74,7 +74,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; -console.log('[confirm.js.76]', network, coin); //TODO $scope.wallets = profileService.getWallets({ onlyComplete: true, network: network, @@ -256,7 +255,7 @@ console.log('[confirm.js.76]', network, coin); //TODO // End of quick refresh, before wallet is selected. if (!wallet) return cb(); - feeService.getFeeRate(tx.network, tx.feeLevel, function(err, feeRate) { + feeService.getFeeRate(wallet.coin, tx.network, tx.feeLevel, function(err, feeRate) { if (err) return cb(err); if (!usingCustomFee) tx.feeRate = feeRate; @@ -573,6 +572,7 @@ console.log('[confirm.js.76]', network, coin); //TODO scope.network = tx.network; scope.feeLevel = tx.feeLevel; scope.noSave = true; + scope.coin = wallet.coin; if (usingCustomFee) { scope.customFeePerKB = tx.feeRate; diff --git a/src/js/controllers/modals/feeLevels.js b/src/js/controllers/modals/feeLevels.js index 30776ac88..691ce7d32 100644 --- a/src/js/controllers/modals/feeLevels.js +++ b/src/js/controllers/modals/feeLevels.js @@ -102,7 +102,7 @@ angular.module('copayApp.controllers').controller('feeLevelsController', functio $scope.feeOpts = feeService.feeOpts; $scope.loadingFee = true; - feeService.getFeeLevels(function(err, levels) { + feeService.getFeeLevels($scope.coin, function(err, levels) { $scope.loadingFee = false; if (err || lodash.isEmpty(levels)) { showErrorAndClose(null, err); diff --git a/src/js/controllers/paperWallet.js b/src/js/controllers/paperWallet.js index 82390bc3e..72a1d961a 100644 --- a/src/js/controllers/paperWallet.js +++ b/src/js/controllers/paperWallet.js @@ -59,7 +59,7 @@ angular.module('copayApp.controllers').controller('paperWalletController', $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, null, function(err, testTx) { if (err) return cb(err); var rawTxLength = testTx.serialize().length; - feeService.getCurrentFeeRate('livenet', function(err, feePerKb) { + feeService.getCurrentFeeRate('btc', 'livenet', function(err, feePerKb) { var opts = {}; opts.fee = Math.round((feePerKb * rawTxLength) / 2000); $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, opts, function(err, tx) { diff --git a/src/js/controllers/preferencesFee.js b/src/js/controllers/preferencesFee.js index 5446d7737..686c78460 100644 --- a/src/js/controllers/preferencesFee.js +++ b/src/js/controllers/preferencesFee.js @@ -32,11 +32,12 @@ angular.module('copayApp.controllers').controller('preferencesFeeController', fu }); $scope.init = function() { + var coin = 'btc'; // TODO: only BTC in preferences $scope.network = $scope.network || 'livenet'; $scope.feeOpts = feeService.feeOpts; $scope.currentFeeLevel = $scope.feeLevel || feeService.getCurrentFeeLevel(); $scope.loadingFee = true; - feeService.getFeeLevels(function(err, levels) { + feeService.getFeeLevels(coin, function(err, levels) { $scope.loadingFee = false; if (err) { //Error is already formatted diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index e2ef2f9f8..2d3a87cb8 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -131,7 +131,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio $scope.$digest(); }); - feeService.getFeeLevels(function(err, levels) { + feeService.getFeeLevels($scope.wallet.coin, function(err, levels) { if (err) return; walletService.getLowAmount($scope.wallet, levels, function(err, amount) { if (err) return; diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index 912086c79..2f112d21c 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -52,7 +52,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun var analyzeUtxos = function() { if (analyzeUtxosDone) return; - feeService.getFeeLevels(function(err, levels) { + feeService.getFeeLevels($scope.wallet.coin, function(err, levels) { if (err) return; walletService.getLowUtxos($scope.wallet, levels, function(err, resp) { if (err || !resp) return; @@ -169,7 +169,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun }); }; - feeService.getFeeLevels(function(err, levels) { + feeService.getFeeLevels($scope.wallet.coin, function(err, levels) { walletService.getTxHistory($scope.wallet, { progressFn: progressFn, feeLevels: levels, diff --git a/src/js/services/coinbaseService.js b/src/js/services/coinbaseService.js index 6c393e307..87d1205a6 100644 --- a/src/js/services/coinbaseService.js +++ b/src/js/services/coinbaseService.js @@ -170,7 +170,7 @@ angular.module('copayApp.services').factory('coinbaseService', function($http, $ var _getNetAmount = function(amount, cb) { // Fee Normal for a single transaction (450 bytes) var txNormalFeeKB = 450 / 1000; - feeService.getFeeRate(null, 'normal', function(err, feePerKb) { + feeService.getFeeRate('btc', 'livenet', 'normal', function(err, feePerKb) { if (err) return cb(err); var feeBTC = (feePerKb * txNormalFeeKB / 100000000).toFixed(8); diff --git a/src/js/services/feeService.js b/src/js/services/feeService.js index c396c2337..2109d7ea0 100644 --- a/src/js/services/feeService.js +++ b/src/js/services/feeService.js @@ -24,13 +24,13 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou }; - root.getFeeRate = function(network, feeLevel, cb) { + root.getFeeRate = function(coin, network, feeLevel, cb) { if (feeLevel == 'custom') return cb(); network = network || 'livenet'; - root.getFeeLevels(function(err, levels, fromCache) { + root.getFeeLevels(coin, function(err, levels, fromCache) { if (err) return cb(err); var feeLevelRate = lodash.find(levels[network], { @@ -53,11 +53,12 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou }); }; - root.getCurrentFeeRate = function(network, cb) { - return root.getFeeRate(network, root.getCurrentFeeLevel(), cb); + root.getCurrentFeeRate = function(coin, network, cb) { + return root.getFeeRate(coin, network, root.getCurrentFeeLevel(), cb); }; - root.getFeeLevels = function(cb) { + root.getFeeLevels = function(coin, cb) { + coin = coin || 'btc'; if (cache.updateTs > Date.now() - CACHE_TIME_TS * 1000) { return cb(null, cache.data, true); @@ -65,7 +66,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou var walletClient = bwcService.getClient(); - walletClient.getFeeLevels('btc', 'livenet', function(errLivenet, levelsLivenet) { + walletClient.getFeeLevels(coin, 'livenet', function(errLivenet, levelsLivenet) { walletClient.getFeeLevels('btc', 'testnet', function(errTestnet, levelsTestnet) { if (errLivenet || errTestnet) { return cb(gettextCatalog.getString('Could not get dynamic fee')); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 006adaf23..b1b9404fa 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -89,10 +89,7 @@ angular.module('copayApp.services') wallet.copayerId = wallet.credentials.copayerId; wallet.m = wallet.credentials.m; wallet.n = wallet.credentials.n; - wallet.coin = wallet.credentials.coin ? wallet.credentials.coin : 'btc'; - - // TODO - if (wallet.id == 'bf338d5b-6b2e-4118-adb0-6208c2d22a81') wallet.credentials.coin = wallet.coin = 'bch'; + wallet.coin = wallet.credentials.coin; root.updateWalletSettings(wallet); root.wallet[walletId] = wallet; diff --git a/src/js/services/sendMax.js b/src/js/services/sendMax.js index a9c238a1e..9183a3ca2 100644 --- a/src/js/services/sendMax.js +++ b/src/js/services/sendMax.js @@ -10,7 +10,7 @@ angular.module('copayApp.services').service('sendMaxService', function(feeServic * */ this.getInfo = function(wallet, cb) { - feeService.getCurrentFeeRate(wallet.credentials.network, function(err, feePerKb) { + feeService.getCurrentFeeRate(wallet.coin, wallet.credentials.network, function(err, feePerKb) { if (err) return cb(err); var config = configService.getSync().wallet; diff --git a/www/views/confirm.html b/www/views/confirm.html index fa0fd8821..ab289f266 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -79,7 +79,6 @@
{{'Fee:' | translate}} {{tx.feeLevelName | translate}} - {{tx.txp[wallet.id].feeStr || '...'}} {{tx.txp[wallet.id].alternativeFeeStr || '...'}}  @@ -90,7 +89,6 @@ -
From 2a455337976bce56dffbb7cf03d68a04b2459047 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 15:54:30 -0300 Subject: [PATCH 055/157] Fix address view for new wallets --- src/js/controllers/addresses.js | 2 +- src/js/services/walletService.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index cfcd33f64..0b9de5aa1 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -74,7 +74,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio walletService.getLowUtxos($scope.wallet, levels, function(err, resp) { if (err) return; - if (resp.allUtxos && resp.allUtxos.length) { + if (resp && resp.allUtxos && resp.allUtxos.length) { var allSum = lodash.sum(resp.allUtxos || 0, 'satoshis'); diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 295484558..9b375807c 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -939,7 +939,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim root.getLowUtxos = function(wallet, levels, cb) { - wallet.getUtxos({}, function(err, resp) { + wallet.getUtxos({coin: wallet.coin}, function(err, resp) { if (err || !resp || !resp.length) return cb(); var minFee = root.getMinFee(wallet, levels, resp.length); From 7d648276165db6d21f7416c8dd0aa913df9e3159 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 16:38:42 -0300 Subject: [PATCH 056/157] Adds setting for bitcoin cash support --- src/js/controllers/advancedSettings.js | 10 +++++++--- src/js/controllers/create.js | 4 ++++ src/js/controllers/import.js | 3 +++ src/js/controllers/join.js | 2 ++ src/js/services/configService.js | 2 +- www/views/advancedSettings.html | 5 +++-- www/views/includes/cash.html | 9 +++++++++ www/views/join.html | 10 +--------- www/views/tab-create-personal.html | 10 +--------- www/views/tab-create-shared.html | 10 +--------- www/views/tab-import-file.html | 10 +--------- www/views/tab-import-phrase.html | 10 +--------- 12 files changed, 34 insertions(+), 51 deletions(-) create mode 100644 www/views/includes/cash.html diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index baca061fc..f44719914 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('advancedSettingsController', function($scope, $log, configService, platformInfo) { +angular.module('copayApp.controllers').controller('advancedSettingsController', function($scope, $log, configService, platformInfo, externalLinkService) { var updateConfig = function() { var config = configService.getSync(); @@ -15,9 +15,9 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', value: config.hideNextSteps.enabled }; $scope.cashSupport = { - value: config.cashSupport.enabled + value: config.cashSupport.enabled }; - + }; $scope.spendUnconfirmedChange = function() { @@ -66,6 +66,10 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; + $scope.openExternalLink = function(url) { + externalLinkService.open(url); + }; + $scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP; updateConfig(); diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index b32e8bd25..e1d84bfed 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -22,12 +22,16 @@ angular.module('copayApp.controllers').controller('createController', $scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.formData = {}; var defaults = configService.getDefaults(); + var config = configService.getSync(); var tc = $state.current.name == 'tabs.add.create-personal' ? 1 : defaults.wallet.totalCopayers; $scope.formData.account = 1; $scope.formData.bwsurl = defaults.bws.url; $scope.TCValues = lodash.range(2, defaults.limits.totalCopayers + 1); $scope.formData.derivationPath = derivationPathHelper.default; $scope.formData.coin = 'btc'; + + if (config.cashSupport.enabled) $scope.enableCash = true; + $scope.setTotalCopayers(tc); updateRCSelect(tc); resetPasswordFields(); diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index b520ad2b6..c66cb4a3f 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -5,6 +5,7 @@ angular.module('copayApp.controllers').controller('importController', var reader = new FileReader(); var defaults = configService.getDefaults(); + var config = configService.getSync(); var errors = bwcService.getErrors(); $scope.init = function() { @@ -20,6 +21,8 @@ angular.module('copayApp.controllers').controller('importController', $scope.isCopay = appConfigService.name == 'copay'; $scope.fromHardwareWallet = { value: false }; + if (config.cashSupport.enabled) $scope.enableCash = true; + if ($stateParams.code) $scope.processWalletInfo($stateParams.code); diff --git a/src/js/controllers/join.js b/src/js/controllers/join.js index bf1e5ec00..2a209701d 100644 --- a/src/js/controllers/join.js +++ b/src/js/controllers/join.js @@ -5,12 +5,14 @@ angular.module('copayApp.controllers').controller('joinController', $scope.$on("$ionicView.beforeEnter", function(event, data) { var defaults = configService.getDefaults(); + var config = configService.getSync(); $scope.formData = {}; $scope.formData.bwsurl = defaults.bws.url; $scope.formData.derivationPath = derivationPathHelper.default; $scope.formData.account = 1; $scope.formData.secret = null; $scope.formData.coin = 'btc'; + if (config.cashSupport.enabled) $scope.enableCash = true; resetPasswordFields(); updateSeedSourceSelect(); }); diff --git a/src/js/services/configService.js b/src/js/services/configService.js index de2776c0d..8d3bae013 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -62,7 +62,7 @@ angular.module('copayApp.services').factory('configService', function(storageSer }, cashSupport: { - enabled: true, + enabled: false, }, recentTransactions: { diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index 6b610b5ea..a02356120 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -12,10 +12,11 @@ Support Bitcoin Cash
- Enable Bitcoin Cash wallet creation and operation within the App. Learn more about Bitcoin Cash at its main website + Enable Bitcoin Cash wallet creation and operation within the App. Learn more about Bitcoin Cash at + its main website
- + Use Unconfirmed Funds diff --git a/www/views/includes/cash.html b/www/views/includes/cash.html new file mode 100644 index 000000000..e67fb182b --- /dev/null +++ b/www/views/includes/cash.html @@ -0,0 +1,9 @@ + diff --git a/www/views/join.html b/www/views/join.html index ce282b67e..8b858fa80 100644 --- a/www/views/join.html +++ b/www/views/join.html @@ -40,15 +40,7 @@
- +
diff --git a/www/views/tab-create-personal.html b/www/views/tab-create-personal.html index 38bb2794f..505f854d4 100644 --- a/www/views/tab-create-personal.html +++ b/www/views/tab-create-personal.html @@ -19,15 +19,7 @@ required> - +
diff --git a/www/views/tab-create-shared.html b/www/views/tab-create-shared.html index 593dad599..cdbb7ceec 100644 --- a/www/views/tab-create-shared.html +++ b/www/views/tab-create-shared.html @@ -29,15 +29,7 @@ ng-blur="formFocus(false)"> - +
- +
From 1bf879e08a4b0c5ebb731fb6e1f31463fe13459d Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 16:51:24 -0300 Subject: [PATCH 057/157] Fix transfer to another wallet --- src/js/controllers/tab-send.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 830cc167b..77a664632 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -76,6 +76,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( color: v.color, name: v.name, recipientType: 'wallet', + coin: v.coin, getAddress: function(cb) { walletService.getAddress(v, false, cb); }, @@ -186,7 +187,8 @@ angular.module('copayApp.controllers').controller('tabSendController', function( toAddress: addr, toName: item.name, toEmail: item.email, - toColor: item.color + toColor: item.color, + coin: item.coin }) }); }); From c38eb4b54c1b772d41b5b975fe8eccb9d17cead7 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Wed, 30 Aug 2017 17:32:11 -0300 Subject: [PATCH 058/157] ref enable bch text - fix open external link --- src/js/controllers/advancedSettings.js | 12 +++++++++--- www/views/advancedSettings.html | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index f44719914..b9bf65449 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('advancedSettingsController', function($scope, $log, configService, platformInfo, externalLinkService) { +angular.module('copayApp.controllers').controller('advancedSettingsController', function($scope, $log, configService, platformInfo, externalLinkService, gettextCatalog) { var updateConfig = function() { var config = configService.getSync(); @@ -66,8 +66,14 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; - $scope.openExternalLink = function(url) { - externalLinkService.open(url); + $scope.learnMore = function() { + var url = 'https://www.bitcoincash.org/'; + var optIn = true; + var title = null; + var message = gettextCatalog.getString('Open bitcoincash.org?'); + var okText = gettextCatalog.getString('Open'); + var cancelText = gettextCatalog.getString('Go Back'); + externalLinkService.open(url, optIn, title, message, okText, cancelText); }; $scope.$on("$ionicView.beforeEnter", function(event, data) { diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index a02356120..85dcaf0d4 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -12,8 +12,8 @@ Support Bitcoin Cash
- Enable Bitcoin Cash wallet creation and operation within the App. Learn more about Bitcoin Cash at - its main website + Enable Bitcoin Cash wallet creation and operation within the App. + Learn more
From 55c27f684c97bea9b55e10c574ff101ecee8cb5b Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 18:24:11 -0300 Subject: [PATCH 059/157] Fix rateService --- src/js/services/rateService.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/services/rateService.js b/src/js/services/rateService.js index a6dc7dd9e..b97dfb652 100644 --- a/src/js/services/rateService.js +++ b/src/js/services/rateService.js @@ -52,6 +52,7 @@ console.log('[rateService.js.44:updateRates:]'); //TODO function getBTC(cb, tries) { tries = tries || 0; + if (!self.httprequest) return; if (tries > 5) return cb('could not get BTC rates'); //log.info('Fetching exchange rates'); @@ -78,10 +79,10 @@ console.log('[rateService.js.44:updateRates:]'); //TODO function getBCH(cb, tries) { tries = tries || 0; + if (!self.httprequest) return; if (tries > 5) return cb('could not get BCH rates'); function retry(tries) { -console.log('[rateService.js.84:retry:] BCH'); //TODO //log.debug('Error fetching exchange rates', err); setTimeout(function() { backoffSeconds *= 1.5; From 235e610d8495d03f626577c64c0aa9f25cd29239 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 18:25:12 -0300 Subject: [PATCH 060/157] Fix coin to formatAmount --- src/js/services/walletService.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 9b375807c..5bf2c7597 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -414,14 +414,14 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var cacheCoin = txs[0].amountStr.split(' ')[1]; - if (cacheCoin == wallet.coin) - return; + if (cacheCoin == 'bits') { - $log.debug('Fixing Tx Cache Unit to: ' + wallet.coin) - lodash.each(txs, function(tx) { - tx.amountStr = txFormatService.formatAmountStr(wallet.coin, tx.amount); - tx.feeStr = txFormatService.formatAmountStr(wallet.coin, tx.fees); - }); + $log.debug('Fixing Tx Cache Unit to: ' + 'btc') + lodash.each(txs, function(tx) { + tx.amountStr = txFormatService.formatAmountStr('BTC', tx.amount); + tx.feeStr = txFormatService.formatAmountStr('BTC', tx.fees); + }); + } }; getSavedTxs(walletId, function(err, txsFromLocal) { From 4329142a2b86d107d6148c4fbe86f10b8daef1f9 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 30 Aug 2017 19:40:35 -0300 Subject: [PATCH 061/157] Currency str to uppercase --- src/js/services/txFormatService.js | 2 +- src/js/services/walletService.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index 249c28ad1..96bc1d657 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -19,7 +19,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, root.formatAmountStr = function(coin, satoshis) { if (isNaN(satoshis)) return; - return root.formatAmount(satoshis) + ' ' + coin; + return root.formatAmount(satoshis) + ' ' + (coin).toUpperCase(); }; root.toFiat = function(coin, satoshis, code, cb) { diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 5bf2c7597..d292ecf2b 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -215,11 +215,11 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim cache.satToUnit = 1 / cache.unitToSatoshi; //STR - cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + wallet.coin; - cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + wallet.coin; - cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + wallet.coin; - cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + wallet.coin; - cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + wallet.coin; + cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + (wallet.coin).toUpperCase(); + cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + (wallet.coin).toUpperCase(); + cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + (wallet.coin).toUpperCase(); + cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + (wallet.coin).toUpperCase(); + cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + (wallet.coin).toUpperCase(); cache.alternativeName = config.settings.alternativeName; cache.alternativeIsoCode = config.settings.alternativeIsoCode; From 7d9f7d9303cb30ea88c408f92b73805f26321732 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 10:08:26 -0300 Subject: [PATCH 062/157] Fix units. Ref formatAmount --- src/js/controllers/addresses.js | 2 +- src/js/services/walletService.js | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/js/controllers/addresses.js b/src/js/controllers/addresses.js index 0b9de5aa1..c83279f84 100644 --- a/src/js/controllers/addresses.js +++ b/src/js/controllers/addresses.js @@ -50,7 +50,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio $scope.latestWithBalance = lodash.slice(withBalance, 0, BALANCE_ADDRESS_LIMIT); lodash.each(withBalance, function(a) { - a.balanceStr = txFormatService.formatAmount(a.amount); + a.balanceStr = txFormatService.formatAmountStr($scope.wallet.coin, a.amount); }); $scope.viewAll = { diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index d292ecf2b..1e7eb6dc8 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -215,11 +215,11 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim cache.satToUnit = 1 / cache.unitToSatoshi; //STR - cache.totalBalanceStr = txFormatService.formatAmount(cache.totalBalanceSat) + ' ' + (wallet.coin).toUpperCase(); - cache.lockedBalanceStr = txFormatService.formatAmount(cache.lockedBalanceSat) + ' ' + (wallet.coin).toUpperCase(); - cache.availableBalanceStr = txFormatService.formatAmount(cache.availableBalanceSat) + ' ' + (wallet.coin).toUpperCase(); - cache.spendableBalanceStr = txFormatService.formatAmount(cache.spendableAmount) + ' ' + (wallet.coin).toUpperCase(); - cache.pendingBalanceStr = txFormatService.formatAmount(cache.pendingAmount) + ' ' + (wallet.coin).toUpperCase(); + cache.totalBalanceStr = txFormatService.formatAmountStr(wallet.coin, cache.totalBalanceSat); + cache.lockedBalanceStr = txFormatService.formatAmountStr(wallet.coin, cache.lockedBalanceSat); + cache.availableBalanceStr = txFormatService.formatAmountStr(wallet.coin, cache.availableBalanceSat); + cache.spendableBalanceStr = txFormatService.formatAmountStr(wallet.coin, cache.spendableAmount); + cache.pendingBalanceStr = txFormatService.formatAmountStr(wallet.coin, cache.pendingAmount); cache.alternativeName = config.settings.alternativeName; cache.alternativeIsoCode = config.settings.alternativeIsoCode; @@ -416,10 +416,10 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim if (cacheCoin == 'bits') { - $log.debug('Fixing Tx Cache Unit to: ' + 'btc') + $log.debug('Fixing Tx Cache Unit to: ' + wallet.coin) lodash.each(txs, function(tx) { - tx.amountStr = txFormatService.formatAmountStr('BTC', tx.amount); - tx.feeStr = txFormatService.formatAmountStr('BTC', tx.fees); + tx.amountStr = txFormatService.formatAmountStr(wallet.coin, tx.amount); + tx.feeStr = txFormatService.formatAmountStr(wallet.coin, tx.fees); }); } }; From d3dda639dbb21b28ed1b401b785ded5632a1341c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 12:11:33 -0300 Subject: [PATCH 063/157] Default config unit for txFormatAmount --- src/js/services/txFormatService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/txFormatService.js b/src/js/services/txFormatService.js index 96bc1d657..a8bc292c6 100644 --- a/src/js/services/txFormatService.js +++ b/src/js/services/txFormatService.js @@ -7,7 +7,7 @@ angular.module('copayApp.services').factory('txFormatService', function($filter, root.formatAmount = function(satoshis, fullPrecision) { - var config = configService.getSync().wallet.settings; + var config = configService.getDefaults().wallet.settings; if (config.unitCode == 'sat') return satoshis; //TODO : now only works for english, specify opts to change thousand separator and decimal separator From 6f3cea4a89eabfa6dca95ccb6e79a9ebe2ee3cb7 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 14:12:53 -0300 Subject: [PATCH 064/157] Fix UI walletDetail unconfirmed --- src/sass/views/walletDetails.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sass/views/walletDetails.scss b/src/sass/views/walletDetails.scss index a3ef99348..85baf42b8 100644 --- a/src/sass/views/walletDetails.scss +++ b/src/sass/views/walletDetails.scss @@ -215,6 +215,11 @@ &__button-balance { background-color: transparent; border: 1px solid rgba(255,255,255,0.25); + margin-top: 10px; + i.icon { + margin-right: 7px; + vertical-align: middle; + } } &__error { From 9d85481ae641c3269d79dbc3b4adf393e917f433 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 14:42:43 -0300 Subject: [PATCH 065/157] Fix link to blockchain --- src/js/controllers/tx-details.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index 2d3a87cb8..2815878a5 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -5,6 +5,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio var txId; var listeners = []; var config = configService.getSync(); + var blockexplorerUrl; $scope.$on("$ionicView.beforeEnter", function(event, data) { txId = data.stateParams.txid; @@ -15,6 +16,12 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio $scope.isShared = $scope.wallet.credentials.n > 1; $scope.txsUnsubscribedForNotifications = config.confirmedTxsNotifications ? !config.confirmedTxsNotifications.enabled : true; + if ($scope.wallet.coin == 'bch') { + blockexplorerUrl = 'cashexplorer.bitcoin.com'; + } else { + blockexplorerUrl = 'insight.bitpay.com'; + } + txConfirmNotification.checkIfEnabled(txId, function(res) { $scope.txNotification = { value: res @@ -178,7 +185,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio $scope.viewOnBlockchain = function() { var btx = $scope.btx; - var url = 'https://' + ($scope.getShortNetworkName() == 'test' ? 'test-' : '') + 'insight.bitpay.com/tx/' + btx.txid; + var url = 'https://' + ($scope.getShortNetworkName() == 'test' ? 'test-' : '') + blockexplorerUrl + '/tx/' + btx.txid; var optIn = true; var title = null; var message = gettextCatalog.getString('View Transaction on Insight'); From e310c5a9816a0bd3462d88cceeb0e1e0b7fa76a9 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 14:47:16 -0300 Subject: [PATCH 066/157] Removes console log --- src/js/services/rateService.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/services/rateService.js b/src/js/services/rateService.js index b97dfb652..3818120a0 100644 --- a/src/js/services/rateService.js +++ b/src/js/services/rateService.js @@ -41,7 +41,6 @@ RateService.singleton = function(opts) { }; RateService.prototype.updateRates = function() { -console.log('[rateService.js.44:updateRates:]'); //TODO var self = this; var backoffSeconds = 5; From fc9b563d9af82e83d5220e897dc40b95a34cbf38 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 15:01:46 -0300 Subject: [PATCH 067/157] Upgrade to BWC v6 --- app-template/package-template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index 849d1e6a3..cd74ad7e6 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -56,7 +56,7 @@ "bezier-easing": "^2.0.3", "bhttp": "1.2.1", "bitauth": "^0.2.1", - "bitcore-wallet-client": "5.3.0", + "bitcore-wallet-client": "6.0.0", "bower": "^1.7.9", "cordova-android": "5.1.1", "cordova-custom-config": "^3.0.5", From 540010eab20afa3b6db66484f6fdb776083e1669 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 17:04:26 -0300 Subject: [PATCH 068/157] Fix bitcoin for Buy and sell section --- www/img/icon-bitcoin.svg | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/www/img/icon-bitcoin.svg b/www/img/icon-bitcoin.svg index 5c532c555..efbddeafd 100644 --- a/www/img/icon-bitcoin.svg +++ b/www/img/icon-bitcoin.svg @@ -1,31 +1,11 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + From 874af73cfb9d17068b99c345c84e5182494c4a12 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 17:05:08 -0300 Subject: [PATCH 069/157] Removes coin on wallet selector (topup) --- www/views/topup.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/topup.html b/www/views/topup.html index 2290359f6..7d140c450 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -31,7 +31,7 @@
-
From {{wallet.coin}}
+
From
From f96f0bb0372c4979b19f92913891139fe5dcf995 Mon Sep 17 00:00:00 2001 From: matias Date: Thu, 31 Aug 2017 17:13:54 -0300 Subject: [PATCH 070/157] fix amount.js for fiat/config --- .editorconfig | 11 - src/js/controllers/amount.js | 703 +++++++++++++++++------------------ 2 files changed, 351 insertions(+), 363 deletions(-) diff --git a/.editorconfig b/.editorconfig index 84fcf5729..eccc749a7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,13 +1,3 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# http://editorconfig.org - -## Plugins -# Atom (https://github.com/sindresorhus/atom-editorconfig) -# Vim (https://github.com/editorconfig/editorconfig-vim) -# Sublime (https://github.com/sindresorhus/editorconfig-sublime) -; - root = true [*] @@ -27,4 +17,3 @@ indent_style = tab [**.html] max_char = 78 brace_style = expand - diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index c759f0dfb..ad2acfc24 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -1,384 +1,383 @@ 'use strict'; angular.module('copayApp.controllers').controller('amountController', function($scope, $filter, $timeout, $ionicScrollDelegate, $ionicHistory, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, popupService, bwcError, payproService, profileService, bitcore, amazonService, nodeWebkitService) { - var _id; - var unitToSatoshi; - var satToUnit; - var unitDecimals; - var satToBtc; - var SMALL_FONT_SIZE_LIMIT = 10; - var LENGTH_EXPRESSION_LIMIT = 19; - var isNW = platformInfo.isNW; + var _id; + var unitToSatoshi; + var satToUnit; + var unitDecimals; + var satToBtc; + var SMALL_FONT_SIZE_LIMIT = 10; + var LENGTH_EXPRESSION_LIMIT = 19; + var isNW = platformInfo.isNW; - var unitIndex = 0; - var altUnitIndex = 0; - var availableUnits = []; - var fiatCode; + var unitIndex = 0; + var altUnitIndex = 0; + var availableUnits = []; + var fiatCode; - var fixedUnit; + var fixedUnit; - $scope.isChromeApp = platformInfo.isChromeApp; + $scope.isChromeApp = platformInfo.isChromeApp; - $scope.$on('$ionicView.leave', function() { - angular.element($window).off('keydown'); - }); + $scope.$on('$ionicView.leave', function() { + angular.element($window).off('keydown'); + }); - $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.$on("$ionicView.beforeEnter", function(event, data) { - var config = configService.getSync().wallet.settings; + var config = configService.getSync().wallet.settings; - function setAvailableUnits() { + function setAvailableUnits() { - availableUnits = [{ - name: 'Bitcoin', - id: 'btc', - shortName: 'BTC', - }]; + availableUnits = [{ + name: 'Bitcoin', + id: 'btc', + shortName: 'BTC', + }]; - var anyCashWallet = true; // TODO!! - if (anyCashWallet) { - availableUnits.push({ - name: 'Bitcoin Cash', - id: 'bch', - shortName: 'BCH', - }); - }; + var anyCashWallet = true; // TODO!! + if (anyCashWallet) { + availableUnits.push({ + name: 'Bitcoin Cash', + id: 'bch', + shortName: 'BCH', + }); + }; - unitIndex = 0; + unitIndex = 0; - if (data.stateParams.coin) { - var coins = data.stateParams.coin.split(','); - var newAvailableUnits = []; + if (data.stateParams.coin) { + var coins = data.stateParams.coin.split(','); + var newAvailableUnits = []; - lodash.each(coins, function(c) { - var coin = lodash.find(availableUnits, { - id: c - }); - if (!coin) { - $log.warn('Could not find desired coin:' + data.stateParams.coin) - } else { - newAvailableUnits.push(coin); - } - }); + lodash.each(coins, function(c) { + var coin = lodash.find(availableUnits, { + id: c + }); + if (!coin) { + $log.warn('Could not find desired coin:' + data.stateParams.coin) + } else { + newAvailableUnits.push(coin); + } + }); - if (newAvailableUnits.length>0) { - availableUnits = newAvailableUnits; + if (newAvailableUnits.length > 0) { + availableUnits = newAvailableUnits; + } + } + + + // currency have preference + var fiatName; + if (data.stateParams.currency) { + fiatCode = data.stateParams.currency; + altUnitIndex = unitIndex + unitIndex = availableUnits.length; + } else { + fiatCode = config.alternativeIsoCode || 'USD'; + fiatName = config.alternanativeName || fiatCode; + altUnitIndex = availableUnits.length; + } + + availableUnits.push({ + name: fiatName || fiatCode, // TODO + id: fiatCode, + shortName: fiatCode, + isFiat: true, + }); + + if (data.stateParams.fixedUnit) { + fixedUnit = true; + } + }; + + // Go to... + _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) + $scope.nextStep = data.stateParams.nextStep; + + + setAvailableUnits(); + updateUnitUI(); + + $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || + $ionicHistory.backView().stateName == 'tabs.bitpayCard'); + $scope.recipientType = data.stateParams.recipientType || null; + $scope.toAddress = data.stateParams.toAddress; + $scope.toName = data.stateParams.toName; + $scope.toEmail = data.stateParams.toEmail; + $scope.toColor = data.stateParams.toColor; + $scope.showSendMax = false; + + if (!$scope.nextStep && !data.stateParams.toAddress) { + $log.error('Bad params at amount') + throw ('bad params'); } - } + var reNr = /^[1234567890\.]$/; + var reOp = /^[\*\+\-\/]$/; - // currency have preference - var fiat; - if (data.stateParams.currency) { - fiat = data.stateParams.currency; - altUnitIndex = unitIndex - unitIndex = availableUnits.length; - } else { - fiat = config.fiat || 'USD'; - altUnitIndex = availableUnits.length; - } + var disableKeys = angular.element($window).on('keydown', function(e) { + if (!e.key) return; + if (e.which === 8) { // you can add others here inside brackets. + e.preventDefault(); + $scope.removeDigit(); + } - availableUnits.push({ - name: fiat, // TODO - id: fiat, - shortName: fiat, - isFiat: true, - }); + if (e.key.match(reNr)) { + $scope.pushDigit(e.key); + } else if (e.key.match(reOp)) { + $scope.pushOperator(e.key); + } else if (e.keyCode === 86) { + if (e.ctrlKey || e.metaKey) + processClipboard(); + } else if (e.keyCode === 13) + $scope.finish(); - fiatCode = fiat; + $timeout(function() { + $scope.$apply(); + }); + }); + $scope.specificAmount = $scope.specificAlternativeAmount = ''; + $scope.isCordova = platformInfo.isCordova; + unitToSatoshi = config.unitToSatoshi; + satToUnit = 1 / unitToSatoshi; + satToBtc = 1 / 100000000; + unitDecimals = config.unitDecimals; - if (data.stateParams.fixedUnit) { - fixedUnit = true; - } + $scope.resetAmount(); + + // in SAT ALWAYS + if ($stateParams.toAmount) { + $scope.amount = (($stateParams.toAmount) * satToUnit).toFixed(unitDecimals); + } + + processAmount(); + + $timeout(function() { + $ionicScrollDelegate.resize(); + }, 10); + }); + + function paste(value) { + $scope.amount = value; + processAmount(); + $timeout(function() { + $scope.$apply(); + }); }; - // Go to... - _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) - $scope.nextStep = data.stateParams.nextStep; + function processClipboard() { + if (!isNW) return; + var value = nodeWebkitService.readFromClipboard(); + if (value && evaluate(value) > 0) paste(evaluate(value)); + }; + $scope.showSendMaxMenu = function() { + $scope.showSendMax = true; + }; - setAvailableUnits(); - updateUnitUI(); - - $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || - $ionicHistory.backView().stateName == 'tabs.bitpayCard'); - $scope.recipientType = data.stateParams.recipientType || null; - $scope.toAddress = data.stateParams.toAddress; - $scope.toName = data.stateParams.toName; - $scope.toEmail = data.stateParams.toEmail; - $scope.toColor = data.stateParams.toColor; - $scope.showSendMax = false; - - if (!$scope.nextStep && !data.stateParams.toAddress) { - $log.error('Bad params at amount') - throw ('bad params'); - } - - var reNr = /^[1234567890\.]$/; - var reOp = /^[\*\+\-\/]$/; - - var disableKeys = angular.element($window).on('keydown', function(e) { - if (!e.key) return; - if (e.which === 8) { // you can add others here inside brackets. - e.preventDefault(); - $scope.removeDigit(); - } - - if (e.key.match(reNr)) { - $scope.pushDigit(e.key); - } else if (e.key.match(reOp)) { - $scope.pushOperator(e.key); - } else if (e.keyCode === 86) { - if (e.ctrlKey || e.metaKey) - processClipboard(); - } else if (e.keyCode === 13) + $scope.sendMax = function() { + $scope.showSendMax = false; + $scope.useSendMax = true; $scope.finish(); - - $timeout(function() { - $scope.$apply(); - }); - }); - $scope.specificAmount = $scope.specificAlternativeAmount = ''; - $scope.isCordova = platformInfo.isCordova; - unitToSatoshi = config.unitToSatoshi; - satToUnit = 1 / unitToSatoshi; - satToBtc = 1 / 100000000; - unitDecimals = config.unitDecimals; - - $scope.resetAmount(); - - // in SAT ALWAYS - if ($stateParams.toAmount) { - $scope.amount = (($stateParams.toAmount) * satToUnit).toFixed(unitDecimals); - } - - processAmount(); - - $timeout(function() { - $ionicScrollDelegate.resize(); - }, 10); - }); - - function paste(value) { - $scope.amount = value; - processAmount(); - $timeout(function() { - $scope.$apply(); - }); - }; - - function processClipboard() { - if (!isNW) return; - var value = nodeWebkitService.readFromClipboard(); - if (value && evaluate(value) > 0) paste(evaluate(value)); - }; - - $scope.showSendMaxMenu = function() { - $scope.showSendMax = true; - }; - - $scope.sendMax = function() { - $scope.showSendMax = false; - $scope.useSendMax = true; - $scope.finish(); - }; - - - $scope.toggleAlternative = function() { - if ($scope.amount && isExpression($scope.amount)) { - var amount = evaluate(format($scope.amount)); - $scope.globalResult = '= ' + processResult(amount); - } - }; - - function updateUnitUI() { - $scope.unit = availableUnits[unitIndex].shortName; - $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; - - processAmount(); - $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); - }; - - $scope.changeUnit = function() { - if (fixedUnit) return; - - unitIndex++; - if (unitIndex >= availableUnits.length) unitIndex = 0; - - - if (availableUnits[unitIndex].isFiat) { - // Always return to BTC... TODO? - altUnitIndex = 0; - } else { - altUnitIndex = lodash.findIndex(availableUnits, { - isFiat: true - }); - } - - updateUnitUI(); - }; - - - $scope.changeAlternativeUnit = function() { - - // Do nothing is fiat is not main unit - if (!availableUnits[unitIndex].isFiat) return; - - var nextCoin = lodash.findIndex(availableUnits, function(x) { - if (x.isFiat) return false; - if (x.id == availableUnits[altUnitIndex].id) return false; - return true; - }); - - if (nextCoin >= 0) { - altUnitIndex = nextCoin; - updateUnitUI(); - } - }; - - function checkFontSize() { - if ($scope.amount && $scope.amount.length >= SMALL_FONT_SIZE_LIMIT) $scope.smallFont = true; - else $scope.smallFont = false; - }; - - $scope.pushDigit = function(digit) { - if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return; - if ($scope.amount.indexOf('.') > -1 && digit == '.') return; - if (availableUnits[unitIndex].isFiat && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; - - $scope.amount = ($scope.amount + digit).replace('..', '.'); - checkFontSize(); - processAmount(); - }; - - $scope.pushOperator = function(operator) { - if (!$scope.amount || $scope.amount.length == 0) return; - $scope.amount = _pushOperator($scope.amount); - - function _pushOperator(val) { - if (!isOperator(lodash.last(val))) { - return val + operator; - } else { - return val.slice(0, -1) + operator; - } }; - }; - - function isOperator(val) { - var regex = /[\/\-\+\x\*]/; - return regex.test(val); - }; - - function isExpression(val) { - var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/; - return regex.test(val); - }; - - $scope.removeDigit = function() { - $scope.amount = ($scope.amount).toString().slice(0, -1); - processAmount(); - checkFontSize(); - }; - - $scope.resetAmount = function() { - $scope.amount = $scope.alternativeAmount = $scope.globalResult = ''; - $scope.allowSend = false; - checkFontSize(); - }; - - function processAmount() { - var formatedValue = format($scope.amount); - var result = evaluate(formatedValue); - $scope.allowSend = lodash.isNumber(result) && +result > 0; - if (lodash.isNumber(result)) { - $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; - - if (availableUnits[unitIndex].isFiat) { - $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); - } else { - $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); - } - } - }; - - function processResult(val) { - if (availableUnits[unitIndex].isFiat) - return $filter('formatFiatAmount')(val); - else - return txFormatService.formatAmount(val.toFixed(unitDecimals) * unitToSatoshi, true); - }; - - function fromFiat(val) { - return parseFloat((rateService.fromFiat(val, fiatCode, availableUnits[altUnitIndex].id) * satToUnit).toFixed(unitDecimals)); - }; - - function toFiat(val) { - return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); - }; - - function evaluate(val) { - var result; - try { - result = $scope.$eval(val); - } catch (e) { - return 0; - } - if (!lodash.isFinite(result)) return 0; - return result; - }; - - function format(val) { - if (!val) return; - - var result = val.toString(); - - if (isOperator(lodash.last(val))) - result = result.slice(0, -1); - - return result.replace('x', '*'); - }; - - $scope.finish = function() { - - var unit = availableUnits[unitIndex]; - var _amount = evaluate(format($scope.amount)); - - if ($scope.nextStep) { - - var coin = unit.id; - if (unit.isFiat) { - coin = availableUnits[altUnitIndex].id; - } - - $state.transitionTo($scope.nextStep, { - id: _id, - amount: $scope.useSendMax ? null : _amount, - currency: unit.id.toUpperCase(), - coin: coin, - useSendMax: $scope.useSendMax - }); - } else { - var amount = _amount; - - if (unit.isFiat) { - amount = fromFiat(_amount); - } else { - amount = (amount * unitToSatoshi).toFixed(0); - } - $state.transitionTo('tabs.send.confirm', { - recipientType: $scope.recipientType, - toAmount: amount, - toAddress: $scope.toAddress, - toName: $scope.toName, - toEmail: $scope.toEmail, - toColor: $scope.toColor, - coin: unit.id, - useSendMax: $scope.useSendMax - }); - } - $scope.useSendMax = null; - }; + $scope.toggleAlternative = function() { + if ($scope.amount && isExpression($scope.amount)) { + var amount = evaluate(format($scope.amount)); + $scope.globalResult = '= ' + processResult(amount); + } + }; + + function updateUnitUI() { + $scope.unit = availableUnits[unitIndex].shortName; + $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; + + processAmount(); + $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); + }; + + $scope.changeUnit = function() { + if (fixedUnit) return; + + unitIndex++; + if (unitIndex >= availableUnits.length) unitIndex = 0; + + + if (availableUnits[unitIndex].isFiat) { + // Always return to BTC... TODO? + altUnitIndex = 0; + } else { + altUnitIndex = lodash.findIndex(availableUnits, { + isFiat: true + }); + } + + updateUnitUI(); + }; + + + $scope.changeAlternativeUnit = function() { + + // Do nothing is fiat is not main unit + if (!availableUnits[unitIndex].isFiat) return; + + var nextCoin = lodash.findIndex(availableUnits, function(x) { + if (x.isFiat) return false; + if (x.id == availableUnits[altUnitIndex].id) return false; + return true; + }); + + if (nextCoin >= 0) { + altUnitIndex = nextCoin; + updateUnitUI(); + } + }; + + function checkFontSize() { + if ($scope.amount && $scope.amount.length >= SMALL_FONT_SIZE_LIMIT) $scope.smallFont = true; + else $scope.smallFont = false; + }; + + $scope.pushDigit = function(digit) { + if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return; + if ($scope.amount.indexOf('.') > -1 && digit == '.') return; + if (availableUnits[unitIndex].isFiat && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; + + $scope.amount = ($scope.amount + digit).replace('..', '.'); + checkFontSize(); + processAmount(); + }; + + $scope.pushOperator = function(operator) { + if (!$scope.amount || $scope.amount.length == 0) return; + $scope.amount = _pushOperator($scope.amount); + + function _pushOperator(val) { + if (!isOperator(lodash.last(val))) { + return val + operator; + } else { + return val.slice(0, -1) + operator; + } + }; + }; + + function isOperator(val) { + var regex = /[\/\-\+\x\*]/; + return regex.test(val); + }; + + function isExpression(val) { + var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/; + return regex.test(val); + }; + + $scope.removeDigit = function() { + $scope.amount = ($scope.amount).toString().slice(0, -1); + processAmount(); + checkFontSize(); + }; + + $scope.resetAmount = function() { + $scope.amount = $scope.alternativeAmount = $scope.globalResult = ''; + $scope.allowSend = false; + checkFontSize(); + }; + + function processAmount() { + var formatedValue = format($scope.amount); + var result = evaluate(formatedValue); + $scope.allowSend = lodash.isNumber(result) && +result > 0; + if (lodash.isNumber(result)) { + $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; + + if (availableUnits[unitIndex].isFiat) { + $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); + } else { + $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); + } + } + }; + + function processResult(val) { + if (availableUnits[unitIndex].isFiat) + return $filter('formatFiatAmount')(val); + else + return txFormatService.formatAmount(val.toFixed(unitDecimals) * unitToSatoshi, true); + }; + + function fromFiat(val) { + return parseFloat((rateService.fromFiat(val, fiatCode, availableUnits[altUnitIndex].id) * satToUnit).toFixed(unitDecimals)); + }; + + function toFiat(val) { + return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); + }; + + function evaluate(val) { + var result; + try { + result = $scope.$eval(val); + } catch (e) { + return 0; + } + if (!lodash.isFinite(result)) return 0; + return result; + }; + + function format(val) { + if (!val) return; + + var result = val.toString(); + + if (isOperator(lodash.last(val))) + result = result.slice(0, -1); + + return result.replace('x', '*'); + }; + + $scope.finish = function() { + + var unit = availableUnits[unitIndex]; + var _amount = evaluate(format($scope.amount)); + + if ($scope.nextStep) { + + var coin = unit.id; + if (unit.isFiat) { + coin = availableUnits[altUnitIndex].id; + } + + $state.transitionTo($scope.nextStep, { + id: _id, + amount: $scope.useSendMax ? null : _amount, + currency: unit.id.toUpperCase(), + coin: coin, + useSendMax: $scope.useSendMax + }); + } else { + var amount = _amount; + + if (unit.isFiat) { + amount = fromFiat(_amount); + } else { + amount = (amount * unitToSatoshi).toFixed(0); + } + + + $state.transitionTo('tabs.send.confirm', { + recipientType: $scope.recipientType, + toAmount: amount, + toAddress: $scope.toAddress, + toName: $scope.toName, + toEmail: $scope.toEmail, + toColor: $scope.toColor, + coin: unit.id, + useSendMax: $scope.useSendMax + }); + } + $scope.useSendMax = null; + }; }); From aa61d7915dd38f28d4662b2955baae49215d8a88 Mon Sep 17 00:00:00 2001 From: matiu Date: Thu, 31 Aug 2017 17:56:28 -0300 Subject: [PATCH 071/157] fix unit to config --- .gitignore | 1 + src/js/controllers/amount.js | 699 +++++++++++++++--------------- src/js/services/profileService.js | 4 +- 3 files changed, 356 insertions(+), 348 deletions(-) diff --git a/.gitignore b/.gitignore index 2913172f8..67243c52e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ i18n/po/*.mo i18n/crowdin_api_key.txt src/js/translations.js + # cordova plugins platforms diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index ad2acfc24..70a7b3a44 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -1,383 +1,388 @@ 'use strict'; angular.module('copayApp.controllers').controller('amountController', function($scope, $filter, $timeout, $ionicScrollDelegate, $ionicHistory, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, popupService, bwcError, payproService, profileService, bitcore, amazonService, nodeWebkitService) { - var _id; - var unitToSatoshi; - var satToUnit; - var unitDecimals; - var satToBtc; - var SMALL_FONT_SIZE_LIMIT = 10; - var LENGTH_EXPRESSION_LIMIT = 19; - var isNW = platformInfo.isNW; + var _id; + var unitToSatoshi; + var satToUnit; + var unitDecimals; + var satToBtc; + var SMALL_FONT_SIZE_LIMIT = 10; + var LENGTH_EXPRESSION_LIMIT = 19; + var isNW = platformInfo.isNW; - var unitIndex = 0; - var altUnitIndex = 0; - var availableUnits = []; - var fiatCode; + var unitIndex = 0; + var altUnitIndex = 0; + var availableUnits = []; + var fiatCode; - var fixedUnit; + var fixedUnit; - $scope.isChromeApp = platformInfo.isChromeApp; + $scope.isChromeApp = platformInfo.isChromeApp; - $scope.$on('$ionicView.leave', function() { - angular.element($window).off('keydown'); + $scope.$on('$ionicView.leave', function() { + angular.element($window).off('keydown'); + }); + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + var config = configService.getSync().wallet.settings; + + function setAvailableUnits() { + + availableUnits = []; + + var hasBTCWallets = profileService.getWallets({ + coin: 'btc' + }).length; + + if (hasBTCWallets) { + availableUnits.push({ + name: 'Bitcoin', + id: 'btc', + shortName: 'BTC', + }); + } + + + var hasBCHWallets = profileService.getWallets({ + coin: 'bch' + }).length; + + + + if (hasBCHWallets) { + availableUnits.push({ + name: 'Bitcoin Cash', + id: 'bch', + shortName: 'BCH', + }); + }; + + unitIndex = 0; + + if (data.stateParams.coin) { + var coins = data.stateParams.coin.split(','); + var newAvailableUnits = []; + + lodash.each(coins, function(c) { + var coin = lodash.find(availableUnits, { + id: c + }); + if (!coin) { + $log.warn('Could not find desired coin:' + data.stateParams.coin) + } else { + newAvailableUnits.push(coin); + } + }); + + if (newAvailableUnits.length > 0) { + availableUnits = newAvailableUnits; + } + } + + + // currency have preference + var fiatName; + if (data.stateParams.currency) { + fiatCode = data.stateParams.currency; + altUnitIndex = unitIndex + unitIndex = availableUnits.length; + } else { + fiatCode = config.alternativeIsoCode || 'USD'; + fiatName = config.alternanativeName || fiatCode; + altUnitIndex = availableUnits.length; + } + + availableUnits.push({ + name: fiatName || fiatCode, + // TODO + id: fiatCode, + shortName: fiatCode, + isFiat: true, + }); + + if (data.stateParams.fixedUnit) { + fixedUnit = true; + } + }; + + // Go to... + _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) + $scope.nextStep = data.stateParams.nextStep; + + + setAvailableUnits(); + updateUnitUI(); + + $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || $ionicHistory.backView().stateName == 'tabs.bitpayCard'); + $scope.recipientType = data.stateParams.recipientType || null; + $scope.toAddress = data.stateParams.toAddress; + $scope.toName = data.stateParams.toName; + $scope.toEmail = data.stateParams.toEmail; + $scope.toColor = data.stateParams.toColor; + $scope.showSendMax = false; + + if (!$scope.nextStep && !data.stateParams.toAddress) { + $log.error('Bad params at amount') + throw ('bad params'); + } + + var reNr = /^[1234567890\.]$/; + var reOp = /^[\*\+\-\/]$/; + + var disableKeys = angular.element($window).on('keydown', function(e) { + if (!e.key) return; + if (e.which === 8) { // you can add others here inside brackets. + e.preventDefault(); + $scope.removeDigit(); + } + + if (e.key.match(reNr)) { + $scope.pushDigit(e.key); + } else if (e.key.match(reOp)) { + $scope.pushOperator(e.key); + } else if (e.keyCode === 86) { + if (e.ctrlKey || e.metaKey) processClipboard(); + } else if (e.keyCode === 13) $scope.finish(); + + $timeout(function() { + $scope.$apply(); + }); + }); + $scope.specificAmount = $scope.specificAlternativeAmount = ''; + $scope.isCordova = platformInfo.isCordova; + unitToSatoshi = config.unitToSatoshi; + satToUnit = 1 / unitToSatoshi; + satToBtc = 1 / 100000000; + unitDecimals = config.unitDecimals; + + $scope.resetAmount(); + + // in SAT ALWAYS + if ($stateParams.toAmount) { + $scope.amount = (($stateParams.toAmount) * satToUnit).toFixed(unitDecimals); + } + + processAmount(); + + $timeout(function() { + $ionicScrollDelegate.resize(); + }, 10); + }); + + function paste(value) { + $scope.amount = value; + processAmount(); + $timeout(function() { + $scope.$apply(); + }); + }; + + function processClipboard() { + if (!isNW) return; + var value = nodeWebkitService.readFromClipboard(); + if (value && evaluate(value) > 0) paste(evaluate(value)); + }; + + $scope.showSendMaxMenu = function() { + $scope.showSendMax = true; + }; + + $scope.sendMax = function() { + $scope.showSendMax = false; + $scope.useSendMax = true; + $scope.finish(); + }; + + + $scope.toggleAlternative = function() { + if ($scope.amount && isExpression($scope.amount)) { + var amount = evaluate(format($scope.amount)); + $scope.globalResult = '= ' + processResult(amount); + } + }; + + function updateUnitUI() { + $scope.unit = availableUnits[unitIndex].shortName; + $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; + + processAmount(); + $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); + }; + + $scope.changeUnit = function() { + if (fixedUnit) return; + + unitIndex++; + if (unitIndex >= availableUnits.length) unitIndex = 0; + + + if (availableUnits[unitIndex].isFiat) { + // Always return to BTC... TODO? + altUnitIndex = 0; + } else { + altUnitIndex = lodash.findIndex(availableUnits, { + isFiat: true + }); + } + + updateUnitUI(); + }; + + + $scope.changeAlternativeUnit = function() { + + // Do nothing is fiat is not main unit + if (!availableUnits[unitIndex].isFiat) return; + + var nextCoin = lodash.findIndex(availableUnits, function(x) { + if (x.isFiat) return false; + if (x.id == availableUnits[altUnitIndex].id) return false; + return true; }); - $scope.$on("$ionicView.beforeEnter", function(event, data) { + if (nextCoin >= 0) { + altUnitIndex = nextCoin; + updateUnitUI(); + } + }; - var config = configService.getSync().wallet.settings; + function checkFontSize() { + if ($scope.amount && $scope.amount.length >= SMALL_FONT_SIZE_LIMIT) $scope.smallFont = true; + else $scope.smallFont = false; + }; - function setAvailableUnits() { + $scope.pushDigit = function(digit) { + if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return; + if ($scope.amount.indexOf('.') > -1 && digit == '.') return; + if (availableUnits[unitIndex].isFiat && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; - availableUnits = [{ - name: 'Bitcoin', - id: 'btc', - shortName: 'BTC', - }]; + $scope.amount = ($scope.amount + digit).replace('..', '.'); + checkFontSize(); + processAmount(); + }; + $scope.pushOperator = function(operator) { + if (!$scope.amount || $scope.amount.length == 0) return; + $scope.amount = _pushOperator($scope.amount); - var anyCashWallet = true; // TODO!! - if (anyCashWallet) { - availableUnits.push({ - name: 'Bitcoin Cash', - id: 'bch', - shortName: 'BCH', - }); - }; - - unitIndex = 0; - - if (data.stateParams.coin) { - var coins = data.stateParams.coin.split(','); - var newAvailableUnits = []; - - lodash.each(coins, function(c) { - var coin = lodash.find(availableUnits, { - id: c - }); - if (!coin) { - $log.warn('Could not find desired coin:' + data.stateParams.coin) - } else { - newAvailableUnits.push(coin); - } - }); - - if (newAvailableUnits.length > 0) { - availableUnits = newAvailableUnits; - } - } - - - // currency have preference - var fiatName; - if (data.stateParams.currency) { - fiatCode = data.stateParams.currency; - altUnitIndex = unitIndex - unitIndex = availableUnits.length; - } else { - fiatCode = config.alternativeIsoCode || 'USD'; - fiatName = config.alternanativeName || fiatCode; - altUnitIndex = availableUnits.length; - } - - availableUnits.push({ - name: fiatName || fiatCode, // TODO - id: fiatCode, - shortName: fiatCode, - isFiat: true, - }); - - if (data.stateParams.fixedUnit) { - fixedUnit = true; - } - }; - - // Go to... - _id = data.stateParams.id; // Optional (BitPay Card ID or Wallet ID) - $scope.nextStep = data.stateParams.nextStep; - - - setAvailableUnits(); - updateUnitUI(); - - $scope.showMenu = $ionicHistory.backView() && ($ionicHistory.backView().stateName == 'tabs.send' || - $ionicHistory.backView().stateName == 'tabs.bitpayCard'); - $scope.recipientType = data.stateParams.recipientType || null; - $scope.toAddress = data.stateParams.toAddress; - $scope.toName = data.stateParams.toName; - $scope.toEmail = data.stateParams.toEmail; - $scope.toColor = data.stateParams.toColor; - $scope.showSendMax = false; - - if (!$scope.nextStep && !data.stateParams.toAddress) { - $log.error('Bad params at amount') - throw ('bad params'); - } - - var reNr = /^[1234567890\.]$/; - var reOp = /^[\*\+\-\/]$/; - - var disableKeys = angular.element($window).on('keydown', function(e) { - if (!e.key) return; - if (e.which === 8) { // you can add others here inside brackets. - e.preventDefault(); - $scope.removeDigit(); - } - - if (e.key.match(reNr)) { - $scope.pushDigit(e.key); - } else if (e.key.match(reOp)) { - $scope.pushOperator(e.key); - } else if (e.keyCode === 86) { - if (e.ctrlKey || e.metaKey) - processClipboard(); - } else if (e.keyCode === 13) - $scope.finish(); - - $timeout(function() { - $scope.$apply(); - }); - }); - $scope.specificAmount = $scope.specificAlternativeAmount = ''; - $scope.isCordova = platformInfo.isCordova; - unitToSatoshi = config.unitToSatoshi; - satToUnit = 1 / unitToSatoshi; - satToBtc = 1 / 100000000; - unitDecimals = config.unitDecimals; - - $scope.resetAmount(); - - // in SAT ALWAYS - if ($stateParams.toAmount) { - $scope.amount = (($stateParams.toAmount) * satToUnit).toFixed(unitDecimals); - } - - processAmount(); - - $timeout(function() { - $ionicScrollDelegate.resize(); - }, 10); - }); - - function paste(value) { - $scope.amount = value; - processAmount(); - $timeout(function() { - $scope.$apply(); - }); + function _pushOperator(val) { + if (!isOperator(lodash.last(val))) { + return val + operator; + } else { + return val.slice(0, -1) + operator; + } }; + }; - function processClipboard() { - if (!isNW) return; - var value = nodeWebkitService.readFromClipboard(); - if (value && evaluate(value) > 0) paste(evaluate(value)); - }; + function isOperator(val) { + var regex = /[\/\-\+\x\*]/; + return regex.test(val); + }; - $scope.showSendMaxMenu = function() { - $scope.showSendMax = true; - }; + function isExpression(val) { + var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/; + return regex.test(val); + }; - $scope.sendMax = function() { - $scope.showSendMax = false; - $scope.useSendMax = true; - $scope.finish(); - }; + $scope.removeDigit = function() { + $scope.amount = ($scope.amount).toString().slice(0, -1); + processAmount(); + checkFontSize(); + }; + $scope.resetAmount = function() { + $scope.amount = $scope.alternativeAmount = $scope.globalResult = ''; + $scope.allowSend = false; + checkFontSize(); + }; - $scope.toggleAlternative = function() { - if ($scope.amount && isExpression($scope.amount)) { - var amount = evaluate(format($scope.amount)); - $scope.globalResult = '= ' + processResult(amount); - } - }; + function processAmount() { + var formatedValue = format($scope.amount); + var result = evaluate(formatedValue); + $scope.allowSend = lodash.isNumber(result) && +result > 0; + if (lodash.isNumber(result)) { + $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; - function updateUnitUI() { - $scope.unit = availableUnits[unitIndex].shortName; - $scope.alternativeUnit = availableUnits[altUnitIndex].shortName; + if (availableUnits[unitIndex].isFiat) { + $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); + } else { + $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); + } + } + }; - processAmount(); - $log.debug('Update unit coin @amount unit:' + $scope.unit + " alternativeUnit:" + $scope.alternativeUnit); - }; + function processResult(val) { + if (availableUnits[unitIndex].isFiat) return $filter('formatFiatAmount')(val); + else return txFormatService.formatAmount(val.toFixed(unitDecimals) * unitToSatoshi, true); + }; - $scope.changeUnit = function() { - if (fixedUnit) return; + function fromFiat(val) { + return parseFloat((rateService.fromFiat(val, fiatCode, availableUnits[altUnitIndex].id) * satToUnit).toFixed(unitDecimals)); + }; - unitIndex++; - if (unitIndex >= availableUnits.length) unitIndex = 0; + function toFiat(val) { + return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); + }; + function evaluate(val) { + var result; + try { + result = $scope.$eval(val); + } catch (e) { + return 0; + } + if (!lodash.isFinite(result)) return 0; + return result; + }; - if (availableUnits[unitIndex].isFiat) { - // Always return to BTC... TODO? - altUnitIndex = 0; - } else { - altUnitIndex = lodash.findIndex(availableUnits, { - isFiat: true - }); - } + function format(val) { + if (!val) return; - updateUnitUI(); - }; + var result = val.toString(); + if (isOperator(lodash.last(val))) result = result.slice(0, -1); - $scope.changeAlternativeUnit = function() { + return result.replace('x', '*'); + }; - // Do nothing is fiat is not main unit - if (!availableUnits[unitIndex].isFiat) return; + $scope.finish = function() { - var nextCoin = lodash.findIndex(availableUnits, function(x) { - if (x.isFiat) return false; - if (x.id == availableUnits[altUnitIndex].id) return false; - return true; - }); + var unit = availableUnits[unitIndex]; + var _amount = evaluate(format($scope.amount)); + var coin = unit.id; + if (unit.isFiat) { + coin = availableUnits[altUnitIndex].id; + } - if (nextCoin >= 0) { - altUnitIndex = nextCoin; - updateUnitUI(); - } - }; + if ($scope.nextStep) { - function checkFontSize() { - if ($scope.amount && $scope.amount.length >= SMALL_FONT_SIZE_LIMIT) $scope.smallFont = true; - else $scope.smallFont = false; - }; + $state.transitionTo($scope.nextStep, { + id: _id, + amount: $scope.useSendMax ? null : _amount, + currency: unit.id.toUpperCase(), + coin: coin, + useSendMax: $scope.useSendMax + }); + } else { + var amount = _amount; - $scope.pushDigit = function(digit) { - if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return; - if ($scope.amount.indexOf('.') > -1 && digit == '.') return; - if (availableUnits[unitIndex].isFiat && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return; + if (unit.isFiat) { + amount = (fromFiat(amount) * unitToSatoshi).toFixed(0); + } else { + amount = (amount * unitToSatoshi).toFixed(0); + } - $scope.amount = ($scope.amount + digit).replace('..', '.'); - checkFontSize(); - processAmount(); - }; - - $scope.pushOperator = function(operator) { - if (!$scope.amount || $scope.amount.length == 0) return; - $scope.amount = _pushOperator($scope.amount); - - function _pushOperator(val) { - if (!isOperator(lodash.last(val))) { - return val + operator; - } else { - return val.slice(0, -1) + operator; - } - }; - }; - - function isOperator(val) { - var regex = /[\/\-\+\x\*]/; - return regex.test(val); - }; - - function isExpression(val) { - var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/; - return regex.test(val); - }; - - $scope.removeDigit = function() { - $scope.amount = ($scope.amount).toString().slice(0, -1); - processAmount(); - checkFontSize(); - }; - - $scope.resetAmount = function() { - $scope.amount = $scope.alternativeAmount = $scope.globalResult = ''; - $scope.allowSend = false; - checkFontSize(); - }; - - function processAmount() { - var formatedValue = format($scope.amount); - var result = evaluate(formatedValue); - $scope.allowSend = lodash.isNumber(result) && +result > 0; - if (lodash.isNumber(result)) { - $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; - - if (availableUnits[unitIndex].isFiat) { - $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); - } else { - $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); - } - } - }; - - function processResult(val) { - if (availableUnits[unitIndex].isFiat) - return $filter('formatFiatAmount')(val); - else - return txFormatService.formatAmount(val.toFixed(unitDecimals) * unitToSatoshi, true); - }; - - function fromFiat(val) { - return parseFloat((rateService.fromFiat(val, fiatCode, availableUnits[altUnitIndex].id) * satToUnit).toFixed(unitDecimals)); - }; - - function toFiat(val) { - return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); - }; - - function evaluate(val) { - var result; - try { - result = $scope.$eval(val); - } catch (e) { - return 0; - } - if (!lodash.isFinite(result)) return 0; - return result; - }; - - function format(val) { - if (!val) return; - - var result = val.toString(); - - if (isOperator(lodash.last(val))) - result = result.slice(0, -1); - - return result.replace('x', '*'); - }; - - $scope.finish = function() { - - var unit = availableUnits[unitIndex]; - var _amount = evaluate(format($scope.amount)); - - if ($scope.nextStep) { - - var coin = unit.id; - if (unit.isFiat) { - coin = availableUnits[altUnitIndex].id; - } - - $state.transitionTo($scope.nextStep, { - id: _id, - amount: $scope.useSendMax ? null : _amount, - currency: unit.id.toUpperCase(), - coin: coin, - useSendMax: $scope.useSendMax - }); - } else { - var amount = _amount; - - if (unit.isFiat) { - amount = fromFiat(_amount); - } else { - amount = (amount * unitToSatoshi).toFixed(0); - } - - - $state.transitionTo('tabs.send.confirm', { - recipientType: $scope.recipientType, - toAmount: amount, - toAddress: $scope.toAddress, - toName: $scope.toName, - toEmail: $scope.toEmail, - toColor: $scope.toColor, - coin: unit.id, - useSendMax: $scope.useSendMax - }); - } - $scope.useSendMax = null; - }; + $state.transitionTo('tabs.send.confirm', { + recipientType: $scope.recipientType, + toAmount: amount, + toAddress: $scope.toAddress, + toName: $scope.toName, + toEmail: $scope.toEmail, + toColor: $scope.toColor, + coin: coin, + useSendMax: $scope.useSendMax + }); + } + $scope.useSendMax = null; + }; }); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index b1b9404fa..36a7d938e 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -442,7 +442,9 @@ angular.module('copayApp.services') seedWallet(opts, function(err, walletClient) { if (err) return cb(err); - walletClient.joinWallet(opts.secret, opts.myName || 'me', { coin: opts.coin }, function(err) { + walletClient.joinWallet(opts.secret, opts.myName || 'me', { + coin: opts.coin + }, function(err) { if (err) return bwcError.cb(err, gettextCatalog.getString('Could not join wallet'), cb); addAndBindWalletClient(walletClient, { bwsurl: opts.bwsurl From 75e0397e0de2f556ec7a22fe99c5d690b0451286 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 18:13:15 -0300 Subject: [PATCH 072/157] Disable creation of BCH testnet wallet --- src/js/controllers/create.js | 2 +- www/views/tab-create-personal.html | 2 +- www/views/tab-create-shared.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index e1d84bfed..6bb2bd78a 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -138,7 +138,7 @@ angular.module('copayApp.controllers').controller('createController', m: $scope.formData.requiredCopayers, n: $scope.formData.totalCopayers, myName: $scope.formData.totalCopayers > 1 ? $scope.formData.myName : null, - networkName: $scope.formData.testnetEnabled ? 'testnet' : 'livenet', + networkName: $scope.formData.testnetEnabled && $scope.formData.coin != 'bch' ? 'testnet' : 'livenet', bwsurl: $scope.formData.bwsurl, singleAddress: $scope.formData.singleAddressEnabled, walletPrivKey: $scope.formData._walletPrivKey, // Only for testing diff --git a/www/views/tab-create-personal.html b/www/views/tab-create-personal.html index 505f854d4..b0cc01ee0 100644 --- a/www/views/tab-create-personal.html +++ b/www/views/tab-create-personal.html @@ -114,7 +114,7 @@ ng-model="formData.derivationPath"> - + Testnet diff --git a/www/views/tab-create-shared.html b/www/views/tab-create-shared.html index cdbb7ceec..9d5bb2a75 100644 --- a/www/views/tab-create-shared.html +++ b/www/views/tab-create-shared.html @@ -143,7 +143,7 @@ ng-model="formData.derivationPath"> - + Testnet From 8c610e0531e05b25eec4a9716f01c4a1c7de3fa9 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Thu, 31 Aug 2017 18:14:49 -0300 Subject: [PATCH 073/157] fix method name - add spending password external link --- src/js/controllers/advancedSettings.js | 2 +- src/js/controllers/preferences.js | 12 +++++++++++- src/sass/views/tab-settings.scss | 3 +++ www/views/advancedSettings.html | 2 +- www/views/preferences.html | 5 +++-- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index b9bf65449..94f9a2553 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -66,7 +66,7 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; - $scope.learnMore = function() { + $scope.openBitcoinCashWeb = function() { var url = 'https://www.bitcoincash.org/'; var optIn = true; var title = null; diff --git a/src/js/controllers/preferences.js b/src/js/controllers/preferences.js index ef95c00db..7b8d8ebe3 100644 --- a/src/js/controllers/preferences.js +++ b/src/js/controllers/preferences.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesController', - function($scope, $rootScope, $timeout, $log, $ionicHistory, configService, profileService, fingerprintService, walletService, platformInfo) { + function($scope, $rootScope, $timeout, $log, $ionicHistory, configService, profileService, fingerprintService, walletService, platformInfo, externalLinkService, gettextCatalog) { var wallet; var walletId; @@ -58,6 +58,16 @@ angular.module('copayApp.controllers').controller('preferencesController', } }; + $scope.openWikiSpendingPassword = function() { + var url = 'https://github.com/bitpay/copay/wiki/COPAY---FAQ#what-the-spending-password-does'; + var optIn = true; + var title = null; + var message = gettextCatalog.getString('Read more in our Wiki'); + var okText = gettextCatalog.getString('Open'); + var cancelText = gettextCatalog.getString('Go Back'); + externalLinkService.open(url, optIn, title, message, okText, cancelText); + }; + $scope.touchIdChange = function() { var newStatus = $scope.touchIdEnabled.value; walletService.setTouchId(wallet, !!newStatus, function(err) { diff --git a/src/sass/views/tab-settings.scss b/src/sass/views/tab-settings.scss index dcd2cfb6a..7008a96fc 100644 --- a/src/sass/views/tab-settings.scss +++ b/src/sass/views/tab-settings.scss @@ -34,6 +34,9 @@ width: 20px; } } + a { + cursor: pointer; + } } &-explanation, &-button-group { padding: 0 1rem; diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index 85dcaf0d4..89aa08be8 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -13,7 +13,7 @@
Enable Bitcoin Cash wallet creation and operation within the App. - Learn more + Learn more
diff --git a/www/views/preferences.html b/www/views/preferences.html index 3e4f9d5c3..783cb2eef 100644 --- a/www/views/preferences.html +++ b/www/views/preferences.html @@ -44,10 +44,11 @@
If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected. + Learn more - +
Complete the backup process to use this option - +
From d074a7da7f7ad2666c22249bb9cef0af6621fd7e Mon Sep 17 00:00:00 2001 From: matiu Date: Thu, 31 Aug 2017 18:16:50 -0300 Subject: [PATCH 074/157] fix non equiv bch --- src/js/controllers/amount.js | 11 ++++++++++- www/views/amount.html | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 70a7b3a44..dee20cde1 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -304,7 +304,14 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.globalResult = isExpression($scope.amount) ? '= ' + processResult(result) : ''; if (availableUnits[unitIndex].isFiat) { - $scope.alternativeAmount = txFormatService.formatAmount(fromFiat(result) * unitToSatoshi, true); + + var a = fromFiat(result); + if (a) { + $scope.alternativeAmount = txFormatService.formatAmount(a * unitToSatoshi, true); + } else { + $scope.alternativeAmount = 'N/A'; //TODO + $scope.allowSend = false; + } } else { $scope.alternativeAmount = $filter('formatFiatAmount')(toFiat(result)); } @@ -321,6 +328,8 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; function toFiat(val) { + if (!rateService.getRate(fiatCode)) return; + return parseFloat((rateService.toFiat(val * unitToSatoshi, fiatCode, availableUnits[unitIndex].id)).toFixed(2)); }; diff --git a/www/views/amount.html b/www/views/amount.html index 5d79f8ad7..a522d712c 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -52,7 +52,8 @@
{{globalResult}} {{unit}}
-
≈ {{alternativeAmount || '0.00'}} {{alternativeUnit}}
+
≈ {{alternativeAmount || '0.00'}} {{alternativeUnit}}
+
 
From 3d64648142f968e44f95783b022f13cc16044a34 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 31 Aug 2017 18:41:12 -0300 Subject: [PATCH 075/157] New release v3.8.0 --- app-template/bitpay/appConfig.json | 4 ++-- app-template/copay/appConfig.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app-template/bitpay/appConfig.json b/app-template/bitpay/appConfig.json index 52a2bff4e..9d93804f7 100644 --- a/app-template/bitpay/appConfig.json +++ b/app-template/bitpay/appConfig.json @@ -23,8 +23,8 @@ "windowsAppId": "2d1002d7-ee34-4f60-bd29-0c871ba0c195", "pushSenderId": "1036948132229", "description": "Secure Bitcoin Wallet", - "version": "3.7.3", - "androidVersion": "373000", + "version": "3.8.0", + "androidVersion": "380000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, diff --git a/app-template/copay/appConfig.json b/app-template/copay/appConfig.json index 4c408fcf4..d28fe4154 100644 --- a/app-template/copay/appConfig.json +++ b/app-template/copay/appConfig.json @@ -23,8 +23,8 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "3.7.3", - "androidVersion": "373000", + "version": "3.8.0", + "androidVersion": "380000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, From 37bc8b29bbbf2a706fc70d8e6167950615534b92 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 1 Sep 2017 12:24:21 -0300 Subject: [PATCH 076/157] Fix UI bug: the address doesnt appear if view is not ready --- www/views/confirm.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/views/confirm.html b/www/views/confirm.html index ab289f266..85f18e130 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -33,7 +33,7 @@
- + {{tx.toName}}
@@ -51,7 +51,7 @@
- + {{tx.toName}}
From 8b2265d767dde339c3cd33db5a94b10f125d2572 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 1 Sep 2017 14:32:49 -0300 Subject: [PATCH 077/157] Fix sendMax, support bch. Fee levels cache for bch --- src/js/controllers/confirm.js | 44 ++++++++++++++++++++++------------- src/js/services/feeService.js | 4 +++- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 45605f719..c65f057a0 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -28,7 +28,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( function refresh() { $timeout(function() { $scope.$apply(); - }, 1); + }, 10); } @@ -69,7 +69,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.$on("$ionicView.beforeEnter", function(event, data) { - function setWalletSelector(coin, network, minAmount, cb) { + function setWalletSelector(coin, network, minAmount, sendMax, cb) { // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; @@ -77,7 +77,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.wallets = profileService.getWallets({ onlyComplete: true, network: network, - coin: coin + coin: sendMax ? null : coin }); if (!$scope.wallets || !$scope.wallets.length) { @@ -119,11 +119,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); }; - // TODO: Default fee level for BCH - if (data.stateParams.coin == 'bch') { - configFeeLevel = 'normal'; - } - // Setup $scope // Grab stateParams @@ -134,7 +129,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( description: data.stateParams.description, paypro: data.stateParams.paypro, - feeLevel: configFeeLevel, + feeLevel: data.stateParams.coin == 'bch' ? 'normal' : configFeeLevel, spendUnconfirmed: walletConfig.spendUnconfirmed, // Vanity tx info (not in the real tx) @@ -154,7 +149,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); - setWalletSelector(tx.coin, tx.network, tx.toAmount, function(err) { + setWalletSelector(tx.coin, tx.network, tx.toAmount, tx.sendMax, function(err) { if (err) { return exitWithError('Could not update wallets'); } @@ -230,6 +225,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( }; function updateTx(tx, wallet, opts, cb) { + ongoingProcess.set('calculatingFee', true); if (opts.clearCache) { tx.txp = {}; @@ -253,19 +249,23 @@ angular.module('copayApp.controllers').controller('confirmController', function( refresh(); // End of quick refresh, before wallet is selected. - if (!wallet) return cb(); + if (!wallet) { + ongoingProcess.set('calculatingFee', false); + return cb(); + } feeService.getFeeRate(wallet.coin, tx.network, tx.feeLevel, function(err, feeRate) { - if (err) return cb(err); + if (err) { + ongoingProcess.set('calculatingFee', false); + return cb(err); + } if (!usingCustomFee) tx.feeRate = feeRate; tx.feeLevelName = feeService.feeOpts[tx.feeLevel]; - if (!wallet) - return cb(); - getSendMaxInfo(lodash.clone(tx), wallet, function(err, sendMaxInfo) { if (err) { + ongoingProcess.set('calculatingFee', false); var msg = gettextCatalog.getString('Error getting SendMax information'); return setSendError(msg); } @@ -275,6 +275,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $log.debug('Send max info', sendMaxInfo); if (tx.sendMax && sendMaxInfo.amount == 0) { + ongoingProcess.set('calculatingFee', false); setNoWallet(gettextCatalog.getString('Insufficient funds')); popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Not enough funds for fee')); return cb('no_funds'); @@ -283,17 +284,23 @@ angular.module('copayApp.controllers').controller('confirmController', function( tx.sendMaxInfo = sendMaxInfo; tx.toAmount = tx.sendMaxInfo.amount; updateAmount(); + ongoingProcess.set('calculatingFee', false); showSendMaxWarning(wallet, sendMaxInfo); } // txp already generated for this wallet? if (tx.txp[wallet.id]) { +console.log('[confirm.js:292] Ya existe la tx',tx); //TODO/ + ongoingProcess.set('calculatingFee', false); refresh(); return cb(); } getTxp(lodash.clone(tx), wallet, opts.dryRun, function(err, txp) { - if (err) return cb(err); + ongoingProcess.set('calculatingFee', false); + if (err) { + return cb(err); + } txp.feeStr = txFormatService.formatAmountStr(wallet.coin, txp.fee); txFormatService.formatAlternativeStr(wallet.coin, txp.fee, function(v) { @@ -425,6 +432,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.wallet = wallet; + // If select another wallet + tx.coin = wallet.coin; + tx.feeLevel = wallet.coin == 'bch' ? 'normal' : configFeeLevel; + usingCustomFee = null; + setButtonText(wallet.credentials.m > 1, !!tx.paypro); if (tx.paypro) diff --git a/src/js/services/feeService.js b/src/js/services/feeService.js index 2109d7ea0..37cd8ab58 100644 --- a/src/js/services/feeService.js +++ b/src/js/services/feeService.js @@ -17,6 +17,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou var cache = { updateTs: 0, + coin: '' }; root.getCurrentFeeLevel = function() { @@ -60,7 +61,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou root.getFeeLevels = function(coin, cb) { coin = coin || 'btc'; - if (cache.updateTs > Date.now() - CACHE_TIME_TS * 1000) { + if (cache.coin == coin && cache.updateTs > Date.now() - CACHE_TIME_TS * 1000) { return cb(null, cache.data, true); } @@ -73,6 +74,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou } cache.updateTs = Date.now(); + cache.coin = coin; cache.data = { 'livenet': levelsLivenet, 'testnet': levelsTestnet From 7601005d5d1756d453e9c96d540a31feb1a8c426 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 1 Sep 2017 14:33:50 -0300 Subject: [PATCH 078/157] Removes console log --- src/js/controllers/confirm.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index c65f057a0..d8cd299b3 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -290,7 +290,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( // txp already generated for this wallet? if (tx.txp[wallet.id]) { -console.log('[confirm.js:292] Ya existe la tx',tx); //TODO/ ongoingProcess.set('calculatingFee', false); refresh(); return cb(); From 92cab1871a46b8e1f552c2d4d86c103c4c67865c Mon Sep 17 00:00:00 2001 From: JDonadio Date: Fri, 1 Sep 2017 14:59:14 -0300 Subject: [PATCH 079/157] hide testnet options for bch wallets in import process --- src/js/controllers/import.js | 14 ++++++++++++-- www/views/includes/cash.html | 2 +- www/views/tab-import-phrase.html | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index c66cb4a3f..62f6d4f0b 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -19,7 +19,9 @@ angular.module('copayApp.controllers').controller('importController', $scope.formData.coin = 'btc'; $scope.importErr = false; $scope.isCopay = appConfigService.name == 'copay'; - $scope.fromHardwareWallet = { value: false }; + $scope.fromHardwareWallet = { + value: false + }; if (config.cashSupport.enabled) $scope.enableCash = true; @@ -63,6 +65,14 @@ angular.module('copayApp.controllers').controller('importController', }); }; + $scope.switchTestnetOff = function() { + $scope.formData.testnetEnabled = false; + $scope.resizeView(); + $timeout(function() { + $scope.$apply(); + }); + }; + $scope.processWalletInfo = function(code) { if (!code) return; @@ -286,7 +296,7 @@ angular.module('copayApp.controllers').controller('importController', $log.warn('This wont work for Intel TEE wallets'); var id = $scope.formData.seedSourceAll.id; - var isMultisig = opts.derivationStrategy =='BIP48'; + var isMultisig = opts.derivationStrategy == 'BIP48'; var account = opts.account; opts.entropySourcePath = 'm/' + hwWallet.getEntropyPath(id, isMultisig, account); } diff --git a/www/views/includes/cash.html b/www/views/includes/cash.html index e67fb182b..335b72811 100644 --- a/www/views/includes/cash.html +++ b/www/views/includes/cash.html @@ -2,7 +2,7 @@
Coin
- diff --git a/www/views/tab-import-phrase.html b/www/views/tab-import-phrase.html index 2806d4a68..0eac3426d 100644 --- a/www/views/tab-import-phrase.html +++ b/www/views/tab-import-phrase.html @@ -64,7 +64,7 @@ - + Testnet From 9f9bb1b728b35f7184d8bc5a0054d10d805efda5 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 1 Sep 2017 15:26:12 -0300 Subject: [PATCH 080/157] Ref amount-confirm sendMax --- src/js/controllers/amount.js | 6 +++--- src/js/controllers/confirm.js | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index dee20cde1..c1b105068 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -309,7 +309,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ if (a) { $scope.alternativeAmount = txFormatService.formatAmount(a * unitToSatoshi, true); } else { - $scope.alternativeAmount = 'N/A'; //TODO + $scope.alternativeAmount = 'N/A'; //TODO $scope.allowSend = false; } } else { @@ -369,7 +369,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ id: _id, amount: $scope.useSendMax ? null : _amount, currency: unit.id.toUpperCase(), - coin: coin, + coin: $scope.useSendMax ? null : coin, useSendMax: $scope.useSendMax }); } else { @@ -388,7 +388,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ toName: $scope.toName, toEmail: $scope.toEmail, toColor: $scope.toColor, - coin: coin, + coin: $scope.useSendMax ? null : coin, useSendMax: $scope.useSendMax }); } diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index d8cd299b3..2129e0352 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -69,7 +69,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.$on("$ionicView.beforeEnter", function(event, data) { - function setWalletSelector(coin, network, minAmount, sendMax, cb) { + function setWalletSelector(coin, network, minAmount, cb) { // no min amount? (sendMax) => look for no empty wallets minAmount = minAmount || 1; @@ -77,7 +77,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.wallets = profileService.getWallets({ onlyComplete: true, network: network, - coin: sendMax ? null : coin + coin: coin }); if (!$scope.wallets || !$scope.wallets.length) { @@ -129,7 +129,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( description: data.stateParams.description, paypro: data.stateParams.paypro, - feeLevel: data.stateParams.coin == 'bch' ? 'normal' : configFeeLevel, + feeLevel: configFeeLevel, spendUnconfirmed: walletConfig.spendUnconfirmed, // Vanity tx info (not in the real tx) @@ -142,6 +142,8 @@ angular.module('copayApp.controllers').controller('confirmController', function( txp: {}, }; + if (tx.coin && tx.coin == 'bch') tx.feeLevel = 'normal'; + // Other Scope vars $scope.isCordova = isCordova; $scope.isWindowsPhoneApp = isWindowsPhoneApp; @@ -149,7 +151,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.walletSelectorTitle = gettextCatalog.getString('Send from'); - setWalletSelector(tx.coin, tx.network, tx.toAmount, tx.sendMax, function(err) { + setWalletSelector(tx.coin, tx.network, tx.toAmount, function(err) { if (err) { return exitWithError('Could not update wallets'); } From d26501c87f3876bc3033ef6da68a334a904e89c4 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Fri, 1 Sep 2017 15:33:09 -0300 Subject: [PATCH 081/157] change derivation path properly --- src/js/controllers/import.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index 62f6d4f0b..b2b6ab0be 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -67,6 +67,7 @@ angular.module('copayApp.controllers').controller('importController', $scope.switchTestnetOff = function() { $scope.formData.testnetEnabled = false; + $scope.setDerivationPath(); $scope.resizeView(); $timeout(function() { $scope.$apply(); From cffb1cfdc9d16851c0bdaab867cd503076451de5 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 4 Sep 2017 11:44:58 -0300 Subject: [PATCH 082/157] Adds recreate/retry buttons --- src/sass/views/walletDetails.scss | 12 +++++++++++- www/views/includes/walletInfo.html | 4 ++++ www/views/walletDetails.html | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/sass/views/walletDetails.scss b/src/sass/views/walletDetails.scss index 85baf42b8..bca852300 100644 --- a/src/sass/views/walletDetails.scss +++ b/src/sass/views/walletDetails.scss @@ -223,7 +223,6 @@ } &__error { - cursor: pointer; font-size: 14px; padding: 35px 20px; } @@ -268,6 +267,17 @@ font-size: 20px; color: #fff; width:95%; + + .actions{ + float: right; + a { + color: white; + font-size: 14px; + cursor: pointer; + padding: 5px; + line-height: 16px; + } + } } .wallet-not-backed-up-warning { diff --git a/www/views/includes/walletInfo.html b/www/views/includes/walletInfo.html index 1ddcc4904..cd6aab426 100644 --- a/www/views/includes/walletInfo.html +++ b/www/views/includes/walletInfo.html @@ -1,4 +1,8 @@ + diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index 61bc9e1f4..2a094e233 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -21,11 +21,11 @@ ng-class="{collapsible: amountIsCollapsible, 'wallet-background-color-default': !wallet.color, 'no-alternative': wallet.network != 'livenet'}" > -
+
{{updateStatusError}}
-
+
This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.
From 5373faf744c9a0f2fa6b7f92ed7bc5d37c2ea9fe Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 4 Sep 2017 15:48:11 -0300 Subject: [PATCH 083/157] Fix translations. Updates POT --- i18n/po/template.pot | 726 ++++++++++++------------ src/js/controllers/confirm.js | 18 +- src/js/controllers/modals/txpDetails.js | 14 +- www/views/advancedSettings.html | 6 +- www/views/preferences.html | 2 +- www/views/tx-details.html | 4 +- 6 files changed, 407 insertions(+), 363 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index beadf761d..9ef677111 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -39,21 +39,21 @@ msgstr "" msgid "A member of the team will review your feedback as soon as possible." msgstr "" -#: src/js/controllers/confirm.js:351 +#: src/js/controllers/confirm.js:374 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "" -#: src/js/controllers/confirm.js:345 +#: src/js/controllers/confirm.js:368 msgid "A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided." msgstr "" #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:156 +#: www/views/tab-settings.html:146 msgid "About" msgstr "" -#: src/js/controllers/modals/txpDetails.js:56 -#: src/js/controllers/tx-details.js:62 +#: src/js/controllers/modals/txpDetails.js:62 +#: src/js/controllers/tx-details.js:79 msgid "Accepted" msgstr "" @@ -61,9 +61,9 @@ msgstr "" msgid "Account" msgstr "" -#: www/views/join.html:69 -#: www/views/tab-create-personal.html:43 -#: www/views/tab-create-shared.html:72 +#: www/views/join.html:72 +#: www/views/tab-create-personal.html:45 +#: www/views/tab-create-shared.html:74 #: www/views/tab-import-hardware.html:19 msgid "Account Number" msgstr "" @@ -97,9 +97,9 @@ msgstr "" msgid "Add Memo" msgstr "" -#: www/views/join.html:84 -#: www/views/tab-create-personal.html:57 -#: www/views/tab-create-shared.html:86 +#: www/views/join.html:87 +#: www/views/tab-create-personal.html:59 +#: www/views/tab-create-shared.html:88 msgid "Add a password" msgstr "" @@ -107,9 +107,9 @@ msgstr "" msgid "Add account" msgstr "" -#: www/views/join.html:87 -#: www/views/tab-create-personal.html:60 -#: www/views/tab-create-shared.html:89 +#: www/views/join.html:90 +#: 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 "" @@ -117,7 +117,7 @@ msgstr "" msgid "Add as a contact" msgstr "" -#: src/js/controllers/confirm.js:374 +#: src/js/controllers/confirm.js:397 msgid "Add description" msgstr "" @@ -152,7 +152,7 @@ msgstr "" msgid "Addresses With Balance" msgstr "" -#: www/views/tab-settings.html:149 +#: www/views/tab-settings.html:139 msgid "Advanced" msgstr "" @@ -189,11 +189,11 @@ msgid "Almost done! Let's review." msgstr "" #: www/views/preferencesAltCurrency.html:4 -#: www/views/tab-settings.html:74 +#: www/views/tab-settings.html:64 msgid "Alternative Currency" msgstr "" -#: src/js/controllers/buyAmazon.js:97 +#: src/js/controllers/buyAmazon.js:98 msgid "Amazon.com is not available at this moment. Please try back later." msgstr "" @@ -247,11 +247,11 @@ msgstr "" msgid "Are you sure you want to delete this wallet?" msgstr "" -#: src/js/controllers/modals/txpDetails.js:148 +#: src/js/controllers/modals/txpDetails.js:154 msgid "Are you sure you want to reject this transaction?" msgstr "" -#: src/js/controllers/modals/txpDetails.js:165 +#: src/js/controllers/modals/txpDetails.js:171 msgid "Are you sure you want to remove this transaction?" msgstr "" @@ -268,7 +268,7 @@ msgstr "" msgid "Are you sure you would like to remove your BitPay Card ({{lastFourDigits}}) from this device?" msgstr "" -#: www/views/includes/walletInfo.html:5 +#: www/views/includes/walletInfo.html:10 msgid "Auditable" msgstr "" @@ -285,10 +285,10 @@ msgstr "" msgid "Average confirmation time" msgstr "" -#: www/views/join.html:140 -#: www/views/tab-create-personal.html:111 -#: www/views/tab-create-shared.html:140 -#: www/views/tab-import-phrase.html:48 +#: 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 "" @@ -305,7 +305,7 @@ msgid "Backup all livenet wallets before using this function" msgstr "" #: www/views/preferences.html:36 -#: www/views/tab-settings.html:120 +#: www/views/tab-settings.html:110 msgid "Backup needed" msgstr "" @@ -322,7 +322,7 @@ msgstr "" msgid "Backup your wallet before using this function" msgstr "" -#: src/js/services/profileService.js:430 +#: src/js/services/profileService.js:437 msgid "Bad wallet invitation" msgstr "" @@ -345,14 +345,10 @@ msgstr "" #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 -#: www/views/tab-settings.html:85 +#: www/views/tab-settings.html:75 msgid "Bitcoin Network Fee Policy" msgstr "" -#: www/views/tab-settings.html:63 -msgid "Bitcoin Unit" -msgstr "" - #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." msgstr "" @@ -377,8 +373,8 @@ msgstr "" msgid "Broadcast Payment" msgstr "" -#: src/js/controllers/modals/txpDetails.js:58 -#: src/js/controllers/tx-details.js:64 +#: src/js/controllers/modals/txpDetails.js:64 +#: src/js/controllers/tx-details.js:81 msgid "Broadcasted" msgstr "" @@ -408,7 +404,7 @@ msgstr "" msgid "Buy a Gift Card" msgstr "" -#: src/js/controllers/buyAmazon.js:332 +#: src/js/controllers/buyAmazon.js:334 msgid "Buy from" msgstr "" @@ -420,10 +416,10 @@ msgstr "" msgid "Calculating fee" msgstr "" -#: src/js/controllers/buyAmazon.js:311 -#: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:495 -#: src/js/controllers/topup.js:285 +#: src/js/controllers/buyAmazon.js:313 +#: src/js/controllers/buyMercadoLibre.js:307 +#: src/js/controllers/confirm.js:523 +#: src/js/controllers/topup.js:287 #: src/js/services/popupService.js:62 #: src/js/services/popupService.js:73 #: www/views/addressbook.add.html:10 @@ -446,7 +442,7 @@ msgstr "" msgid "Cannot Create Wallet" msgstr "" -#: src/js/services/profileService.js:426 +#: src/js/services/profileService.js:433 msgid "Cannot join the same wallet more that once" msgstr "" @@ -482,8 +478,18 @@ msgstr "" msgid "Clear cache" msgstr "" -#: src/js/controllers/modals/txpDetails.js:34 -msgid "Click" +#: src/js/controllers/confirm.js:347 +#: src/js/controllers/modals/txpDetails.js:49 +msgid "Click to accept" +msgstr "" + +#: src/js/controllers/confirm.js:341 +msgid "Click to pay" +msgstr "" + +#: src/js/controllers/confirm.js:353 +#: src/js/controllers/modals/txpDetails.js:42 +msgid "Click to send" msgstr "" #: www/views/customAmount.html:4 @@ -496,6 +502,10 @@ msgstr "" msgid "Close" msgstr "" +#: www/views/includes/cash.html:2 +msgid "Coin" +msgstr "" + #: www/views/preferences.html:22 msgid "Color" msgstr "" @@ -504,7 +514,7 @@ msgstr "" msgid "Commit hash" msgstr "" -#: www/views/preferences.html:48 +#: www/views/preferences.html:49 msgid "Complete the backup process to use this option" msgstr "" @@ -512,11 +522,11 @@ msgstr "" msgid "Completed" msgstr "" -#: src/js/controllers/buyAmazon.js:309 -#: src/js/controllers/buyMercadoLibre.js:303 -#: src/js/controllers/confirm.js:494 +#: src/js/controllers/buyAmazon.js:311 +#: src/js/controllers/buyMercadoLibre.js:305 +#: src/js/controllers/confirm.js:522 #: src/js/controllers/copayers.js:55 -#: src/js/controllers/topup.js:283 +#: src/js/controllers/topup.js:285 #: www/views/backup.html:53 #: www/views/backup.html:72 #: www/views/confirm.html:4 @@ -538,11 +548,11 @@ msgstr "" msgid "Confirm your PIN" msgstr "" -#: src/js/services/walletService.js:1034 +#: src/js/services/walletService.js:1030 msgid "Confirm your new spending password" msgstr "" -#: www/views/tx-details.html:98 +#: www/views/tx-details.html:100 msgid "Confirmations" msgstr "" @@ -617,7 +627,7 @@ msgstr "" msgid "Copy to clipboard" msgstr "" -#: src/js/controllers/buyMercadoLibre.js:101 +#: src/js/controllers/buyMercadoLibre.js:102 msgid "Could not access Gift Card Service" msgstr "" @@ -625,11 +635,11 @@ msgstr "" msgid "Could not access the wallet at the server. Please check:" msgstr "" -#: src/js/controllers/buyAmazon.js:101 +#: src/js/controllers/buyAmazon.js:102 msgid "Could not access to Amazon.com" msgstr "" -#: src/js/services/profileService.js:493 +#: src/js/services/profileService.js:502 msgid "Could not access wallet" msgstr "" @@ -637,7 +647,7 @@ msgstr "" msgid "Could not add message to imported wallet without shared encrypting key" msgstr "" -#: src/js/controllers/modals/txpDetails.js:193 +#: src/js/controllers/modals/txpDetails.js:199 msgid "Could not broadcast payment" msgstr "" @@ -645,45 +655,45 @@ msgstr "" msgid "Could not build transaction" msgstr "" -#: src/js/services/walletService.js:857 +#: src/js/services/walletService.js:853 msgid "Could not create address" msgstr "" -#: src/js/controllers/topup.js:91 +#: src/js/controllers/topup.js:92 msgid "Could not create the invoice" msgstr "" -#: src/js/controllers/buyAmazon.js:163 -#: src/js/controllers/buyMercadoLibre.js:163 -#: src/js/controllers/topup.js:141 +#: src/js/controllers/buyAmazon.js:164 +#: src/js/controllers/buyMercadoLibre.js:164 +#: src/js/controllers/topup.js:142 msgid "Could not create transaction" msgstr "" -#: src/js/services/profileService.js:342 +#: src/js/services/profileService.js:345 msgid "Could not create using the specified extended private key" msgstr "" -#: src/js/services/profileService.js:353 +#: src/js/services/profileService.js:357 msgid "Could not create using the specified extended public key" msgstr "" -#: src/js/services/profileService.js:335 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "" -#: src/js/controllers/import.js:99 +#: src/js/controllers/import.js:114 msgid "Could not decrypt file, check your password" msgstr "" -#: src/js/controllers/modals/txpDetails.js:175 +#: src/js/controllers/modals/txpDetails.js:181 msgid "Could not delete payment proposal" msgstr "" -#: src/js/services/feeService.js:72 +#: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" msgstr "" -#: src/js/services/feeService.js:42 +#: src/js/services/feeService.js:43 msgid "Could not get dynamic fee for level: {{feeLevel}}" msgstr "" @@ -691,9 +701,9 @@ msgstr "" msgid "Could not get fee levels" msgstr "" -#: src/js/controllers/buyAmazon.js:121 -#: src/js/controllers/buyMercadoLibre.js:121 -#: src/js/controllers/topup.js:99 +#: 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 "" @@ -701,21 +711,21 @@ msgstr "" msgid "Could not get transactions" msgstr "" -#: src/js/services/profileService.js:597 -#: src/js/services/profileService.js:631 -#: src/js/services/profileService.js:654 +#: src/js/services/profileService.js:606 +#: src/js/services/profileService.js:641 +#: src/js/services/profileService.js:665 msgid "Could not import" msgstr "" -#: src/js/services/profileService.js:566 +#: src/js/services/profileService.js:575 msgid "Could not import. Check input file and spending password" msgstr "" -#: src/js/services/profileService.js:439 +#: src/js/services/profileService.js:448 msgid "Could not join wallet" msgstr "" -#: src/js/controllers/modals/txpDetails.js:155 +#: src/js/controllers/modals/txpDetails.js:161 msgid "Could not reject payment" msgstr "" @@ -728,26 +738,26 @@ msgstr "" msgid "Could not remove card" msgstr "" -#: src/js/services/walletService.js:776 +#: src/js/services/walletService.js:772 msgid "Could not save preferences on the server" msgstr "" -#: src/js/controllers/modals/txpDetails.js:141 +#: src/js/controllers/modals/txpDetails.js:147 msgid "Could not send payment" msgstr "" -#: src/js/controllers/buyAmazon.js:323 -#: src/js/controllers/buyMercadoLibre.js:316 -#: src/js/controllers/topup.js:297 +#: src/js/controllers/buyAmazon.js:325 +#: src/js/controllers/buyMercadoLibre.js:318 +#: src/js/controllers/topup.js:299 msgid "Could not send transaction" msgstr "" -#: www/views/walletDetails.html:198 +#: www/views/walletDetails.html:125 msgid "Could not update transaction history" msgstr "" -#: src/js/controllers/addresses.js:34 -#: src/js/controllers/addresses.js:42 +#: src/js/controllers/addresses.js:29 +#: src/js/controllers/addresses.js:37 #: src/js/controllers/copayers.js:30 #: src/js/controllers/walletDetails.js:78 msgid "Could not update wallet" @@ -767,7 +777,7 @@ msgstr "" msgid "Create bitcoin wallet" msgstr "" -#: www/views/tab-create-personal.html:129 +#: www/views/tab-create-personal.html:131 msgid "Create new wallet" msgstr "" @@ -775,7 +785,7 @@ msgstr "" msgid "Create shared wallet" msgstr "" -#: www/views/tab-create-shared.html:158 +#: www/views/tab-create-shared.html:160 msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "" @@ -805,7 +815,7 @@ msgstr "" msgid "Custom Amount" msgstr "" -#: src/js/controllers/preferencesFee.js:84 +#: src/js/controllers/preferencesFee.js:85 msgid "Custom Fee" msgstr "" @@ -840,10 +850,10 @@ msgstr "" msgid "Deleting payment proposal" msgstr "" -#: www/views/join.html:138 -#: www/views/tab-create-personal.html:109 -#: www/views/tab-create-shared.html:138 -#: www/views/tab-import-phrase.html:46 +#: www/views/join.html:141 +#: www/views/tab-create-personal.html:111 +#: www/views/tab-create-shared.html:140 +#: www/views/tab-import-phrase.html:49 msgid "Derivation Path" msgstr "" @@ -859,7 +869,7 @@ msgid "Details" msgstr "" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:60 +#: src/js/controllers/tab-settings.js:59 msgid "Disabled" msgstr "" @@ -906,6 +916,10 @@ msgstr "" msgid "Empty addresses limit reached. New addresses cannot be generated." msgstr "" +#: www/views/advancedSettings.html:15 +msgid "Enable Bitcoin Cash wallet creation and operation within the App." +msgstr "" + #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." msgstr "" @@ -922,8 +936,8 @@ msgstr "" msgid "Enable the camera to get started." msgstr "" -#: src/js/services/walletService.js:1048 -#: src/js/services/walletService.js:1063 +#: src/js/services/walletService.js:1044 +#: src/js/services/walletService.js:1059 msgid "Enter Spending Password" msgstr "" @@ -939,13 +953,13 @@ msgstr "" msgid "Enter custom fee" msgstr "" -#: src/js/services/walletService.js:1030 +#: src/js/services/walletService.js:1026 msgid "Enter new spending password" msgstr "" -#: www/views/join.html:76 -#: www/views/tab-create-personal.html:49 -#: www/views/tab-create-shared.html:78 +#: www/views/join.html:79 +#: www/views/tab-create-personal.html:51 +#: www/views/tab-create-shared.html:80 msgid "Enter the recovery phrase (BIP39)" msgstr "" @@ -961,23 +975,23 @@ msgstr "" #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 #: src/js/controllers/addressbookView.js:29 -#: src/js/controllers/addresses.js:130 -#: src/js/controllers/addresses.js:131 +#: src/js/controllers/addresses.js:125 +#: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 #: src/js/controllers/bitpayCardIntro.js:40 #: src/js/controllers/bitpayCardIntro.js:81 -#: src/js/controllers/buyAmazon.js:23 -#: src/js/controllers/buyAmazon.js:34 -#: src/js/controllers/buyMercadoLibre.js:23 -#: src/js/controllers/buyMercadoLibre.js:34 -#: src/js/controllers/confirm.js:276 +#: src/js/controllers/buyAmazon.js:24 +#: src/js/controllers/buyAmazon.js:35 +#: src/js/controllers/buyMercadoLibre.js:24 +#: src/js/controllers/buyMercadoLibre.js:35 +#: src/js/controllers/confirm.js:282 #: src/js/controllers/copayers.js:67 -#: src/js/controllers/create.js:155 -#: src/js/controllers/create.js:168 -#: src/js/controllers/create.js:175 -#: src/js/controllers/create.js:197 -#: src/js/controllers/create.js:204 -#: src/js/controllers/create.js:222 +#: src/js/controllers/create.js:161 +#: src/js/controllers/create.js:174 +#: src/js/controllers/create.js:181 +#: src/js/controllers/create.js:203 +#: src/js/controllers/create.js:210 +#: src/js/controllers/create.js:228 #: src/js/controllers/export.js:109 #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -987,32 +1001,32 @@ msgstr "" #: src/js/controllers/export.js:47 #: src/js/controllers/export.js:53 #: src/js/controllers/feedback/send.js:23 -#: src/js/controllers/import.js:104 -#: src/js/controllers/import.js:116 -#: src/js/controllers/import.js:134 -#: src/js/controllers/import.js:185 -#: src/js/controllers/import.js:213 -#: src/js/controllers/import.js:222 -#: src/js/controllers/import.js:237 -#: src/js/controllers/import.js:249 -#: src/js/controllers/import.js:260 -#: src/js/controllers/import.js:270 -#: src/js/controllers/import.js:294 -#: src/js/controllers/import.js:307 -#: src/js/controllers/import.js:317 -#: src/js/controllers/import.js:327 -#: src/js/controllers/import.js:351 -#: src/js/controllers/import.js:364 -#: src/js/controllers/import.js:70 -#: src/js/controllers/import.js:83 -#: src/js/controllers/join.js:121 -#: src/js/controllers/join.js:135 -#: src/js/controllers/join.js:142 -#: src/js/controllers/join.js:165 -#: src/js/controllers/join.js:173 -#: src/js/controllers/join.js:191 +#: src/js/controllers/import.js:119 +#: src/js/controllers/import.js:131 +#: src/js/controllers/import.js:149 +#: src/js/controllers/import.js:200 +#: src/js/controllers/import.js:229 +#: src/js/controllers/import.js:238 +#: src/js/controllers/import.js:254 +#: src/js/controllers/import.js:266 +#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:312 +#: src/js/controllers/import.js:325 +#: src/js/controllers/import.js:335 +#: src/js/controllers/import.js:345 +#: src/js/controllers/import.js:369 +#: src/js/controllers/import.js:382 +#: src/js/controllers/import.js:85 +#: src/js/controllers/import.js:98 +#: src/js/controllers/join.js:125 +#: src/js/controllers/join.js:139 +#: src/js/controllers/join.js:146 +#: src/js/controllers/join.js:169 +#: src/js/controllers/join.js:177 +#: src/js/controllers/join.js:195 #: src/js/controllers/modals/feeLevels.js:9 -#: src/js/controllers/modals/txpDetails.js:134 +#: src/js/controllers/modals/txpDetails.js:140 #: src/js/controllers/paperWallet.js:47 #: src/js/controllers/preferencesBitpayCard.js:20 #: src/js/controllers/preferencesBitpayServices.js:33 @@ -1020,42 +1034,42 @@ msgstr "" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:132 +#: src/js/controllers/tab-send.js:133 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 -#: src/js/controllers/topup.js:20 -#: src/js/controllers/topup.js:31 -#: src/js/controllers/tx-details.js:102 -#: src/js/services/incomingData.js:98 +#: src/js/controllers/topup.js:21 +#: src/js/controllers/topup.js:32 +#: src/js/controllers/tx-details.js:119 +#: src/js/services/incomingData.js:101 #: www/views/mercadoLibreCards.html:19 #: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "" -#: src/js/controllers/confirm.js:447 +#: src/js/controllers/confirm.js:475 msgid "Error at confirm" msgstr "" -#: src/js/controllers/buyAmazon.js:178 +#: src/js/controllers/buyAmazon.js:179 msgid "Error creating gift card" msgstr "" -#: src/js/controllers/buyAmazon.js:93 -#: src/js/controllers/buyMercadoLibre.js:93 +#: src/js/controllers/buyAmazon.js:94 +#: src/js/controllers/buyMercadoLibre.js:94 msgid "Error creating the invoice" msgstr "" -#: src/js/services/profileService.js:396 +#: src/js/services/profileService.js:403 msgid "Error creating wallet" msgstr "" -#: src/js/controllers/confirm.js:266 +#: src/js/controllers/confirm.js:271 msgid "Error getting SendMax information" msgstr "" -#: src/js/controllers/buyAmazon.js:135 -#: src/js/controllers/buyMercadoLibre.js:135 -#: src/js/controllers/topup.js:113 +#: src/js/controllers/buyAmazon.js:136 +#: src/js/controllers/buyMercadoLibre.js:136 +#: src/js/controllers/topup.js:114 msgid "Error in Payment Protocol" msgstr "" @@ -1067,7 +1081,7 @@ msgstr "" msgid "Error scanning funds:" msgstr "" -#: src/js/controllers/paperWallet.js:91 +#: src/js/controllers/paperWallet.js:90 msgid "Error sweeping wallet:" msgstr "" @@ -1079,7 +1093,7 @@ msgstr "" msgid "Exceeded daily limit of $500 per user" msgstr "" -#: src/js/controllers/confirm.js:411 +#: src/js/controllers/confirm.js:434 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 @@ -1105,7 +1119,7 @@ msgstr "" msgid "Export wallet" msgstr "" -#: src/js/services/walletService.js:1175 +#: src/js/services/walletService.js:1171 #: www/views/tab-export-qrCode.html:9 msgid "Exporting via QR not supported for this wallet" msgstr "" @@ -1179,12 +1193,12 @@ msgstr "" msgid "Finish" msgstr "" -#: www/views/tab-create-personal.html:121 -#: www/views/tab-create-shared.html:150 +#: www/views/tab-create-personal.html:123 +#: www/views/tab-create-shared.html:152 msgid "For audit purposes" msgstr "" -#: src/js/controllers/topup.js:306 +#: src/js/controllers/topup.js:308 #: www/views/buyAmazon.html:29 #: www/views/buyMercadoLibre.html:28 #: www/views/confirm.html:65 @@ -1198,7 +1212,7 @@ msgstr "" msgid "From BitPay account" msgstr "" -#: www/views/tab-import-phrase.html:54 +#: www/views/tab-import-phrase.html:57 msgid "From Hardware Wallet" msgstr "" @@ -1250,12 +1264,12 @@ msgstr "" msgid "Get news and updates from BitPay" msgstr "" -#: www/views/onboarding/welcome.html:8 -msgctxt "button" +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "" -#: www/views/bitpayCard.html:49 +#: www/views/onboarding/welcome.html:8 +msgctxt "button" msgid "Get started" msgstr "" @@ -1277,7 +1291,7 @@ msgstr "" msgid "Gift card" msgstr "" -#: src/js/controllers/buyAmazon.js:203 +#: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "" @@ -1285,14 +1299,17 @@ msgstr "" msgid "Gift card generated and ready to use." msgstr "" +#: src/js/controllers/advancedSettings.js:75 #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 #: src/js/controllers/onboarding/terms.js:23 +#: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:48 -#: src/js/controllers/tx-details.js:176 +#: src/js/controllers/tab-settings.js:47 +#: src/js/controllers/tx-details.js:193 +#: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "" @@ -1326,7 +1343,7 @@ msgid "Help & Support" msgstr "" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:46 +#: src/js/controllers/tab-settings.js:45 msgid "Help and support information is available at the website." msgstr "" @@ -1338,17 +1355,17 @@ msgstr "" msgid "Hide Balance" msgstr "" -#: www/views/advancedSettings.html:29 +#: www/views/advancedSettings.html:40 msgid "Hide Next Steps Card" msgstr "" -#: www/views/join.html:46 -#: www/views/tab-create-personal.html:26 -#: www/views/tab-create-shared.html:55 +#: www/views/join.html:49 +#: www/views/tab-create-personal.html:28 +#: www/views/tab-create-shared.html:57 #: www/views/tab-export-file.html:25 -#: www/views/tab-import-file.html:28 +#: www/views/tab-import-file.html:30 #: www/views/tab-import-hardware.html:31 -#: www/views/tab-import-phrase.html:33 +#: www/views/tab-import-phrase.html:36 msgid "Hide advanced options" msgstr "" @@ -1378,9 +1395,9 @@ msgstr "" msgid "I have read, understood, and agree with the Terms of use." msgstr "" -#: www/views/join.html:134 -#: www/views/tab-create-personal.html:105 -#: www/views/tab-create-shared.html:134 +#: www/views/join.html:137 +#: www/views/tab-create-personal.html:107 +#: www/views/tab-create-shared.html:136 msgid "I have written it down" msgstr "" @@ -1413,11 +1430,11 @@ msgstr "" msgid "If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected." msgstr "" -#: www/views/advancedSettings.html:22 +#: www/views/advancedSettings.html:33 msgid "If enabled, the Recent Transactions card - a list of transactions occuring across all wallets - will appear in the Home tab." msgstr "" -#: www/views/advancedSettings.html:13 +#: www/views/advancedSettings.html:24 msgid "If enabled, wallets will also try to spend unconfirmed funds. This option may cause transaction delays." msgstr "" @@ -1434,7 +1451,7 @@ msgid "If you take a screenshot, your backup may be viewed by other apps. You ca msgstr "" #: www/views/tab-import-hardware.html:42 -#: www/views/tab-import-phrase.html:77 +#: www/views/tab-import-phrase.html:80 msgid "Import" msgstr "" @@ -1442,7 +1459,7 @@ msgstr "" msgid "Import Wallet" msgstr "" -#: www/views/tab-import-file.html:39 +#: www/views/tab-import-file.html:41 msgid "Import backup" msgstr "" @@ -1466,7 +1483,7 @@ msgstr "" #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 -#: www/views/tab-settings.html:117 +#: www/views/tab-settings.html:107 msgid "Incomplete" msgstr "" @@ -1479,7 +1496,7 @@ msgid "Incorrect PIN, try again." msgstr "" #. Trying to import a malformed wallet export QR code -#: src/js/controllers/import.js:70 +#: src/js/controllers/import.js:85 msgid "Incorrect code format" msgstr "" @@ -1487,14 +1504,14 @@ msgstr "" msgid "Incorrect network address" msgstr "" -#: src/js/controllers/confirm.js:112 -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:113 +#: src/js/controllers/confirm.js:281 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "" -#: src/js/controllers/topup.js:164 -#: src/js/controllers/topup.js:176 +#: src/js/controllers/topup.js:165 +#: src/js/controllers/topup.js:177 #: src/js/services/bwcError.js:71 msgid "Insufficient funds for fee" msgstr "" @@ -1503,15 +1520,15 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/js/controllers/buyAmazon.js:136 -#: src/js/controllers/buyMercadoLibre.js:136 -#: src/js/controllers/topup.js:114 +#: src/js/controllers/buyAmazon.js:137 +#: src/js/controllers/buyMercadoLibre.js:137 +#: src/js/controllers/topup.js:115 msgid "Invalid URL" msgstr "" -#: src/js/controllers/create.js:175 -#: src/js/controllers/import.js:327 -#: src/js/controllers/join.js:142 +#: src/js/controllers/create.js:181 +#: src/js/controllers/import.js:345 +#: src/js/controllers/join.js:146 msgid "Invalid account number" msgstr "" @@ -1523,9 +1540,9 @@ msgstr "" msgid "Invalid data" msgstr "" -#: src/js/controllers/create.js:155 -#: src/js/controllers/import.js:249 -#: src/js/controllers/join.js:121 +#: src/js/controllers/create.js:161 +#: src/js/controllers/import.js:266 +#: src/js/controllers/join.js:125 msgid "Invalid derivation path" msgstr "" @@ -1558,7 +1575,7 @@ msgstr "" msgid "It's important that you write your backup phrase down correctly. If something happens to your wallet, you'll need this backup to recover your money. Please review your backup and try again." msgstr "" -#: www/views/join.html:148 +#: www/views/join.html:151 msgid "Join" msgstr "" @@ -1592,6 +1609,12 @@ msgstr "" msgid "Last Month" msgstr "" +#: www/views/advancedSettings.html:16 +#: www/views/preferences.html:48 +#: www/views/tx-details.html:96 +msgid "Learn more" +msgstr "" + #: www/views/backup.html:36 msgid "Let's verify your backup phrase." msgstr "" @@ -1605,7 +1628,7 @@ msgstr "" msgid "Loading transaction info..." msgstr "" -#: www/views/tab-settings.html:95 +#: www/views/tab-settings.html:85 msgid "Lock App" msgstr "" @@ -1662,7 +1685,7 @@ msgstr "" msgid "Meh - it's alright" msgstr "" -#: src/js/controllers/tx-details.js:148 +#: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 #: www/views/modals/txp-details.html:95 #: www/views/tx-details.html:74 @@ -1673,7 +1696,7 @@ msgstr "" msgid "Mercado Livre Brazil Gift Cards" msgstr "" -#: src/js/controllers/buyMercadoLibre.js:97 +#: src/js/controllers/buyMercadoLibre.js:98 msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "" @@ -1695,7 +1718,7 @@ msgstr "" msgid "Missing private keys to sign" msgstr "" -#: www/views/preferences.html:60 +#: www/views/preferences.html:61 #: www/views/preferencesAdvanced.html:3 msgid "More Options" msgstr "" @@ -1705,7 +1728,7 @@ msgstr "" msgid "Moved" msgstr "" -#: src/js/controllers/tx-details.js:114 +#: src/js/controllers/tx-details.js:131 msgid "Moved Funds" msgstr "" @@ -1738,7 +1761,7 @@ msgstr "" msgid "New Proposal" msgstr "" -#: src/js/controllers/addresses.js:131 +#: src/js/controllers/addresses.js:126 msgid "New address could not be generated. Please try again." msgstr "" @@ -1754,8 +1777,8 @@ msgstr "" msgid "No Wallet" msgstr "" -#: src/js/controllers/buyAmazon.js:114 -#: src/js/controllers/buyMercadoLibre.js:114 +#: src/js/controllers/buyAmazon.js:115 +#: src/js/controllers/buyMercadoLibre.js:115 msgid "No access key defined" msgstr "" @@ -1787,12 +1810,12 @@ msgstr "" msgid "No recent transactions" msgstr "" -#: src/js/controllers/buyAmazon.js:43 -#: src/js/controllers/topup.js:46 +#: src/js/controllers/buyAmazon.js:44 +#: src/js/controllers/topup.js:47 msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:192 +#: www/views/walletDetails.html:119 msgid "No transactions yet" msgstr "" @@ -1804,10 +1827,10 @@ msgstr "" msgid "No wallet selected" msgstr "" -#: src/js/controllers/buyAmazon.js:298 -#: src/js/controllers/buyMercadoLibre.js:290 -#: src/js/controllers/confirm.js:83 -#: src/js/controllers/topup.js:263 +#: src/js/controllers/buyAmazon.js:300 +#: src/js/controllers/buyMercadoLibre.js:292 +#: src/js/controllers/confirm.js:84 +#: src/js/controllers/topup.js:265 msgid "No wallets available" msgstr "" @@ -1823,7 +1846,7 @@ msgstr "" msgid "Not authorized" msgstr "" -#: src/js/controllers/confirm.js:276 +#: src/js/controllers/confirm.js:282 msgid "Not enough funds for fee" msgstr "" @@ -1857,7 +1880,7 @@ msgstr "" msgid "Notifications by email" msgstr "" -#: www/views/tx-details.html:117 +#: www/views/tx-details.html:119 msgid "Notify me if confirmed" msgstr "" @@ -1873,8 +1896,8 @@ msgstr "" msgid "Now is a perfect time to assess your surroundings. Nearby windows? Hidden cameras? Shoulder-spies?" msgstr "" -#: src/js/controllers/buyAmazon.js:310 -#: src/js/controllers/topup.js:284 +#: src/js/controllers/buyAmazon.js:312 +#: src/js/controllers/topup.js:286 #: src/js/services/popupService.js:16 #: src/js/services/popupService.js:52 #: src/js/services/popupService.js:61 @@ -1898,7 +1921,7 @@ msgstr "" msgid "Oh no!" msgstr "" -#: src/js/controllers/buyMercadoLibre.js:304 +#: src/js/controllers/buyMercadoLibre.js:306 msgid "Ok" msgstr "" @@ -1906,8 +1929,11 @@ msgstr "" msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "" +#: src/js/controllers/advancedSettings.js:74 #: src/js/controllers/bitpayCard.js:113 -#: src/js/controllers/tab-settings.js:47 +#: src/js/controllers/preferences.js:66 +#: src/js/controllers/tab-settings.js:46 +#: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "" @@ -1924,7 +1950,7 @@ msgid "Open GitHub Project" msgstr "" #: src/js/controllers/bitpayCard.js:123 -#: src/js/controllers/tx-details.js:175 +#: src/js/controllers/tx-details.js:192 msgid "Open Insight" msgstr "" @@ -1940,6 +1966,10 @@ msgstr "" msgid "Open Website" msgstr "" +#: src/js/controllers/advancedSettings.js:73 +msgid "Open bitcoincash.org?" +msgstr "" + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "" @@ -1952,18 +1982,18 @@ msgstr "" msgid "Order the BitPay Card" msgstr "" -#: www/views/join.html:102 -#: www/views/join.html:93 -#: www/views/tab-create-personal.html:67 -#: www/views/tab-create-personal.html:75 -#: www/views/tab-create-shared.html:104 -#: www/views/tab-create-shared.html:96 +#: www/views/join.html:105 +#: www/views/join.html:96 +#: www/views/tab-create-personal.html:69 +#: www/views/tab-create-personal.html:77 +#: www/views/tab-create-shared.html:106 +#: www/views/tab-create-shared.html:98 #: www/views/tab-import-file.html:18 -#: www/views/tab-import-phrase.html:38 +#: www/views/tab-import-phrase.html:41 msgid "Password" msgstr "" -#: src/js/controllers/import.js:83 +#: src/js/controllers/import.js:98 msgid "Password required. Make sure to enter your password in advanced options" msgstr "" @@ -1983,7 +2013,7 @@ msgstr "" msgid "Pay To" msgstr "" -#: src/js/controllers/modals/txpDetails.js:45 +#: src/js/controllers/modals/txpDetails.js:51 #: www/views/modals/tx-status.html:33 msgid "Payment Accepted" msgstr "" @@ -2021,7 +2051,7 @@ msgstr "" msgid "Payment Rejected" msgstr "" -#: src/js/controllers/modals/txpDetails.js:42 +#: src/js/controllers/modals/txpDetails.js:44 #: www/views/confirm.html:126 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 @@ -2057,7 +2087,7 @@ msgstr "" msgid "Permanently delete this wallet." msgstr "" -#: src/js/services/profileService.js:388 +#: src/js/services/profileService.js:394 msgid "Personal Wallet" msgstr "" @@ -2069,12 +2099,12 @@ msgstr "" msgid "Please connect a camera to get started." msgstr "" -#: src/js/controllers/import.js:260 +#: src/js/controllers/import.js:277 msgid "Please enter the recovery phrase" msgstr "" -#: src/js/controllers/create.js:168 -#: src/js/controllers/join.js:135 +#: src/js/controllers/create.js:174 +#: src/js/controllers/join.js:139 msgid "Please enter the wallet recovery phrase" msgstr "" @@ -2090,7 +2120,7 @@ msgstr "" msgid "Please upgrade Copay to perform this action" msgstr "" -#: src/js/controllers/import.js:222 +#: src/js/controllers/import.js:238 msgid "Please, select your backup file" msgstr "" @@ -2122,7 +2152,7 @@ msgstr "" msgid "Private Key" msgstr "" -#: src/js/controllers/paperWallet.js:137 +#: src/js/controllers/paperWallet.js:136 msgid "Private key encrypted. Enter password" msgstr "" @@ -2134,8 +2164,8 @@ msgstr "" msgid "Proposal Accepted" msgstr "" -#: src/js/controllers/modals/txpDetails.js:55 -#: src/js/controllers/tx-details.js:61 +#: src/js/controllers/modals/txpDetails.js:61 +#: src/js/controllers/tx-details.js:78 #: www/views/confirm.html:127 msgid "Proposal Created" msgstr "" @@ -2148,15 +2178,15 @@ msgstr "" msgid "Proposal Rejected" msgstr "" -#: www/views/walletDetails.html:177 +#: www/views/walletDetails.html:104 msgid "Proposals" msgstr "" -#: src/js/controllers/buyAmazon.js:281 +#: src/js/controllers/buyAmazon.js:282 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" msgstr "" -#: src/js/controllers/buyMercadoLibre.js:280 +#: src/js/controllers/buyMercadoLibre.js:281 msgid "Purchase amount must be a value between 50 and 2000" msgstr "" @@ -2176,8 +2206,8 @@ msgstr "" msgid "Quick review!" msgstr "" -#: src/js/controllers/create.js:79 -#: src/js/controllers/join.js:65 +#: src/js/controllers/create.js:84 +#: src/js/controllers/join.js:68 msgid "Random" msgstr "" @@ -2193,6 +2223,11 @@ msgstr "" msgid "Read more" msgstr "" +#: src/js/controllers/preferences.js:65 +#: src/js/controllers/tx-details.js:54 +msgid "Read more in our Wiki" +msgstr "" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" @@ -2207,7 +2242,7 @@ msgstr "" msgid "Received" msgstr "" -#: src/js/controllers/tx-details.js:113 +#: src/js/controllers/tx-details.js:130 msgid "Received Funds" msgstr "" @@ -2221,7 +2256,7 @@ msgstr "" msgid "Recent" msgstr "" -#: www/views/advancedSettings.html:20 +#: www/views/advancedSettings.html:31 msgid "Recent Transaction Card" msgstr "" @@ -2243,11 +2278,6 @@ msgstr "" msgid "Recovery phrase" msgstr "" -#: www/views/walletDetails.html:116 -#: www/views/walletDetails.html:36 -msgid "Recreate" -msgstr "" - #: src/js/services/onGoingProcess.js:26 msgid "Recreating Wallet..." msgstr "" @@ -2256,8 +2286,8 @@ msgstr "" msgid "Redeem now" msgstr "" -#: src/js/controllers/modals/txpDetails.js:57 -#: src/js/controllers/tx-details.js:63 +#: src/js/controllers/modals/txpDetails.js:63 +#: src/js/controllers/tx-details.js:80 msgid "Rejected" msgstr "" @@ -2286,12 +2316,12 @@ msgstr "" msgid "Removing your BitPay account will remove all associated BitPay account data from this device. Are you sure you would like to remove your BitPay Account ({{email}}) from this device?" msgstr "" -#: www/views/join.html:113 -#: www/views/join.html:121 -#: www/views/tab-create-personal.html:84 -#: www/views/tab-create-personal.html:92 -#: www/views/tab-create-shared.html:113 -#: www/views/tab-create-shared.html:121 +#: www/views/join.html:116 +#: www/views/join.html:124 +#: www/views/tab-create-personal.html:86 +#: www/views/tab-create-personal.html:94 +#: www/views/tab-create-shared.html:115 +#: www/views/tab-create-shared.html:123 #: www/views/tab-export-file.html:17 msgid "Repeat password" msgstr "" @@ -2300,7 +2330,7 @@ msgstr "" msgid "Repeat the password" msgstr "" -#: www/views/preferences.html:55 +#: www/views/preferences.html:56 msgid "Request Fingerprint" msgstr "" @@ -2312,7 +2342,7 @@ msgstr "" msgid "Request Spending Password" msgstr "" -#: www/views/tab-create-shared.html:42 +#: www/views/tab-create-shared.html:44 msgid "Required number of signatures" msgstr "" @@ -2397,7 +2427,7 @@ msgstr "" msgid "Select a backup file" msgstr "" -#: src/js/controllers/tab-receive.js:133 +#: src/js/controllers/tab-receive.js:134 msgid "Select a wallet" msgstr "" @@ -2434,7 +2464,7 @@ msgstr "" msgid "Send by email" msgstr "" -#: src/js/controllers/confirm.js:151 +#: src/js/controllers/confirm.js:152 msgid "Send from" msgstr "" @@ -2473,7 +2503,7 @@ msgstr "" msgid "Sending transaction" msgstr "" -#: src/js/controllers/confirm.js:490 +#: src/js/controllers/confirm.js:518 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "" @@ -2484,7 +2514,7 @@ msgstr "" msgid "Sent" msgstr "" -#: src/js/controllers/tx-details.js:112 +#: src/js/controllers/tx-details.js:129 msgid "Sent Funds" msgstr "" @@ -2492,8 +2522,8 @@ msgstr "" msgid "Server response could not be verified" msgstr "" -#: src/js/controllers/buyAmazon.js:96 -#: src/js/controllers/buyMercadoLibre.js:96 +#: src/js/controllers/buyAmazon.js:97 +#: src/js/controllers/buyMercadoLibre.js:97 msgid "Service not available" msgstr "" @@ -2513,7 +2543,7 @@ msgstr "" msgid "Set up a password" msgstr "" -#: src/js/controllers/preferencesFee.js:84 +#: src/js/controllers/preferencesFee.js:85 msgid "Set your own fee in satoshis/byte" msgstr "" @@ -2548,13 +2578,13 @@ msgstr "" msgid "Show address" msgstr "" -#: www/views/join.html:45 -#: www/views/tab-create-personal.html:25 -#: www/views/tab-create-shared.html:54 +#: www/views/join.html:48 +#: www/views/tab-create-personal.html:27 +#: www/views/tab-create-shared.html:56 #: www/views/tab-export-file.html:24 -#: www/views/tab-import-file.html:27 +#: www/views/tab-import-file.html:29 #: www/views/tab-import-hardware.html:30 -#: www/views/tab-import-phrase.html:32 +#: www/views/tab-import-phrase.html:35 msgid "Show advanced options" msgstr "" @@ -2578,8 +2608,8 @@ msgstr "" msgid "Since only you control your money, you’ll need to save your backup phrase in case this app is deleted." msgstr "" -#: www/views/tab-create-personal.html:120 -#: www/views/tab-create-shared.html:149 +#: www/views/tab-create-personal.html:122 +#: www/views/tab-create-shared.html:151 msgid "Single Address Wallet" msgstr "" @@ -2588,8 +2618,9 @@ msgstr "" msgid "Skip" msgstr "" -#: src/js/controllers/modals/txpDetails.js:34 -msgid "Slide" +#: src/js/controllers/confirm.js:345 +#: src/js/controllers/modals/txpDetails.js:47 +msgid "Slide to accept" msgstr "" #: www/views/buyAmazon.html:96 @@ -2597,8 +2628,17 @@ msgstr "" msgid "Slide to buy" msgstr "" -#: src/js/controllers/create.js:83 -#: src/js/controllers/join.js:68 +#: src/js/controllers/confirm.js:339 +msgid "Slide to pay" +msgstr "" + +#: src/js/controllers/confirm.js:351 +#: src/js/controllers/modals/txpDetails.js:40 +msgid "Slide to send" +msgstr "" + +#: src/js/controllers/create.js:88 +#: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." msgstr "" @@ -2614,7 +2654,7 @@ msgstr "" msgid "Spending Password needed" msgstr "" -#: www/views/walletDetails.html:161 +#: www/views/walletDetails.html:88 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2639,6 +2679,10 @@ msgstr "" msgid "Super Economy" msgstr "" +#: www/views/advancedSettings.html:12 +msgid "Support Bitcoin Cash" +msgstr "" + #: www/views/paperWallet.html:7 msgid "Sweep" msgstr "" @@ -2660,13 +2704,15 @@ msgstr "" msgid "Take control of your money,
get started with bitcoin." msgstr "" -#: www/views/walletDetails.html:139 -#: www/views/walletDetails.html:59 +#: www/views/walletDetails.html:52 msgid "Tap and hold to show" msgstr "" -#: www/views/walletDetails.html:111 -#: www/views/walletDetails.html:31 +#: www/views/includes/walletInfo.html:3 +msgid "Tap to recreate" +msgstr "" + +#: www/views/includes/walletInfo.html:4 msgid "Tap to retry" msgstr "" @@ -2681,8 +2727,8 @@ msgstr "" msgid "Terms of Use" msgstr "" -#: www/views/tab-create-personal.html:116 -#: www/views/tab-import-phrase.html:65 +#: www/views/tab-create-personal.html:118 +#: www/views/tab-import-phrase.html:68 msgid "Testnet" msgstr "" @@ -2745,7 +2791,7 @@ msgstr "" msgid "The password of the recovery phrase (if set)" msgstr "" -#: src/js/services/walletService.js:1140 +#: src/js/services/walletService.js:1136 msgid "The payment was created but could not be completed. Please try again from home screen" msgstr "" @@ -2753,10 +2799,10 @@ msgstr "" msgid "The payment was removed by creator" msgstr "" -#: www/views/join.html:88 -#: www/views/tab-create-personal.html:61 -#: www/views/tab-create-shared.html:90 -#: www/views/tab-import-phrase.html:40 +#: www/views/join.html:91 +#: www/views/tab-create-personal.html:63 +#: www/views/tab-create-shared.html:92 +#: www/views/tab-import-phrase.html:43 msgid "The recovery phrase could require a password to be imported" msgstr "" @@ -2788,9 +2834,9 @@ msgstr "" msgid "There is a new version of {{appName}} available" msgstr "" -#: src/js/controllers/import.js:213 -#: src/js/controllers/import.js:237 -#: src/js/controllers/import.js:317 +#: src/js/controllers/import.js:229 +#: src/js/controllers/import.js:254 +#: src/js/controllers/import.js:335 msgid "There is an error in the form" msgstr "" @@ -2807,13 +2853,13 @@ msgstr "" msgid "This app stores your bitcoin with cutting-edge security." msgstr "" -#: src/js/controllers/confirm.js:468 +#: src/js/controllers/confirm.js:496 msgid "This bitcoin payment request has expired." msgstr "" -#: www/views/join.html:130 -#: www/views/tab-create-personal.html:101 -#: www/views/tab-create-shared.html:130 +#: www/views/join.html:133 +#: www/views/tab-create-personal.html:103 +#: www/views/tab-create-shared.html:132 msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "" @@ -2829,13 +2875,12 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "" -#: www/views/walletDetails.html:115 -#: www/views/walletDetails.html:35 +#: www/views/walletDetails.html:29 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "" #: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:121 +#: www/views/tx-details.html:123 msgid "Timeline" msgstr "" @@ -2864,7 +2909,7 @@ msgstr "" msgid "Top up in progress..." msgstr "" -#: src/js/controllers/topup.js:205 +#: src/js/controllers/topup.js:206 msgid "Top up {{amountStr}} to debit card ({{cardLastNumber}})" msgstr "" @@ -2875,11 +2920,11 @@ msgstr "" msgid "Total" msgstr "" -#: www/views/walletDetails.html:184 +#: www/views/walletDetails.html:111 msgid "Total Locked Balance" msgstr "" -#: www/views/tab-create-shared.html:33 +#: www/views/tab-create-shared.html:35 msgid "Total number of copayers" msgstr "" @@ -2892,7 +2937,7 @@ msgstr "" msgid "Touch ID Failed" msgstr "" -#: src/js/controllers/tx-details.js:11 +#: src/js/controllers/tx-details.js:12 msgid "Transaction" msgstr "" @@ -2909,9 +2954,9 @@ msgstr "" msgid "Transaction already broadcasted" msgstr "" -#: src/js/controllers/buyAmazon.js:306 -#: src/js/controllers/buyMercadoLibre.js:299 -#: src/js/controllers/topup.js:279 +#: src/js/controllers/buyAmazon.js:308 +#: src/js/controllers/buyMercadoLibre.js:301 +#: src/js/controllers/topup.js:281 msgid "Transaction has not been created" msgstr "" @@ -2919,7 +2964,7 @@ msgstr "" msgid "Transaction initiated" msgstr "" -#: src/js/controllers/tx-details.js:102 +#: src/js/controllers/tx-details.js:119 msgid "Transaction not available at this time" msgstr "" @@ -2932,7 +2977,7 @@ msgstr "" msgid "Transactions without fee are not supported." msgstr "" -#: src/js/controllers/paperWallet.js:110 +#: src/js/controllers/paperWallet.js:109 msgid "Transfer to" msgstr "" @@ -2956,15 +3001,11 @@ msgstr "" msgid "Uh oh..." msgstr "" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:102 msgid "Unconfirmed" msgstr "" -#: www/views/preferencesUnit.html:4 -msgid "Unit" -msgstr "" - -#: www/views/walletDetails.html:178 +#: www/views/walletDetails.html:105 msgid "Unsent transactions" msgstr "" @@ -2984,7 +3025,7 @@ msgstr "" msgid "Updating pending proposals. Please stand by" msgstr "" -#: www/views/walletDetails.html:210 +#: www/views/walletDetails.html:132 msgid "Updating transaction history. Please stand by." msgstr "" @@ -2996,7 +3037,7 @@ msgstr "" msgid "Urgent" msgstr "" -#: www/views/advancedSettings.html:11 +#: www/views/advancedSettings.html:22 msgid "Use Unconfirmed Funds" msgstr "" @@ -3026,7 +3067,7 @@ msgid "View Terms of Service" msgstr "" #: src/js/controllers/bitpayCard.js:122 -#: src/js/controllers/tx-details.js:174 +#: src/js/controllers/tx-details.js:191 msgid "View Transaction on Insight" msgstr "" @@ -3034,7 +3075,7 @@ msgstr "" msgid "View Update" msgstr "" -#: www/views/tx-details.html:147 +#: www/views/tx-details.html:149 msgid "View on blockchain" msgstr "" @@ -3042,7 +3083,7 @@ msgstr "" msgid "Visit mercadolivre.com.br →" msgstr "" -#: www/views/walletDetails.html:170 +#: www/views/walletDetails.html:97 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "" @@ -3108,9 +3149,9 @@ msgstr "" msgid "Wallet Invitation" msgstr "" -#: www/views/join.html:57 -#: www/views/tab-create-personal.html:36 -#: www/views/tab-create-shared.html:65 +#: www/views/join.html:60 +#: www/views/tab-create-personal.html:38 +#: www/views/tab-create-shared.html:67 msgid "Wallet Key" msgstr "" @@ -3126,9 +3167,9 @@ msgstr "" msgid "Wallet Network" msgstr "" -#: www/views/join.html:74 -#: www/views/tab-create-personal.html:48 -#: www/views/tab-create-shared.html:77 +#: www/views/join.html:77 +#: www/views/tab-create-personal.html:50 +#: www/views/tab-create-shared.html:79 msgid "Wallet Recovery Phrase" msgstr "" @@ -3137,7 +3178,7 @@ msgid "Wallet Recovery Phrase is invalid" msgstr "" #: www/views/preferencesAdvanced.html:25 -#: www/views/tab-import-phrase.html:70 +#: www/views/tab-import-phrase.html:73 msgid "Wallet Service URL" msgstr "" @@ -3146,7 +3187,7 @@ msgid "Wallet Settings" msgstr "" #: www/views/tab-import-hardware.html:11 -#: www/views/tab-import-phrase.html:58 +#: www/views/tab-import-phrase.html:61 msgid "Wallet Type" msgstr "" @@ -3154,7 +3195,7 @@ msgstr "" msgid "Wallet already exists" msgstr "" -#: src/js/services/profileService.js:498 +#: src/js/services/profileService.js:507 msgid "Wallet already in {{appName}}" msgstr "" @@ -3188,7 +3229,7 @@ msgid "Wallet needs backup" msgstr "" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:156 +#: www/views/walletDetails.html:84 msgid "Wallet not backed up" msgstr "" @@ -3216,13 +3257,13 @@ msgstr "" msgid "Wallets" msgstr "" -#: www/views/tab-settings.html:102 +#: www/views/tab-settings.html:92 msgid "Wallets & Integrations" msgstr "" #: src/js/controllers/addressbookView.js:23 -#: src/js/controllers/modals/txpDetails.js:147 -#: src/js/controllers/modals/txpDetails.js:164 +#: src/js/controllers/modals/txpDetails.js:153 +#: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 #: src/js/controllers/preferencesExternal.js:14 #: www/views/preferencesDeleteWallet.html:11 @@ -3285,7 +3326,7 @@ msgstr "" msgid "Would you like to receive push notifications about payments?" msgstr "" -#: src/js/controllers/import.js:270 +#: src/js/controllers/import.js:287 msgid "Wrong number of recovery words:" msgstr "" @@ -3395,7 +3436,7 @@ msgstr "" msgid "Your wallet is never saved to cloud storage or standard device backups." msgstr "" -#: src/js/services/walletService.js:1031 +#: src/js/services/walletService.js:1027 msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "" @@ -3403,8 +3444,7 @@ msgstr "" #: www/views/paperWallet.html:35 #: www/views/tab-home.html:96 #: www/views/tab-receive.html:74 -#: www/views/walletDetails.html:138 -#: www/views/walletDetails.html:58 +#: www/views/walletDetails.html:51 msgid "[Balance Hidden]" msgstr "" @@ -3416,7 +3456,7 @@ msgstr "" msgid "locked by pending payments" msgstr "" -#: src/js/services/profileService.js:389 +#: src/js/services/profileService.js:395 msgid "me" msgstr "" @@ -3428,25 +3468,11 @@ msgstr "" msgid "preparing..." msgstr "" -#: src/js/controllers/confirm.js:329 -#: src/js/controllers/modals/txpDetails.js:44 -msgid "to accept" -msgstr "" - -#: src/js/controllers/confirm.js:327 -msgid "to pay" -msgstr "" - -#: src/js/controllers/confirm.js:331 -#: src/js/controllers/modals/txpDetails.js:41 -msgid "to send" -msgstr "" - -#: src/js/controllers/buyAmazon.js:238 +#: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" -#: src/js/controllers/buyMercadoLibre.js:236 +#: src/js/controllers/buyMercadoLibre.js:237 msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" msgstr "" @@ -3454,7 +3480,7 @@ msgstr "" 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)." msgstr "" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:381 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "" @@ -3462,11 +3488,11 @@ msgstr "" msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:211 +#: www/views/walletDetails.html:133 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "" #: www/views/copayers.html:46 -#: www/views/includes/walletInfo.html:13 +#: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" msgstr "" diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 2129e0352..d51d3b14d 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -335,11 +335,23 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.buttonText = gettextCatalog.getString(isCordova && !isWindowsPhoneApp ? 'Slide' : 'Click') + ' '; if (isPayPro) { - $scope.buttonText += gettextCatalog.getString('to pay'); + if (isCordova && !isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to pay'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to pay'); + } } else if (isMultisig) { - $scope.buttonText += gettextCatalog.getString('to accept'); + if (isCordova && !isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to accept'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to accept'); + } } else - $scope.buttonText += gettextCatalog.getString('to send'); + if (isCordova && !isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to send'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to send'); + } }; diff --git a/src/js/controllers/modals/txpDetails.js b/src/js/controllers/modals/txpDetails.js index a901871e8..281dc3f07 100644 --- a/src/js/controllers/modals/txpDetails.js +++ b/src/js/controllers/modals/txpDetails.js @@ -31,17 +31,23 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi }; function applyButtonText() { - $scope.buttonText = $scope.isCordova && !$scope.isWindowsPhoneApp ? gettextCatalog.getString('Slide') + ' ' : gettextCatalog.getString('Click') + ' '; - var lastSigner = lodash.filter($scope.tx.actions, { type: 'accept' }).length == $scope.tx.requiredSignatures - 1; if (lastSigner) { - $scope.buttonText += gettextCatalog.getString('to send'); + if ($scope.isCordova && !$scope.isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to send'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to send'); + } $scope.successText = gettextCatalog.getString('Payment Sent'); } else { - $scope.buttonText += gettextCatalog.getString('to accept'); + if ($scope.isCordova && !$scope.isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to accept'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to accept'); + } $scope.successText = gettextCatalog.getString('Payment Accepted'); } }; diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index 89aa08be8..58031d981 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -11,9 +11,9 @@ Support Bitcoin Cash -
- Enable Bitcoin Cash wallet creation and operation within the App. - Learn more +
+ Enable Bitcoin Cash wallet creation and operation within the App. + Learn more
diff --git a/www/views/preferences.html b/www/views/preferences.html index 783cb2eef..3ee68dc11 100644 --- a/www/views/preferences.html +++ b/www/views/preferences.html @@ -44,8 +44,8 @@
If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected. - Learn more + Learn more
Complete the backup process to use this option
diff --git a/www/views/tx-details.html b/www/views/tx-details.html index be97b37eb..7cbd72b29 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -91,9 +91,9 @@
- 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. Read more + 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. + Learn more
From ae92d91a3785352659c43bbb8941e5afd5628733 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Thu, 7 Sep 2017 16:49:37 -0300 Subject: [PATCH 084/157] fix freeze app after change fee level using send max --- src/js/controllers/confirm.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index d51d3b14d..3f0af2f66 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -287,7 +287,9 @@ angular.module('copayApp.controllers').controller('confirmController', function( tx.toAmount = tx.sendMaxInfo.amount; updateAmount(); ongoingProcess.set('calculatingFee', false); - showSendMaxWarning(wallet, sendMaxInfo); + $timeout(function() { + showSendMaxWarning(wallet, sendMaxInfo); + }, 200); } // txp already generated for this wallet? @@ -347,11 +349,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.buttonText = gettextCatalog.getString('Click to accept'); } } else - if (isCordova && !isWindowsPhoneApp) { - $scope.buttonText = gettextCatalog.getString('Slide to send'); - } else { - $scope.buttonText = gettextCatalog.getString('Click to send'); - } + if (isCordova && !isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to send'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to send'); + } }; From fbeb5eadc94629eac0deda1bd0b1b82957ae335b Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 7 Sep 2017 17:16:14 -0300 Subject: [PATCH 085/157] Removes duplicated variables. Fix syntax --- src/js/controllers/confirm.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 3f0af2f66..b85105a06 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -334,7 +334,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( } function setButtonText(isMultisig, isPayPro) { - $scope.buttonText = gettextCatalog.getString(isCordova && !isWindowsPhoneApp ? 'Slide' : 'Click') + ' '; if (isPayPro) { if (isCordova && !isWindowsPhoneApp) { @@ -348,11 +347,12 @@ angular.module('copayApp.controllers').controller('confirmController', function( } else { $scope.buttonText = gettextCatalog.getString('Click to accept'); } - } else - if (isCordova && !isWindowsPhoneApp) { - $scope.buttonText = gettextCatalog.getString('Slide to send'); } else { - $scope.buttonText = gettextCatalog.getString('Click to send'); + if (isCordova && !isWindowsPhoneApp) { + $scope.buttonText = gettextCatalog.getString('Slide to send'); + } else { + $scope.buttonText = gettextCatalog.getString('Click to send'); + } } }; From 823814817d38423bd73d468d93146e6c7efa857d Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 8 Sep 2017 16:55:04 -0300 Subject: [PATCH 086/157] Adds bitcoincash URL support --- app-template/config-template.xml | 1 + src/js/controllers/addressbookAdd.js | 2 +- src/js/controllers/customAmount.js | 8 +++- src/js/controllers/tab-receive.js | 4 +- src/js/services/incomingData.js | 55 +++++++++++++++++----------- src/js/services/openURL.js | 5 ++- www/views/customAmount.html | 2 +- www/views/tab-receive.html | 2 +- 8 files changed, 49 insertions(+), 30 deletions(-) diff --git a/app-template/config-template.xml b/app-template/config-template.xml index 86117d6d3..023aa88ec 100644 --- a/app-template/config-template.xml +++ b/app-template/config-template.xml @@ -66,6 +66,7 @@ + diff --git a/src/js/controllers/addressbookAdd.js b/src/js/controllers/addressbookAdd.js index 7cd72b2f7..92a5a4287 100644 --- a/src/js/controllers/addressbookAdd.js +++ b/src/js/controllers/addressbookAdd.js @@ -14,7 +14,7 @@ angular.module('copayApp.controllers').controller('addressbookAddController', fu $timeout(function() { var form = addressbookForm; if (data && form) { - data = data.replace('bitcoin:', ''); + data = data.replace(/^bitcoin[cash]*:/, ''); form.address.$setViewValue(data); form.address.$isValid = true; form.address.$render(); diff --git a/src/js/controllers/customAmount.js b/src/js/controllers/customAmount.js index a57ea8c3b..4d31f5ea6 100644 --- a/src/js/controllers/customAmount.js +++ b/src/js/controllers/customAmount.js @@ -63,12 +63,16 @@ angular.module('copayApp.controllers').controller('customAmountController', func $scope.shareAddress = function() { if (!platformInfo.isCordova) return; - var data = 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.wallet.coin; + var protocol = 'bitcoin'; + if ($scope.wallet.coin == 'bch') protocol += 'cash'; + var data = protocol + ':' + $scope.address + '?amount=' + $scope.amountBtc; window.plugins.socialsharing.share(data, null, null, null); } $scope.copyToClipboard = function() { - return 'bitcoin:' + $scope.address + '?amount=' + $scope.amountBtc + '&coin=' + $scope.wallet.coin; + var protocol = 'bitcoin'; + if ($scope.wallet.coin == 'bch') protocol += 'cash'; + return protocol + ':' + $scope.address + '?amount=' + $scope.amountBtc; }; }); diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 43785ab8b..97303c4ff 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -137,6 +137,8 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.shareAddress = function() { if (!$scope.isCordova) return; - window.plugins.socialsharing.share('bitcoin:' + $scope.addr, null, null, null); + var protocol = 'bitcoin'; + if ($scope.wallet.coin == 'bch') protocol += 'cash'; + window.plugins.socialsharing.share(protocol + ':' + $scope.addr, null, null, null); } }); diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 8e384b051..aa6a264ad 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -69,8 +69,8 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }, 100); } // data extensions for Payment Protocol with non-backwards-compatible request - if ((/^bitcoin:\?r=[\w+]/).exec(data)) { - data = decodeURIComponent(data.replace('bitcoin:?r=', '')); + if ((/^bitcoin[cash]*:\?r=[\w+]/).exec(data)) { + data = decodeURIComponent(data.replace(/bitcoin[cash]*:?r=/, '')); $state.go('tabs.send', {}, { 'reload': true, 'notify': $state.current.name == 'tabs.send' ? false : true @@ -84,27 +84,38 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat data = sanitizeUri(data); - // BIP21 - if (bitcore.URI.isValid(data)) { - var parsed = new bitcore.URI(data); - - var addr = parsed.address ? parsed.address.toString() : ''; - var message = parsed.message; - - var amount = parsed.amount ? parsed.amount : ''; - var coin = parsed.extras && parsed.extras.coin ? parsed.extras.coin : ''; - - if (parsed.r) { - payproService.getPayProDetails(parsed.r, function(err, details) { - if (err) { - if (addr && amount) goSend(addr, amount, message, coin); - else popupService.showAlert(gettextCatalog.getString('Error'), err); - } else handlePayPro(details); - }); - } else { - goSend(addr, amount, message, coin); + // Bitcoin or Bitcoin Cash URL + if ((/^bitcoin[cash]*:/).exec(data)) { + var coin = 'btc'; + if ((/^bitcoincash*:/).exec(data)) { + coin = 'bch'; + data = data.replace(/bitcoincash*:/, 'bitcoin:'); + } +console.log('[incomingData.js:93]', coin, data); //TODO/ + if (bitcore.URI.isValid(data)) { + var parsed = new bitcore.URI(data); + + var addr = parsed.address ? parsed.address.toString() : ''; + var message = parsed.message; + + var amount = parsed.amount ? parsed.amount : ''; + + if (parsed.r) { + payproService.getPayProDetails(parsed.r, function(err, details) { + if (err) { + if (addr && amount) goSend(addr, amount, message, coin); + else popupService.showAlert(gettextCatalog.getString('Error'), err); + } else handlePayPro(details); + }); + } else { + goSend(addr, amount, message, coin); + } + return true; + + } else { + $log.error('Invalid Bitcoin URL'); + return false; } - return true; // Plain URL } else if (/^https?:\/\//.test(data)) { diff --git a/src/js/services/openURL.js b/src/js/services/openURL.js index 29bdb248d..120070e5f 100644 --- a/src/js/services/openURL.js +++ b/src/js/services/openURL.js @@ -57,10 +57,10 @@ angular.module('copayApp.services').factory('openURLService', function($rootScop // This event is sent to an existent instance of Copay (only for standalone apps) gui.App.on('open', function(pathData) { - if (pathData.indexOf('bitcoin:') != -1) { + if (pathData.indexOf(/^bitcoin[cash]*:/) != -1) { $log.debug('Bitcoin URL found'); handleOpenURL({ - url: pathData.substring(pathData.indexOf('bitcoin:')) + url: pathData.substring(pathData.indexOf(/^bitcoin[cash]*:/)) }); } else if (pathData.indexOf(appConfigService.name + '://') != -1) { $log.debug(appConfigService.name + ' URL found'); @@ -84,6 +84,7 @@ angular.module('copayApp.services').factory('openURLService', function($rootScop if (navigator.registerProtocolHandler) { $log.debug('Registering Browser handlers base:' + base); navigator.registerProtocolHandler('bitcoin', url, 'Copay Bitcoin Handler'); + navigator.registerProtocolHandler('web+bitcoincash', url, 'Copay Bitcoin Cash Handler'); navigator.registerProtocolHandler('web+copay', url, 'Copay Wallet Handler'); navigator.registerProtocolHandler('web+bitpay', url, 'BitPay Wallet Handler'); } diff --git a/www/views/customAmount.html b/www/views/customAmount.html index c05c8d704..1c8bf647f 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -21,7 +21,7 @@
- +
diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index 95c35b8de..1e0b203e4 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -34,7 +34,7 @@ Show address - +
{{addr}} From e8145756a7d0172bcc8abdea2737bdda55f0b68c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 8 Sep 2017 17:03:51 -0300 Subject: [PATCH 087/157] Removes console log --- src/js/services/incomingData.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index aa6a264ad..817d42da4 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -91,7 +91,6 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat coin = 'bch'; data = data.replace(/bitcoincash*:/, 'bitcoin:'); } -console.log('[incomingData.js:93]', coin, data); //TODO/ if (bitcore.URI.isValid(data)) { var parsed = new bitcore.URI(data); From 0c67f02754ffe0a1c2a47b460a15b35471d1225a Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Sat, 9 Sep 2017 19:23:46 -0300 Subject: [PATCH 088/157] Fix regex --- src/js/controllers/addressbookAdd.js | 2 +- src/js/services/incomingData.js | 8 ++++---- src/js/services/openURL.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/js/controllers/addressbookAdd.js b/src/js/controllers/addressbookAdd.js index 92a5a4287..267acc154 100644 --- a/src/js/controllers/addressbookAdd.js +++ b/src/js/controllers/addressbookAdd.js @@ -14,7 +14,7 @@ angular.module('copayApp.controllers').controller('addressbookAddController', fu $timeout(function() { var form = addressbookForm; if (data && form) { - data = data.replace(/^bitcoin[cash]*:/, ''); + data = data.replace(/^bitcoin(cash)?:/, ''); form.address.$setViewValue(data); form.address.$isValid = true; form.address.$render(); diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 817d42da4..6afbef5d3 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -69,8 +69,8 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }, 100); } // data extensions for Payment Protocol with non-backwards-compatible request - if ((/^bitcoin[cash]*:\?r=[\w+]/).exec(data)) { - data = decodeURIComponent(data.replace(/bitcoin[cash]*:?r=/, '')); + if ((/^bitcoin(cash)?:\?r=[\w+]/).exec(data)) { + data = decodeURIComponent(data.replace(/bitcoin(cash)?:\?r=/, '')); $state.go('tabs.send', {}, { 'reload': true, 'notify': $state.current.name == 'tabs.send' ? false : true @@ -85,9 +85,9 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat data = sanitizeUri(data); // Bitcoin or Bitcoin Cash URL - if ((/^bitcoin[cash]*:/).exec(data)) { + if ((/^bitcoin(cash)?:/).exec(data)) { var coin = 'btc'; - if ((/^bitcoincash*:/).exec(data)) { + if ((/^bitcoincash:/).exec(data)) { coin = 'bch'; data = data.replace(/bitcoincash*:/, 'bitcoin:'); } diff --git a/src/js/services/openURL.js b/src/js/services/openURL.js index 120070e5f..b03f4b16a 100644 --- a/src/js/services/openURL.js +++ b/src/js/services/openURL.js @@ -57,10 +57,10 @@ angular.module('copayApp.services').factory('openURLService', function($rootScop // This event is sent to an existent instance of Copay (only for standalone apps) gui.App.on('open', function(pathData) { - if (pathData.indexOf(/^bitcoin[cash]*:/) != -1) { + if (pathData.indexOf(/^bitcoin(cash)?:/) != -1) { $log.debug('Bitcoin URL found'); handleOpenURL({ - url: pathData.substring(pathData.indexOf(/^bitcoin[cash]*:/)) + url: pathData.substring(pathData.indexOf(/^bitcoin(cash)?:/)) }); } else if (pathData.indexOf(appConfigService.name + '://') != -1) { $log.debug(appConfigService.name + ' URL found'); From 34fb28d389a05e96df27155b7ef031fc9224710f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Sat, 9 Sep 2017 19:25:22 -0300 Subject: [PATCH 089/157] Fix regex 2 --- 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 6afbef5d3..a805fac29 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -89,7 +89,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat var coin = 'btc'; if ((/^bitcoincash:/).exec(data)) { coin = 'bch'; - data = data.replace(/bitcoincash*:/, 'bitcoin:'); + data = data.replace(/bitcoincash:/, 'bitcoin:'); } if (bitcore.URI.isValid(data)) { var parsed = new bitcore.URI(data); From 779d21e9e9a15ab034df7efe871b670630ef91fa Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Sat, 9 Sep 2017 19:42:48 -0300 Subject: [PATCH 090/157] Get protocol handler from walletService --- src/js/controllers/customAmount.js | 6 ++++++ src/js/controllers/tab-receive.js | 5 +++++ src/js/services/walletService.js | 5 +++++ www/views/customAmount.html | 2 +- www/views/tab-receive.html | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/customAmount.js b/src/js/controllers/customAmount.js index 4d31f5ea6..a58f9767b 100644 --- a/src/js/controllers/customAmount.js +++ b/src/js/controllers/customAmount.js @@ -8,6 +8,10 @@ angular.module('copayApp.controllers').controller('customAmountController', func }); }; + var setProtocolHandler = function() { + $scope.protocolHandler = walletService.getProtocolHandler($scope.wallet); + } + $scope.$on("$ionicView.beforeEnter", function(event, data) { var walletId = data.stateParams.id; @@ -20,6 +24,8 @@ angular.module('copayApp.controllers').controller('customAmountController', func $scope.wallet = profileService.getWallet(walletId); + setProtocolHandler(); + walletService.getAddress($scope.wallet, false, function(err, addr) { if (!addr) { showErrorAndBack('Error', 'Could not get the address'); diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 97303c4ff..6677aa26d 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -124,8 +124,13 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi return wallet; } + var setProtocolHandler = function() { + $scope.protocolHandler = walletService.getProtocolHandler($scope.wallet); + } + $scope.onWalletSelect = function(wallet) { $scope.wallet = wallet; + setProtocolHandler(); $scope.setAddress(); }; diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 1e7eb6dc8..3768cecaa 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -1232,5 +1232,10 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }); }; + root.getProtocolHandler = function(wallet) { + if (wallet.coin== 'bch') return 'bitcoincash'; + else return 'bitcoin'; + } + return root; }); diff --git a/www/views/customAmount.html b/www/views/customAmount.html index 1c8bf647f..cd3d9da15 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -21,7 +21,7 @@
- +
diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index 1e0b203e4..5074da2c0 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -34,7 +34,7 @@ Show address - +
{{addr}} From fbda525e6d90af8274242c8ab32fe8373358c324 Mon Sep 17 00:00:00 2001 From: matiu Date: Fri, 8 Sep 2017 05:03:30 -0300 Subject: [PATCH 091/157] refactor config/list/scan --- src/js/controllers/advancedSettings.js | 16 ----- src/js/controllers/cash.js | 97 ++++++++++++++++++++++++++ src/js/controllers/preferencesCash.js | 31 ++++++++ src/js/controllers/tab-settings.js | 7 ++ src/js/routes.js | 10 +++ www/views/advancedSettings.html | 10 --- www/views/cashScan.html | 41 +++++++++++ www/views/preferencesCash.html | 27 +++++++ 8 files changed, 213 insertions(+), 26 deletions(-) create mode 100644 src/js/controllers/cash.js create mode 100644 src/js/controllers/preferencesCash.js create mode 100644 www/views/cashScan.html create mode 100644 www/views/preferencesCash.html diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index 94f9a2553..42de010fe 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -14,9 +14,6 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', $scope.hideNextSteps = { value: config.hideNextSteps.enabled }; - $scope.cashSupport = { - value: config.cashSupport.enabled - }; }; @@ -31,19 +28,6 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; - - $scope.cashSupportChange = function() { - var opts = { - cashSupport: { - enabled: $scope.cashSupport.value - } - }; - configService.set(opts, function(err) { - if (err) $log.debug(err); - }); - }; - - $scope.nextStepsChange = function() { var opts = { hideNextSteps: { diff --git a/src/js/controllers/cash.js b/src/js/controllers/cash.js new file mode 100644 index 000000000..f456360de --- /dev/null +++ b/src/js/controllers/cash.js @@ -0,0 +1,97 @@ + +'use strict'; + +angular.module('copayApp.controllers').controller('otherBalanceController', + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, platformInfo, storageService, bwcError ) { + var wallet; + var listeners = []; + var notifications = []; + $scope.isCordova = platformInfo.isCordova; + $scope.isAndroid = platformInfo.isAndroid; + $scope.isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP; + $scope.isNW = platformInfo.isNW; + + + $scope.$on("$ionicView.enter", function(event, data) { + updateAllWallets(); + }); + + var updateAllWallets = function() { + var wallets = profileService.getWallets({coin:'btc', onlyComplete:true, network: 'livenet' }); + + + // TODO ? + if (lodash.isEmpty(wallets)) return; +console.log('[otherBalance.js.24:wallets:]',wallets); //TODO + + + var walletsBCH = profileService.getWallets({coin:'bch', network: 'livenet' }); + var xPubKeyIndex = lodash.indexBy(walletsBCH,"credentials.xPubKey"); +console.log('[otherBalance.js.28:xPubKeyIndex:]',xPubKeyIndex); //TODO + + wallets= lodash.filter(wallets,function(w) { return xPubKeyIndex[w.credentials.xPubKey]; }); +console.log('[otherBalance.js.31:wallets:]',wallets); //TODO + + + // TODO Filterout already duplicated walelts + // TODO filterout balance=0 wallets + // + // + + $scope.wallets = wallets; + + var i = wallets.length; + var j = 0; + lodash.each(wallets, function(wallet) { + walletService.getBalance(wallet, {coin:'bch'}, function(err, status) { + if (err) { + + wallet.error = (err === 'WALLET_NOT_REGISTERED') ? gettextCatalog.getString('Wallet not registered') : bwcError.msg(err); + + $log.error(err); + return; + } +// + +console.log('[otherBalance.js.28:status:]',status); //TODO + wallet.error = null; + wallet.status = status; + if (++j == i) { + // + } + }); + }); + }; + + $scope.duplicate = function(wallet) { + $log.debug('Duplicating wallet for BCH:' + wallet.id + ':' + wallet.name); + + var opts = {}; + opts.name = wallet.name + '[BCH]'; + opts.m = wallet.m; + opts.n = wallet.n; + opts.myName = wallet.credentials.copayerName; + opts.networkName = wallet.network; + opts.coin = 'bch'; + + // TODO: finger print / decrypt + $log.warn('TODO finger print / decrypt'); + + + opts.walletPrivKey = wallet.credentials.walletPrivKey; + + walletService.getStatus(wallet, {}, function(err, status){ + if (err) { + // TODO + $log.err('TODO Err'); + return; + } + opts.singleAddress = status.wallet.singleAddress; + + // create and store a wallet + profileService.createWallet(opts, function(err) { + $state.go('tabs.home'); + }); + }); + } + }); diff --git a/src/js/controllers/preferencesCash.js b/src/js/controllers/preferencesCash.js new file mode 100644 index 000000000..e754e004d --- /dev/null +++ b/src/js/controllers/preferencesCash.js @@ -0,0 +1,31 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('preferencesCashController', function($scope, $log, $timeout, appConfigService, lodash, configService, platformInfo, pushNotificationsService, emailService) { + var updateConfig = function() { + var config = configService.getSync(); + $scope.appName = appConfigService.nameCase; + + $scope.cashSupport = { + value: config.wallet.cashSupport.enabled + }; + + $timeout(function() { + $scope.$apply(); + }); + }; + + $scope.cashSupportChange = function() { + var opts = { + wallet: { + cashSupport: $scope.cashSupport.value + } + }; + configService.set(opts, function(err) { + if (err) $log.debug(err); + }); + }; + + $scope.$on("$ionicView.enter", function(event, data) { + updateConfig(); + }); +}); diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js index f806b0f84..4c6f208a7 100644 --- a/src/js/controllers/tab-settings.js +++ b/src/js/controllers/tab-settings.js @@ -25,6 +25,11 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct }, 10); }); + $scope.cashSupport = { + value: config.cashSupport.enabled + }; + + // TODO move this to a generic service bitpayCardService.getCards(function(err, cards) { if (err) $log.error(err); @@ -62,6 +67,8 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct }); }); + + $scope.$on("$ionicView.enter", function(event, data) { updateConfig(); }); diff --git a/src/js/routes.js b/src/js/routes.js index 0fe72181d..36af61e8c 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -464,6 +464,16 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } } }) + .state('tabs.cash', { + url: '/cash', + views: { + 'tab-home@tabs': { + controller: 'cashController', + templateUrl: 'views/tab-cash.html' + } + } + }) + /* * diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html index 58031d981..253c35c8f 100644 --- a/www/views/advancedSettings.html +++ b/www/views/advancedSettings.html @@ -8,16 +8,6 @@
- - Support Bitcoin Cash - -
- Enable Bitcoin Cash wallet creation and operation within the App. - Learn more -
- - - Use Unconfirmed Funds diff --git a/www/views/cashScan.html b/www/views/cashScan.html new file mode 100644 index 000000000..3c0e47a89 --- /dev/null +++ b/www/views/cashScan.html @@ -0,0 +1,41 @@ + + + + Bitcoin Cash (BCH) Balances + + + + + + + +
+
+ BTC Wallets +
+
+
+ + + + + {{wallet.name || wallet.id}} + +

+ {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} + + + {{wallet.m}}-of-{{wallet.n}} + +   +

+ +
+
+
+ +
diff --git a/www/views/preferencesCash.html b/www/views/preferencesCash.html new file mode 100644 index 000000000..ba10d31f6 --- /dev/null +++ b/www/views/preferencesCash.html @@ -0,0 +1,27 @@ + + + {{'Bitcoin Cash Support' | translate}} + + + + + +
+ + Support Bitcoin Cash + + +
+ Enable Bitcoin Cash wallet creation and operation within the App. + Learn more +
+ + +
+ + + +
+
+
+
From acc1549633da94a9434e58325f6525ecb747a5dd Mon Sep 17 00:00:00 2001 From: matiu Date: Fri, 8 Sep 2017 16:37:26 -0300 Subject: [PATCH 092/157] add coin to preferences/info + refactor duplicate --- app-template/package-template.json | 4 +- src/js/controllers/advancedSettings.js | 10 --- src/js/controllers/cash.js | 97 -------------------- src/js/controllers/cashScan.js | 117 +++++++++++++++++++++++++ src/js/controllers/preferencesCash.js | 21 +++-- src/js/controllers/tab-settings.js | 2 +- src/js/routes.js | 54 ++++++++---- src/js/services/profileService.js | 7 +- www/views/cashScan.html | 4 +- www/views/preferencesCash.html | 18 ++-- www/views/preferencesInformation.html | 6 ++ www/views/tab-home.html | 4 + www/views/tab-settings.html | 14 +++ 13 files changed, 212 insertions(+), 146 deletions(-) delete mode 100644 src/js/controllers/cash.js create mode 100644 src/js/controllers/cashScan.js diff --git a/app-template/package-template.json b/app-template/package-template.json index cd74ad7e6..7f7dc5d84 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -56,7 +56,7 @@ "bezier-easing": "^2.0.3", "bhttp": "1.2.1", "bitauth": "^0.2.1", - "bitcore-wallet-client": "6.0.0", + "bitcore-wallet-client": "6.0.1", "bower": "^1.7.9", "cordova-android": "5.1.1", "cordova-custom-config": "^3.0.5", @@ -107,7 +107,7 @@ "run:android": "cordova run android --device", "run:android-release": "cordova run android --device --release", "log:android": "adb logcat | grep chromium", - "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../copay.keystore -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk copay_play && ../android-sdk-macosx/build-tools/25.0.3/zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", + "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../copay.keystore -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk copay_play && $ANDROID_HOME/build-tools/26.0.1/zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", "apply:copay": "npm i fs-extra && cd app-template && node apply.js copay && npm i && cordova prepare", "apply:bitpay": "npm i fs-extra && cd app-template && node apply.js bitpay && npm i && cordova prepare", "test": "echo \"no package tests configured\"", diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js index 42de010fe..cd5604395 100644 --- a/src/js/controllers/advancedSettings.js +++ b/src/js/controllers/advancedSettings.js @@ -50,16 +50,6 @@ angular.module('copayApp.controllers').controller('advancedSettingsController', }); }; - $scope.openBitcoinCashWeb = function() { - var url = 'https://www.bitcoincash.org/'; - var optIn = true; - var title = null; - var message = gettextCatalog.getString('Open bitcoincash.org?'); - var okText = gettextCatalog.getString('Open'); - var cancelText = gettextCatalog.getString('Go Back'); - externalLinkService.open(url, optIn, title, message, okText, cancelText); - }; - $scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP; updateConfig(); diff --git a/src/js/controllers/cash.js b/src/js/controllers/cash.js deleted file mode 100644 index f456360de..000000000 --- a/src/js/controllers/cash.js +++ /dev/null @@ -1,97 +0,0 @@ - -'use strict'; - -angular.module('copayApp.controllers').controller('otherBalanceController', - function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, platformInfo, storageService, bwcError ) { - var wallet; - var listeners = []; - var notifications = []; - $scope.isCordova = platformInfo.isCordova; - $scope.isAndroid = platformInfo.isAndroid; - $scope.isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP; - $scope.isNW = platformInfo.isNW; - - - $scope.$on("$ionicView.enter", function(event, data) { - updateAllWallets(); - }); - - var updateAllWallets = function() { - var wallets = profileService.getWallets({coin:'btc', onlyComplete:true, network: 'livenet' }); - - - // TODO ? - if (lodash.isEmpty(wallets)) return; -console.log('[otherBalance.js.24:wallets:]',wallets); //TODO - - - var walletsBCH = profileService.getWallets({coin:'bch', network: 'livenet' }); - var xPubKeyIndex = lodash.indexBy(walletsBCH,"credentials.xPubKey"); -console.log('[otherBalance.js.28:xPubKeyIndex:]',xPubKeyIndex); //TODO - - wallets= lodash.filter(wallets,function(w) { return xPubKeyIndex[w.credentials.xPubKey]; }); -console.log('[otherBalance.js.31:wallets:]',wallets); //TODO - - - // TODO Filterout already duplicated walelts - // TODO filterout balance=0 wallets - // - // - - $scope.wallets = wallets; - - var i = wallets.length; - var j = 0; - lodash.each(wallets, function(wallet) { - walletService.getBalance(wallet, {coin:'bch'}, function(err, status) { - if (err) { - - wallet.error = (err === 'WALLET_NOT_REGISTERED') ? gettextCatalog.getString('Wallet not registered') : bwcError.msg(err); - - $log.error(err); - return; - } -// - -console.log('[otherBalance.js.28:status:]',status); //TODO - wallet.error = null; - wallet.status = status; - if (++j == i) { - // - } - }); - }); - }; - - $scope.duplicate = function(wallet) { - $log.debug('Duplicating wallet for BCH:' + wallet.id + ':' + wallet.name); - - var opts = {}; - opts.name = wallet.name + '[BCH]'; - opts.m = wallet.m; - opts.n = wallet.n; - opts.myName = wallet.credentials.copayerName; - opts.networkName = wallet.network; - opts.coin = 'bch'; - - // TODO: finger print / decrypt - $log.warn('TODO finger print / decrypt'); - - - opts.walletPrivKey = wallet.credentials.walletPrivKey; - - walletService.getStatus(wallet, {}, function(err, status){ - if (err) { - // TODO - $log.err('TODO Err'); - return; - } - opts.singleAddress = status.wallet.singleAddress; - - // create and store a wallet - profileService.createWallet(opts, function(err) { - $state.go('tabs.home'); - }); - }); - } - }); diff --git a/src/js/controllers/cashScan.js b/src/js/controllers/cashScan.js new file mode 100644 index 000000000..311502aab --- /dev/null +++ b/src/js/controllers/cashScan.js @@ -0,0 +1,117 @@ + +'use strict'; + +angular.module('copayApp.controllers').controller('cashScanController', + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, txFormatService, bwcError, pushNotificationsService, bwcService) { + var wallet; + var errors = bwcService.getErrors(); + $scope.error = null; + + $scope.$on("$ionicView.enter", function(event, data) { + updateAllWallets(); + }); + + var updateAllWallets = function() { + var wallets = profileService.getWallets({coin:'btc', onlyComplete:true, network: 'livenet' }); + + + var kk = lodash.indexBy(wallets,"credentials.xPubKey"); + + + // TODO ? + if (lodash.isEmpty(wallets)) return; + + + var walletsBCH = profileService.getWallets({coin:'bch', network: 'livenet' }); + var xPubKeyIndex = lodash.indexBy(walletsBCH,"credentials.xPubKey"); + +// wallets= lodash.filter(wallets,function(w) { return !xPubKeyIndex[w.credentials.xPubKey]; }); + + $scope.wallets = wallets; + + var i = wallets.length; + var j = 0; + lodash.each(wallets, function(wallet) { + walletService.getBalance(wallet, {coin:'bch'}, function(err, balance) { + if (err) { + + wallet.error = (err === 'WALLET_NOT_REGISTERED') ? gettextCatalog.getString('Wallet not registered') : bwcError.msg(err); + + $log.error(err); + return; + } +// + +console.log('[otherBalance.js.28:balance:]',balance); //TODO + wallet.error = null; + wallet.bchBalance = txFormatService.formatAmountStr('bch', balance.availableAmount); + if (++j == i) { + + //Done + $timeout(function() { + $rootScope.$apply(); + }, 10); + + } + }); + }); + }; + + $scope.duplicate = function(wallet) { + $scope.error = null; + $log.debug('Duplicating wallet for BCH:' + wallet.id + ':' + wallet.name); + + var opts = {}; + opts.name = wallet.name + '[BCH]'; + opts.m = wallet.m; + opts.n = wallet.n; + opts.myName = wallet.credentials.copayerName; + opts.networkName = wallet.network; + opts.coin = 'bch'; + + // TODO: finger print / decrypt + $log.warn('TODO finger print / decrypt'); + opts.extendedPrivateKey = wallet.credentials.xPrivKey; + + function setErr(err, cb) { + $scope.error = bwcError.cb(err, gettextCatalog.getString('Could not duplicate'), function() { + return cb(err); + }); + $timeout(function() { + $rootScope.$apply(); + }, 10); + } + + function importOrCreate(cb) { + walletService.getStatus(wallet, {}, function(err, status){ + if (err) return cb(err); + + opts.singleAddress = status.wallet.singleAddress; + + // first try to import + profileService.importExtendedPrivateKey(opts.extendedPrivateKey, opts, function(err, client) { + if (err && !(err instanceof errors.NOT_AUTHORIZED) ) { + return setErr(err, cb); + } + if (err) { + // create and store a wallet + return profileService.createWallet(opts, function(err, client) { + if (err) return setErr(err, cb); + return cb(null, client, true); + }); + } + return cb(null, client); + }); + }); + }; + + + importOrCreate(function(err, client, isNew) { + if (err) return; + walletService.updateRemotePreferences(client); + pushNotificationsService.updateSubscription(client); + walletService.startScan(wallet, function() { }); + $state.go('tabs.home'); + }); + } + }); diff --git a/src/js/controllers/preferencesCash.js b/src/js/controllers/preferencesCash.js index e754e004d..e720d7735 100644 --- a/src/js/controllers/preferencesCash.js +++ b/src/js/controllers/preferencesCash.js @@ -1,12 +1,13 @@ 'use strict'; -angular.module('copayApp.controllers').controller('preferencesCashController', function($scope, $log, $timeout, appConfigService, lodash, configService, platformInfo, pushNotificationsService, emailService) { +angular.module('copayApp.controllers').controller('preferencesCashController', function($scope, $log, $timeout, appConfigService, lodash, configService, gettextCatalog, externalLinkService) { var updateConfig = function() { + var config = configService.getSync(); $scope.appName = appConfigService.nameCase; $scope.cashSupport = { - value: config.wallet.cashSupport.enabled + value: config.cashSupport }; $timeout(function() { @@ -16,15 +17,25 @@ angular.module('copayApp.controllers').controller('preferencesCashController', f $scope.cashSupportChange = function() { var opts = { - wallet: { - cashSupport: $scope.cashSupport.value - } + cashSupport: $scope.cashSupport.value }; configService.set(opts, function(err) { if (err) $log.debug(err); }); }; + + $scope.openBitcoinCashWeb = function() { + var url = 'https://www.bitcoincash.org/'; + var optIn = true; + var title = null; + var message = gettextCatalog.getString('Open bitcoincash.org?'); + var okText = gettextCatalog.getString('Open'); + var cancelText = gettextCatalog.getString('Go Back'); + externalLinkService.open(url, optIn, title, message, okText, cancelText); + }; + + $scope.$on("$ionicView.enter", function(event, data) { updateConfig(); }); diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js index 4c6f208a7..75cce161b 100644 --- a/src/js/controllers/tab-settings.js +++ b/src/js/controllers/tab-settings.js @@ -26,7 +26,7 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct }); $scope.cashSupport = { - value: config.cashSupport.enabled + value: config.cashSupport }; diff --git a/src/js/routes.js b/src/js/routes.js index 36af61e8c..ed62372e3 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -244,15 +244,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } } }) - .state('tabs.scan', { - url: '/scan', - views: { - 'tab-scan': { - controller: 'tabScanController', - templateUrl: 'views/tab-scan.html', - } - } - }) .state('scanner', { url: '/scanner', params: { @@ -374,6 +365,16 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr * */ + .state('tabs.preferencesCash', { + url: '/preferencesCash', + views: { + 'tab-settings@tabs': { + controller: 'preferencesCashController', + templateUrl: 'views/preferencesCash.html' + } + } + }) + .state('tabs.notifications', { url: '/notifications', views: { @@ -464,16 +465,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } } }) - .state('tabs.cash', { - url: '/cash', - views: { - 'tab-home@tabs': { - controller: 'cashController', - templateUrl: 'views/tab-cash.html' - } - } - }) - + /* * @@ -590,6 +582,30 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) + .state('tabs.preferencesCash.scan', { + url: '/cashScan', + views: { + 'tab-settings@tabs': { + controller: 'cashScanController', + templateUrl: 'views/cashScan.html' + } + } + }) + + + // TODO remove + .state('tabs.scan', { + url: '/cashScan2', + views: { + 'tab-home@tabs': { + controller: 'cashScanController', + templateUrl: 'views/cashScan.html' + } + } + }) + + + /* * * Addressbook diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 36a7d938e..d944eca43 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -339,7 +339,12 @@ angular.module('copayApp.services') } } else if (opts.extendedPrivateKey) { try { - walletClient.seedFromExtendedPrivateKey(opts.extendedPrivateKey); + walletClient.seedFromExtendedPrivateKey(opts.extendedPrivateKey, { + network: network, + account: opts.account || 0, + derivationStrategy: opts.derivationStrategy || 'BIP44', + coin: opts.coin, + }); } catch (ex) { $log.warn(ex); return cb(gettextCatalog.getString('Could not create using the specified extended private key')); diff --git a/www/views/cashScan.html b/www/views/cashScan.html index 3c0e47a89..1d8c0a9af 100644 --- a/www/views/cashScan.html +++ b/www/views/cashScan.html @@ -13,6 +13,8 @@
BTC Wallets
+ + {{wallet.error}}

- {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} + {{wallet.bchBalance || 'Checking...'}} {{wallet.m}}-of-{{wallet.n}} diff --git a/www/views/preferencesCash.html b/www/views/preferencesCash.html index ba10d31f6..bc18563aa 100644 --- a/www/views/preferencesCash.html +++ b/www/views/preferencesCash.html @@ -10,18 +10,16 @@ Support Bitcoin Cash +

-
- Enable Bitcoin Cash wallet creation and operation within the App. - Learn more -
- - -
- - - +
+
+ Enable Bitcoin Cash wallet creation and operation within the App. + Learn more
+ diff --git a/www/views/preferencesInformation.html b/www/views/preferencesInformation.html index 728edb40b..4fe0012f2 100644 --- a/www/views/preferencesInformation.html +++ b/www/views/preferencesInformation.html @@ -13,6 +13,12 @@ {{walletName}}
+
+ Coin + + {{wallet.coin}} + +
Wallet Id diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 1a30620da..6ac7c2bca 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -11,6 +11,10 @@ on-refresh="onRefresh()"> +TODO Remove: + Scan your wallets for Bitcoin Cash + +
diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index f5768dfd2..395c79891 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -39,6 +39,20 @@
{{'Preferences' | translate}}
+ + + + + {{'Bitcoin Cash Support' | translate}} + + Enabled + Disabled + + + + + + From 7349e8237a7316670d123f55757814a7502d3fdf Mon Sep 17 00:00:00 2001 From: matiu Date: Sat, 9 Sep 2017 21:14:27 -0300 Subject: [PATCH 093/157] refactor duplicate --- app-template/package-template.json | 2 +- src/js/controllers/cashScan.js | 131 ++++++++++++++++++++--------- src/js/controllers/tab-home.js | 2 + src/js/services/onGoingProcess.js | 3 +- src/js/services/profileService.js | 1 - src/js/services/walletService.js | 40 ++++++++- www/views/cashScan.html | 23 +++-- www/views/tab-home.html | 5 +- 8 files changed, 152 insertions(+), 55 deletions(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index 7f7dc5d84..22e23c632 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -56,7 +56,7 @@ "bezier-easing": "^2.0.3", "bhttp": "1.2.1", "bitauth": "^0.2.1", - "bitcore-wallet-client": "6.0.1", + "bitcore-wallet-client": "6.1.0", "bower": "^1.7.9", "cordova-android": "5.1.1", "cordova-custom-config": "^3.0.5", diff --git a/src/js/controllers/cashScan.js b/src/js/controllers/cashScan.js index 311502aab..4bc429e07 100644 --- a/src/js/controllers/cashScan.js +++ b/src/js/controllers/cashScan.js @@ -1,48 +1,62 @@ - 'use strict'; angular.module('copayApp.controllers').controller('cashScanController', - function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, txFormatService, bwcError, pushNotificationsService, bwcService) { + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, txFormatService, bwcError, pushNotificationsService, bwcService) { var wallet; var errors = bwcService.getErrors(); - $scope.error = null; + $scope.error = null; $scope.$on("$ionicView.enter", function(event, data) { updateAllWallets(); }); var updateAllWallets = function() { - var wallets = profileService.getWallets({coin:'btc', onlyComplete:true, network: 'livenet' }); + var wallets1 = profileService.getWallets({ + coin: 'btc', + onlyComplete: true, + network: 'livenet' + }); + + if (lodash.isEmpty(wallets1)) { + $state.go('tabs.home'); + return; + } + + // Filter out already duplicated wallets + var walletsBCH = profileService.getWallets({ + coin: 'bch', + network: 'livenet' + }); + var xPubKeyIndex = lodash.indexBy(walletsBCH, "credentials.xPubKey"); + + wallets1 = lodash.filter(wallets1, function(w) { + return !xPubKeyIndex[w.credentials.xPubKey]; + }); - var kk = lodash.indexBy(wallets,"credentials.xPubKey"); - - - // TODO ? - if (lodash.isEmpty(wallets)) return; - - - var walletsBCH = profileService.getWallets({coin:'bch', network: 'livenet' }); - var xPubKeyIndex = lodash.indexBy(walletsBCH,"credentials.xPubKey"); - -// wallets= lodash.filter(wallets,function(w) { return !xPubKeyIndex[w.credentials.xPubKey]; }); + // Filter out non BIP44 wallets + var wallets = lodash.filter(wallets1, function(w) { + return w.credentials.derivationStrategy == 'BIP44' + }); $scope.wallets = wallets; + $scope.nonBIP44 = wallets1.length != wallets.length; var i = wallets.length; var j = 0; lodash.each(wallets, function(wallet) { - walletService.getBalance(wallet, {coin:'bch'}, function(err, balance) { + walletService.getBalance(wallet, { + coin: 'bch' + }, function(err, balance) { if (err) { wallet.error = (err === 'WALLET_NOT_REGISTERED') ? gettextCatalog.getString('Wallet not registered') : bwcError.msg(err); $log.error(err); return; - } -// + } + // -console.log('[otherBalance.js.28:balance:]',balance); //TODO wallet.error = null; wallet.bchBalance = txFormatService.formatAmountStr('bch', balance.availableAmount); if (++j == i) { @@ -58,24 +72,26 @@ console.log('[otherBalance.js.28:balance:]',balance); //TODO }; $scope.duplicate = function(wallet) { - $scope.error = null; - $log.debug('Duplicating wallet for BCH:' + wallet.id + ':' + wallet.name); + $scope.error = null; + $log.debug('Duplicating wallet for BCH:' + wallet.id + ':' + wallet.name); var opts = {}; opts.name = wallet.name + '[BCH]'; opts.m = wallet.m; opts.n = wallet.n; - opts.myName = wallet.credentials.copayerName; + opts.myName = wallet.credentials.copayerName; opts.networkName = wallet.network; opts.coin = 'bch'; + opts.walletPrivKey = wallet.credentials.walletPrivKey; + opts.compliantDerivation = wallet.credentials.compliantDerivation; - // TODO: finger print / decrypt - $log.warn('TODO finger print / decrypt'); - opts.extendedPrivateKey = wallet.credentials.xPrivKey; function setErr(err, cb) { - $scope.error = bwcError.cb(err, gettextCatalog.getString('Could not duplicate'), function() { - return cb(err); + + if (!cb) cb = function() {}; + + $scope.error = bwcError.cb(err, gettextCatalog.getString('Could not duplicate'), function() { + return cb(err); }); $timeout(function() { $rootScope.$apply(); @@ -83,35 +99,70 @@ console.log('[otherBalance.js.28:balance:]',balance); //TODO } function importOrCreate(cb) { - walletService.getStatus(wallet, {}, function(err, status){ + walletService.getStatus(wallet, {}, function(err, status) { if (err) return cb(err); - opts.singleAddress = status.wallet.singleAddress; + opts.singleAddress = status.wallet.singleAddress; // first try to import - profileService.importExtendedPrivateKey(opts.extendedPrivateKey, opts, function(err, client) { - if (err && !(err instanceof errors.NOT_AUTHORIZED) ) { + profileService.importExtendedPrivateKey(opts.extendedPrivateKey, opts, function(err, newWallet) { + if (err && !(err instanceof errors.NOT_AUTHORIZED)) { return setErr(err, cb); } if (err) { // create and store a wallet - return profileService.createWallet(opts, function(err, client) { + return profileService.createWallet(opts, function(err, newWallet) { if (err) return setErr(err, cb); - return cb(null, client, true); + return cb(null, newWallet, true); }); } - return cb(null, client); + return cb(null, newWallet); }); }); }; + // Multisig wallets? add Copayers + function addCopayers(newWallet, isNew, cb) { + if (!isNew) return cb(); + if (wallet.n == 1) return cb(); - importOrCreate(function(err, client, isNew) { - if (err) return; - walletService.updateRemotePreferences(client); - pushNotificationsService.updateSubscription(client); - walletService.startScan(wallet, function() { }); - $state.go('tabs.home'); + $log.info('Adding copayers for BCH wallet config:' + wallet.m + '-' + wallet.n); + + walletService.copyCopayers(wallet, newWallet, function(err) { + if (err) return setErr(err, cb); + + return cb(); + }); + }; + + walletService.getKeys(wallet,function(err,keys) { + if (err) { + $scope.error = err; + return $timeout(function() { + $rootScope.$apply(); + }, 10); + } + opts.extendedPrivateKey = keys.xPrivKey; + ongoingProcess.set('duplicatingWallet', true); + importOrCreate(function(err, newWallet, isNew) { + if (err) { + ongoingProcess.set('duplicatingWallet', false); + return; + } + walletService.updateRemotePreferences(newWallet); + pushNotificationsService.updateSubscription(newWallet); + + addCopayers(newWallet, isNew, function(err) { + ongoingProcess.set('duplicatingWallet', false); + if (err) + return setErr(err); + + if (isNew) + walletService.startScan(newWallet, function() {}); + + $state.go('tabs.home'); + }); + }); }); } }); diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 79be14391..a3a614e21 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -224,6 +224,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', wallet.error = null; wallet.status = status; + wallet.updating = status && status.wallet && status.wallet.scanStatus == 'running'; // TODO service refactor? not in profile service profileService.setLastKnownBalance(wallet.id, wallet.status.totalBalanceStr, function() {}); } @@ -242,6 +243,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', return; } wallet.status = status; + wallet.updating = status && status.wallet && status.wallet.scanStatus == 'running'; updateTxps(); }); }; diff --git a/src/js/services/onGoingProcess.js b/src/js/services/onGoingProcess.js index e0f82fc40..94d746202 100644 --- a/src/js/services/onGoingProcess.js +++ b/src/js/services/onGoingProcess.js @@ -45,7 +45,8 @@ angular.module('copayApp.services').factory('ongoingProcess', function($log, $ti 'cancelingGiftCard': 'Canceling Gift Card...', 'creatingGiftCard': 'Creating Gift Card...', 'buyingGiftCard': 'Buying Gift Card...', - 'topup': gettext('Top up in progress...') + 'topup': gettext('Top up in progress...'), + 'duplicatingWallet': gettext('Duplicating wallet...'), }; root.clear = function() { diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index d944eca43..f93fc03a8 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -386,7 +386,6 @@ angular.module('copayApp.services') } } } - return cb(null, walletClient); }; // Creates a wallet on BWC/BWS diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 3768cecaa..b456fae61 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -259,6 +259,8 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }; function cacheStatus(status) { + if (status.wallet && status.wallet.scanStatus == 'running') return; + wallet.cachedStatus = status ||  {}; var cache = wallet.cachedStatus; cache.statusUpdatedOn = Date.now(); @@ -931,15 +933,17 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim // Approx utxo amount, from which the uxto is economically redeemable root.getLowAmount = function(wallet, feeLevels, nbOutputs) { - var minFee = root.getMinFee(wallet,feeLevels, nbOutputs); - return parseInt( minFee / LOW_AMOUNT_RATIO); + var minFee = root.getMinFee(wallet, feeLevels, nbOutputs); + return parseInt(minFee / LOW_AMOUNT_RATIO); }; root.getLowUtxos = function(wallet, levels, cb) { - wallet.getUtxos({coin: wallet.coin}, function(err, resp) { + wallet.getUtxos({ + coin: wallet.coin + }, function(err, resp) { if (err || !resp || !resp.length) return cb(); var minFee = root.getMinFee(wallet, levels, resp.length); @@ -955,7 +959,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim var totalLow = lodash.sum(lowUtxos, 'satoshis'); return cb(err, { - allUtxos: resp || [], + allUtxos: resp || [], lowUtxos: lowUtxos || [], warning: minFee / balance > TOTAL_LOW_WARNING_RATIO, minFee: minFee, @@ -1237,5 +1241,33 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim else return 'bitcoin'; } + + root.copyCopayers = function(wallet, newWallet, cb) { + var c = wallet.credentials; + + var walletPrivKey = bitcore.PrivateKey.fromString(c.walletPrivKey); + + var copayer = 1, + i = 0, + l = c.publicKeyRing.length; + var mainErr = null; + + lodash.each(c.publicKeyRing, function(item) { + var name = item.copayerName || ('copayer ' + copayer++); + newWallet._doJoinWallet(newWallet.credentials.walletId, walletPrivKey, item.xPubKey, item.requestPubKey, name, { + coin: newWallet.credentials.coin, + }, function(err) { + //Ignore error is copayer already in wallet + if (err && !(err instanceof errors.COPAYER_IN_WALLET)) { + mainErr = err; + } + + if (++i == l) { + return cb(mainErr); + } + }); + }); + }; + return root; }); diff --git a/www/views/cashScan.html b/www/views/cashScan.html index 1d8c0a9af..602154605 100644 --- a/www/views/cashScan.html +++ b/www/views/cashScan.html @@ -14,10 +14,17 @@ BTC Wallets
- {{wallet.error}} +
+ {{error}} +
+ +
+ Some of you wallets are not elegible for Bitcon Cash support because there where created before Copay v1.2. Please use our recovery tool to access your Bitcoin Cash balance for those wallets +
+
@@ -26,16 +33,20 @@ {{wallet.name || wallet.id}}

- {{wallet.bchBalance || 'Checking...'}} + {{wallet.bchBalance || 'Checking...'}} {{wallet.m}}-of-{{wallet.n}}  

- + + +
+ +
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 6ac7c2bca..da3764c50 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -95,9 +95,10 @@ TODO Remove: Incomplete - {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} + {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} + Scanning for funds... - [Balance Hidden] + [Balance Hidden] {{wallet.m}}-of-{{wallet.n}} From f224f6112d9069799d5c4a651085731e682d8ab6 Mon Sep 17 00:00:00 2001 From: matiu Date: Sat, 9 Sep 2017 21:17:46 -0300 Subject: [PATCH 094/157] rm home link --- src/js/routes.js | 14 -------------- www/views/cashScan.html | 8 ++++++++ www/views/tab-home.html | 4 ---- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/js/routes.js b/src/js/routes.js index ed62372e3..67d78bbde 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -592,20 +592,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) - - // TODO remove - .state('tabs.scan', { - url: '/cashScan2', - views: { - 'tab-home@tabs': { - controller: 'cashScanController', - templateUrl: 'views/cashScan.html' - } - } - }) - - - /* * * Addressbook diff --git a/www/views/cashScan.html b/www/views/cashScan.html index 602154605..40621ee2b 100644 --- a/www/views/cashScan.html +++ b/www/views/cashScan.html @@ -14,6 +14,13 @@ BTC Wallets
+ +
+ No wallets elegible for Bitcoin Cash support +
+ + +
{{error}}
@@ -23,6 +30,7 @@
+
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index da3764c50..9300a598e 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -11,10 +11,6 @@ on-refresh="onRefresh()"> -TODO Remove: - Scan your wallets for Bitcoin Cash - -
From 7653d1b6ab1e10f3a6b84a441a01120fc1a9237b Mon Sep 17 00:00:00 2001 From: matiu Date: Mon, 11 Sep 2017 11:45:19 -0300 Subject: [PATCH 095/157] fix create --- src/js/services/profileService.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index f93fc03a8..109fee8b2 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -322,6 +322,7 @@ angular.module('copayApp.services') var walletClient = bwcService.getClient(null, opts); var network = opts.networkName || 'livenet'; +console.log('[profileService.js.324]'); //TODO if (opts.mnemonic) { try { opts.mnemonic = root._normalizeMnemonic(opts.mnemonic); @@ -386,6 +387,7 @@ angular.module('copayApp.services') } } } + return cb(null, walletClient); }; // Creates a wallet on BWC/BWS @@ -393,6 +395,7 @@ angular.module('copayApp.services') $log.debug('Creating Wallet:', opts); $timeout(function() { seedWallet(opts, function(err, walletClient) { +console.log('[profileService.js.395:walletClient:]',walletClient); //TODO if (err) return cb(err); var name = opts.name || gettextCatalog.getString('Personal Wallet'); @@ -404,6 +407,7 @@ angular.module('copayApp.services') walletPrivKey: opts.walletPrivKey, coin: opts.coin }, function(err, secret) { +console.log('[profileService.js.407:err:]',err); //TODO if (err) return bwcError.cb(err, gettextCatalog.getString('Error creating wallet'), cb); return cb(null, walletClient, secret); }); From eba074fd63fa51b16b253614bd5e1569e62b48ed Mon Sep 17 00:00:00 2001 From: JDonadio Date: Mon, 11 Sep 2017 14:50:14 -0300 Subject: [PATCH 096/157] ref style --- src/js/controllers/cashScan.js | 23 ++++----- src/js/controllers/preferencesCash.js | 4 +- src/sass/views/cashScan.scss | 39 +++++++++++++++ src/sass/views/views.scss | 1 + www/views/cashScan.html | 68 +++++++++++++-------------- www/views/preferencesCash.html | 2 +- 6 files changed, 86 insertions(+), 51 deletions(-) create mode 100644 src/sass/views/cashScan.scss diff --git a/src/js/controllers/cashScan.js b/src/js/controllers/cashScan.js index 4bc429e07..7f60192e3 100644 --- a/src/js/controllers/cashScan.js +++ b/src/js/controllers/cashScan.js @@ -5,19 +5,20 @@ angular.module('copayApp.controllers').controller('cashScanController', var wallet; var errors = bwcService.getErrors(); $scope.error = null; + $scope.walletDisabled = '#667'; - $scope.$on("$ionicView.enter", function(event, data) { + $scope.$on("$ionicView.beforeEnter", function(event, data) { updateAllWallets(); }); var updateAllWallets = function() { - var wallets1 = profileService.getWallets({ + var walletsBTC = profileService.getWallets({ coin: 'btc', onlyComplete: true, network: 'livenet' }); - if (lodash.isEmpty(wallets1)) { + if (lodash.isEmpty(walletsBTC)) { $state.go('tabs.home'); return; } @@ -29,18 +30,19 @@ angular.module('copayApp.controllers').controller('cashScanController', }); var xPubKeyIndex = lodash.indexBy(walletsBCH, "credentials.xPubKey"); - wallets1 = lodash.filter(wallets1, function(w) { + walletsBTC = lodash.filter(walletsBTC, function(w) { return !xPubKeyIndex[w.credentials.xPubKey]; }); - // Filter out non BIP44 wallets - var wallets = lodash.filter(wallets1, function(w) { + var wallets = lodash.filter(walletsBTC, function(w) { return w.credentials.derivationStrategy == 'BIP44' }); $scope.wallets = wallets; - $scope.nonBIP44 = wallets1.length != wallets.length; + $scope.nonBIP44Wallets = lodash.filter(walletsBTC, function(w) { + return w.credentials.derivationStrategy != 'BIP44'; + }); var i = wallets.length; var j = 0; @@ -49,23 +51,18 @@ angular.module('copayApp.controllers').controller('cashScanController', coin: 'bch' }, function(err, balance) { if (err) { - wallet.error = (err === 'WALLET_NOT_REGISTERED') ? gettextCatalog.getString('Wallet not registered') : bwcError.msg(err); - $log.error(err); return; } - // wallet.error = null; wallet.bchBalance = txFormatService.formatAmountStr('bch', balance.availableAmount); if (++j == i) { - //Done $timeout(function() { $rootScope.$apply(); }, 10); - } }); }); @@ -135,7 +132,7 @@ angular.module('copayApp.controllers').controller('cashScanController', }); }; - walletService.getKeys(wallet,function(err,keys) { + walletService.getKeys(wallet, function(err, keys) { if (err) { $scope.error = err; return $timeout(function() { diff --git a/src/js/controllers/preferencesCash.js b/src/js/controllers/preferencesCash.js index e720d7735..eb81e0394 100644 --- a/src/js/controllers/preferencesCash.js +++ b/src/js/controllers/preferencesCash.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('preferencesCashController', function($scope, $log, $timeout, appConfigService, lodash, configService, gettextCatalog, externalLinkService) { +angular.module('copayApp.controllers').controller('preferencesCashController', function($scope, $log, $timeout, appConfigService, configService, gettextCatalog, externalLinkService) { var updateConfig = function() { var config = configService.getSync(); @@ -36,7 +36,7 @@ angular.module('copayApp.controllers').controller('preferencesCashController', f }; - $scope.$on("$ionicView.enter", function(event, data) { + $scope.$on("$ionicView.beforeEnter", function(event, data) { updateConfig(); }); }); diff --git a/src/sass/views/cashScan.scss b/src/sass/views/cashScan.scss new file mode 100644 index 000000000..5ae76ef53 --- /dev/null +++ b/src/sass/views/cashScan.scss @@ -0,0 +1,39 @@ +#cash-scan { + .comment { + color: #667; + font-size: 0.9em; + } + + .item { + color: $v-dark-gray; + padding-top: 1.3rem; + padding-bottom: 1.3rem; + } + + .heading { + font-size: 17px; + color: $v-dark-gray; + margin: 1rem 0; + padding-top: 5px; + padding-bottom: 5px; + border: none; + } + + .text-disabled { + color: $v-light-gray; + } + + .supported { + display: flex; + + .wallet-content { + padding-left: 7px; + } + } + + .duplicate-button { + position: absolute; + right: 15px; + padding-top: .5rem; + } +} diff --git a/src/sass/views/views.scss b/src/sass/views/views.scss index 722c97e1d..37754970f 100644 --- a/src/sass/views/views.scss +++ b/src/sass/views/views.scss @@ -50,3 +50,4 @@ @import "includes/pin"; @import "includes/logOptions"; @import "includes/checkBar"; +@import "cashScan"; diff --git a/www/views/cashScan.html b/www/views/cashScan.html index 40621ee2b..2e62297ba 100644 --- a/www/views/cashScan.html +++ b/www/views/cashScan.html @@ -1,4 +1,4 @@ - + Bitcoin Cash (BCH) Balances @@ -10,51 +10,49 @@
-
+
+ No wallets eligible for Bitcoin Cash support +
+ +
+ {{error}} +
+ +
BTC Wallets
+
+ + + +
+
{{wallet.name || wallet.id}}
+
{{wallet.bchBalance || ('Checking...' | translate)}}
+
{{wallet.m}}-of-{{wallet.n}}
+
-
- No wallets elegible for Bitcoin Cash support +
+ +
+
+
+
+ Non eligible BTC wallets +
-
- {{error}} -
- -
- Some of you wallets are not elegible for Bitcon Cash support because there where created before Copay v1.2. Please use our recovery tool to access your Bitcoin Cash balance for those wallets -
- -
- -
+
- + - - {{wallet.name || wallet.id}} - -

+ {{wallet.name || wallet.id}} +

- {{wallet.bchBalance || 'Checking...'}} - - {{wallet.m}}-of-{{wallet.n}} - -   -

- - -
- -
+
+ Some of you wallets are not eligible for Bitcon Cash support because there where created before Copay v1.2. Please use our recovery tool to access your Bitcoin Cash balance for those wallets
diff --git a/www/views/preferencesCash.html b/www/views/preferencesCash.html index bc18563aa..b03acec3c 100644 --- a/www/views/preferencesCash.html +++ b/www/views/preferencesCash.html @@ -15,7 +15,7 @@
Enable Bitcoin Cash wallet creation and operation within the App. - Learn more + Learn more
From 8c3397e698359e5a58ce27c5da2977809016e95d Mon Sep 17 00:00:00 2001 From: matiu Date: Thu, 14 Sep 2017 12:27:45 -0300 Subject: [PATCH 097/157] fix for new addresses in send --- angular-bitcore-wallet-client/index.js | 4 ++++ src/js/controllers/confirm.js | 6 ++++-- src/js/controllers/create.js | 2 +- src/js/services/bitcoreCash.js | 6 ++++++ src/js/services/incomingData.js | 17 ++++++++++++++--- 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 src/js/services/bitcoreCash.js diff --git a/angular-bitcore-wallet-client/index.js b/angular-bitcore-wallet-client/index.js index 0765b6df0..84d851ce0 100644 --- a/angular-bitcore-wallet-client/index.js +++ b/angular-bitcore-wallet-client/index.js @@ -13,6 +13,10 @@ bwcModule.provider("bwcService", function() { return Client.Bitcore; }; + service.getBitcoreCash = function() { + return Client.BitcoreCash; + }; + service.getErrors = function() { return Client.errors; }; diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index b85105a06..174531476 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, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { +angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, bitcoreCash, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { var countDown = null; var CONFIRM_LIMIT_USD = 20; @@ -120,6 +120,8 @@ angular.module('copayApp.controllers').controller('confirmController', function( }; // Setup $scope + // + var B = data.stateParams.coin == 'bch' ? bitcoreCash : bitcore; // Grab stateParams tx = { @@ -137,7 +139,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toName: data.stateParams.toName, toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, - network: (new bitcore.Address(data.stateParams.toAddress)).network.name, + network: (new B.Address(data.stateParams.toAddress)).network.name, coin: data.stateParams.coin, txp: {}, }; diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index 6bb2bd78a..d47dba87f 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -30,7 +30,7 @@ angular.module('copayApp.controllers').controller('createController', $scope.formData.derivationPath = derivationPathHelper.default; $scope.formData.coin = 'btc'; - if (config.cashSupport.enabled) $scope.enableCash = true; + if (config.cashSupport) $scope.enableCash = true; $scope.setTotalCopayers(tc); updateRCSelect(tc); diff --git a/src/js/services/bitcoreCash.js b/src/js/services/bitcoreCash.js new file mode 100644 index 000000000..484c2a6e9 --- /dev/null +++ b/src/js/services/bitcoreCash.js @@ -0,0 +1,6 @@ +'use strict'; +angular.module('copayApp.services') + .factory('bitcoreCash', function bitcoreFactory(bwcService) { + var bitcoreCash = bwcService.getBitcoreCash(); + return bitcoreCash; + }); diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index a805fac29..82d0510a4 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('incomingData', function($log, $state, $timeout, $ionicHistory, bitcore, $rootScope, payproService, scannerService, appConfigService, popupService, gettextCatalog) { +angular.module('copayApp.services').factory('incomingData', function($log, $state, $timeout, $ionicHistory, bitcore, bitcoreCash, $rootScope, payproService, scannerService, appConfigService, popupService, gettextCatalog) { var root = {}; @@ -140,6 +140,16 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat } else { goToAmountPage(data); } + } else if (bitcoreCash.Address.isValid(data, 'livenet')) { + if ($state.includes('tabs.scan')) { + root.showMenu({ + data: data, + type: 'bitcoinAddress', + coin: 'bch', + }); + } else { + goToAmountPage(data, 'bch'); + } } else if (data && data.indexOf(appConfigService.name + '://glidera') === 0) { var code = getParameterByName('code', data); $ionicHistory.nextViewOptions({ @@ -254,14 +264,15 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat }; - function goToAmountPage(toAddress) { + function goToAmountPage(toAddress, coin) { $state.go('tabs.send', {}, { 'reload': true, 'notify': $state.current.name == 'tabs.send' ? false : true }); $timeout(function() { $state.transitionTo('tabs.send.amount', { - toAddress: toAddress + toAddress: toAddress, + coin: coin, }); }, 100); } From 1ac368c67d0b94d47508a63f818372e07d28c822 Mon Sep 17 00:00:00 2001 From: matiu Date: Thu, 14 Sep 2017 22:09:20 -0300 Subject: [PATCH 098/157] fix scanning status --- src/js/controllers/tab-home.js | 2 -- src/js/services/walletService.js | 7 +++---- www/views/tab-home.html | 6 +++--- www/views/walletDetails.html | 19 +++++++++++++++---- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index a3a614e21..79be14391 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -224,7 +224,6 @@ angular.module('copayApp.controllers').controller('tabHomeController', wallet.error = null; wallet.status = status; - wallet.updating = status && status.wallet && status.wallet.scanStatus == 'running'; // TODO service refactor? not in profile service profileService.setLastKnownBalance(wallet.id, wallet.status.totalBalanceStr, function() {}); } @@ -243,7 +242,6 @@ angular.module('copayApp.controllers').controller('tabHomeController', return; } wallet.status = status; - wallet.updating = status && status.wallet && status.wallet.scanStatus == 'running'; updateTxps(); }); }; diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index b456fae61..15be5ecc0 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -305,6 +305,8 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim cacheStatus(status); + wallet.scanning = status.wallet && status.wallet.scanStatus == 'running'; + return cb(null, status); }); }; @@ -818,13 +820,10 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim $log.debug('Scanning wallet ' + wallet.id); if (!wallet.isComplete()) return; - wallet.updating = true; - ongoingProcess.set('scanning', true); + wallet.scanning = true; wallet.startScan({ includeCopayerBranches: true, }, function(err) { - wallet.updating = false; - ongoingProcess.set('scanning', false); return cb(err); }); }; diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 9300a598e..0e3e8e33d 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -91,10 +91,10 @@ Incomplete - {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} - Scanning for funds... + {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} + Scanning for funds... - [Balance Hidden] + [Balance Hidden] {{wallet.m}}-of-{{wallet.n}} diff --git a/www/views/walletDetails.html b/www/views/walletDetails.html index 2a094e233..6f3756d50 100644 --- a/www/views/walletDetails.html +++ b/www/views/walletDetails.html @@ -31,7 +31,7 @@
@@ -46,15 +46,26 @@
[Balance Hidden] -
Tap and hold to show
-
+ +
+ [Scanning Funds] +
+ Please wait +
+
+ + +
+
+ +
+
+ +
+
+ + + Wallet not backed up From 5655745441a5123c77bd9864e2f709ed834df260 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 19 Sep 2017 09:58:50 -0400 Subject: [PATCH 113/157] Set bitpay-insight as default bitcoin cash explorer --- src/js/controllers/tx-details.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index 2815878a5..568f00ef4 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -17,7 +17,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio $scope.txsUnsubscribedForNotifications = config.confirmedTxsNotifications ? !config.confirmedTxsNotifications.enabled : true; if ($scope.wallet.coin == 'bch') { - blockexplorerUrl = 'cashexplorer.bitcoin.com'; + blockexplorerUrl = 'bch-insight.bitpay.com'; } else { blockexplorerUrl = 'insight.bitpay.com'; } From 45e15c77270a0e9692511dcec141445164eaa9f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 19 Sep 2017 10:59:35 -0300 Subject: [PATCH 114/157] disable trezor and ledger for bitcoin cash wallets --- src/js/controllers/create.js | 5 +++++ src/js/controllers/join.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index d47dba87f..da8c66f0d 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -176,6 +176,11 @@ angular.module('copayApp.controllers').controller('createController', } if ($scope.formData.seedSource.id == walletService.externalSource.ledger.id || $scope.formData.seedSource.id == walletService.externalSource.trezor.id || $scope.formData.seedSource.id == walletService.externalSource.intelTEE.id) { + if ($scope.formData.coin == 'bch') { + popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallet are yet not supported with Bitcoin Cash')); + return; + } + var account = $scope.formData.account; if (!account || account < 1) { popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Invalid account number')); diff --git a/src/js/controllers/join.js b/src/js/controllers/join.js index 218d61725..e08f30483 100644 --- a/src/js/controllers/join.js +++ b/src/js/controllers/join.js @@ -141,6 +141,11 @@ angular.module('copayApp.controllers').controller('joinController', } if ($scope.formData.seedSource.id == walletService.externalSource.ledger.id || $scope.formData.seedSource.id == walletService.externalSource.trezor.id || $scope.formData.seedSource.id == walletService.externalSource.intelTEE.id) { + if ($scope.formData.coin == 'bch') { + popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallet are yet not supported with Bitcoin Cash')); + return; + } + var account = $scope.formData.account; if (!account || account < 1) { popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Invalid account number')); From c9253c44f335bd10a7e6dd1810f83a0e1fbefbdf Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 19 Sep 2017 10:58:58 -0400 Subject: [PATCH 115/157] Adds bitcoin cash support for the address book --- src/js/controllers/addressbookView.js | 25 +++++++++++++++++++------ src/js/directives/directives.js | 25 ++++++++++++++++++++----- src/js/services/addressbookService.js | 19 ++++++++++++++++--- 3 files changed, 55 insertions(+), 14 deletions(-) diff --git a/src/js/controllers/addressbookView.js b/src/js/controllers/addressbookView.js index 05007dfe9..9d1c49840 100644 --- a/src/js/controllers/addressbookView.js +++ b/src/js/controllers/addressbookView.js @@ -1,11 +1,23 @@ 'use strict'; -angular.module('copayApp.controllers').controller('addressbookViewController', function($scope, $state, $timeout, $stateParams, lodash, addressbookService, popupService, $ionicHistory, platformInfo, gettextCatalog) { +angular.module('copayApp.controllers').controller('addressbookViewController', function($scope, $state, $timeout, lodash, addressbookService, popupService, $ionicHistory, platformInfo, gettextCatalog, bitcoreCash) { $scope.isChromeApp = platformInfo.isChromeApp; $scope.addressbookEntry = {}; - $scope.addressbookEntry.name = $stateParams.name; - $scope.addressbookEntry.email = $stateParams.email; - $scope.addressbookEntry.address = $stateParams.address; + var coin; + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.addressbookEntry = {}; + $scope.addressbookEntry.name = data.stateParams.name; + $scope.addressbookEntry.email = data.stateParams.email; + $scope.addressbookEntry.address = data.stateParams.address; + + var cashAddress = bitcoreCash.Address.isValid($scope.addressbookEntry.address, 'livenet'); + if (cashAddress) { + coin = 'bch'; + } else { + coin = 'btc'; + } + }); $scope.sendTo = function() { $ionicHistory.removeBackView(); @@ -14,7 +26,8 @@ angular.module('copayApp.controllers').controller('addressbookViewController', f $state.transitionTo('tabs.send.amount', { toAddress: $scope.addressbookEntry.address, toName: $scope.addressbookEntry.name, - toEmail: $scope.addressbookEntry.email + toEmail: $scope.addressbookEntry.email, + coin: coin }); }, 100); }; @@ -31,7 +44,7 @@ angular.module('copayApp.controllers').controller('addressbookViewController', f } $ionicHistory.goBack(); }); - }); + }); }; }); diff --git a/src/js/directives/directives.js b/src/js/directives/directives.js index ed59564b7..ac14da110 100644 --- a/src/js/directives/directives.js +++ b/src/js/directives/directives.js @@ -1,12 +1,18 @@ 'use strict'; angular.module('copayApp.directives') - .directive('validAddress', ['$rootScope', 'bitcore', - function($rootScope, bitcore) { + .directive('validAddress', ['$rootScope', 'bitcore', 'bitcoreCash', + function($rootScope, bitcore, bitcoreCash) { return { require: 'ngModel', link: function(scope, elem, attrs, ctrl) { + // Bitcoin address var URI = bitcore.URI; var Address = bitcore.Address + + // Bitcoin Cash address + var URICash = bitcoreCash.URI; + var AddressCash = bitcoreCash.Address + var validator = function(value) { // Regular url @@ -16,8 +22,8 @@ angular.module('copayApp.directives') } // Bip21 uri + var uri, isAddressValidLivenet, isAddressValidTestnet; if (/^bitcoin:/.test(value)) { - var uri, isAddressValidLivenet, isAddressValidTestnet; var isUriValid = URI.isValid(value); if (isUriValid) { uri = new URI(value); @@ -26,6 +32,14 @@ angular.module('copayApp.directives') } ctrl.$setValidity('validAddress', isUriValid && (isAddressValidLivenet || isAddressValidTestnet)); return value; + } else if (/^bitcoincash:/.test(value)) { + var isUriValid = URICash.isValid(value); + if (isUriValid) { + uri = new URICash(value); + isAddressValidLivenet = AddressCash.isValid(uri.address.toString(), 'livenet') + } + ctrl.$setValidity('validAddress', isUriValid && (isAddressValidLivenet)); + return value; } if (typeof value == 'undefined') { @@ -33,10 +47,11 @@ angular.module('copayApp.directives') return; } - // Regular Address + // Regular Address: try Bitcoin and Bitcoin Cash var regularAddressLivenet = Address.isValid(value, 'livenet'); var regularAddressTestnet = Address.isValid(value, 'testnet'); - ctrl.$setValidity('validAddress', (regularAddressLivenet || regularAddressTestnet)); + var regularAddressCashLivenet = AddressCash.isValid(value, 'livenet'); + ctrl.$setValidity('validAddress', (regularAddressLivenet || regularAddressTestnet || regularAddressCashLivenet)); return value; }; diff --git a/src/js/services/addressbookService.js b/src/js/services/addressbookService.js index edd3237d1..df6ace676 100644 --- a/src/js/services/addressbookService.js +++ b/src/js/services/addressbookService.js @@ -1,8 +1,19 @@ 'use strict'; -angular.module('copayApp.services').factory('addressbookService', function(bitcore, storageService, lodash) { +angular.module('copayApp.services').factory('addressbookService', function($log, bitcore, bitcoreCash, storageService, lodash) { var root = {}; + var getNetwork = function(address) { + var network; + try { + network = (new bitcore.Address(address)).network.name; + } catch(e) { + $log.error('No valid bitcoin address. Trying bitcoin cash...'); + network = (new bitcoreCash.Address(address)).network.name; + } + return network; + }; + root.get = function(addr, cb) { storageService.getAddressbook('testnet', function(err, ab) { if (err) return cb(err); @@ -35,7 +46,8 @@ angular.module('copayApp.services').factory('addressbookService', function(bitco }; root.add = function(entry, cb) { - var network = (new bitcore.Address(entry.address)).network.name; + var network = getNetwork(entry.address); + if (lodash.isEmpty(network)) return cb('Not valid bitcoin address'); storageService.getAddressbook(network, function(err, ab) { if (err) return cb(err); if (ab) ab = JSON.parse(ab); @@ -53,7 +65,8 @@ angular.module('copayApp.services').factory('addressbookService', function(bitco }; root.remove = function(addr, cb) { - var network = (new bitcore.Address(addr)).network.name; + var network = getNetwork(addr); + if (lodash.isEmpty(network)) return cb('Not valid bitcoin address'); storageService.getAddressbook(network, function(err, ab) { if (err) return cb(err); if (ab) ab = JSON.parse(ab); From 31029bc17ae9ac070295649358dc60d9ea68ade9 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 19 Sep 2017 11:28:03 -0400 Subject: [PATCH 116/157] Fix tab-send to send BCH or BTC from address book entry --- src/js/controllers/tab-send.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 77a664632..229d23c2a 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('tabSendController', function($scope, $rootScope, $log, $timeout, $ionicScrollDelegate, addressbookService, profileService, lodash, $state, walletService, incomingData, popupService, platformInfo, bwcError, gettextCatalog, scannerService) { +angular.module('copayApp.controllers').controller('tabSendController', function($scope, $rootScope, $log, $timeout, $ionicScrollDelegate, addressbookService, profileService, lodash, $state, walletService, incomingData, popupService, platformInfo, bwcError, gettextCatalog, scannerService, bitcoreCash) { var originalList; var CONTACTS_SHOW_LIMIT; @@ -86,6 +86,14 @@ angular.module('copayApp.controllers').controller('tabSendController', function( } } + var getCoin = function(address) { + var cashAddress = bitcoreCash.Address.isValid(address, 'livenet'); + if (cashAddress) { + return 'bch'; + } + return 'btc'; + }; + var updateContactsList = function(cb) { addressbookService.list(function(err, ab) { if (err) $log.error(err); @@ -100,6 +108,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( address: k, email: lodash.isObject(v) ? v.email : null, recipientType: 'contact', + coin: getCoin(k), getAddress: function(cb) { return cb(null, k); }, From f86787f511c1b768fc4c25a4c40e7862d2f88dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 19 Sep 2017 12:40:49 -0300 Subject: [PATCH 117/157] fix --- src/js/controllers/create.js | 2 +- src/js/controllers/join.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index da8c66f0d..4a1ce005a 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -177,7 +177,7 @@ angular.module('copayApp.controllers').controller('createController', if ($scope.formData.seedSource.id == walletService.externalSource.ledger.id || $scope.formData.seedSource.id == walletService.externalSource.trezor.id || $scope.formData.seedSource.id == walletService.externalSource.intelTEE.id) { if ($scope.formData.coin == 'bch') { - popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallet are yet not supported with Bitcoin Cash')); + popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallets are not yet supported with Bitcoin Cash')); return; } diff --git a/src/js/controllers/join.js b/src/js/controllers/join.js index e08f30483..29b97cb6b 100644 --- a/src/js/controllers/join.js +++ b/src/js/controllers/join.js @@ -142,7 +142,7 @@ angular.module('copayApp.controllers').controller('joinController', if ($scope.formData.seedSource.id == walletService.externalSource.ledger.id || $scope.formData.seedSource.id == walletService.externalSource.trezor.id || $scope.formData.seedSource.id == walletService.externalSource.intelTEE.id) { if ($scope.formData.coin == 'bch') { - popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallet are yet not supported with Bitcoin Cash')); + popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Hardware wallets are not yet supported with Bitcoin Cash')); return; } From 28daae3d20de9f26b104de5084d0e864ec44013d Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 19 Sep 2017 14:06:57 -0400 Subject: [PATCH 118/157] Updates POT file --- i18n/po/template.pot | 303 +++++++++++++++++++++++++++---------------- 1 file changed, 192 insertions(+), 111 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index 9ef677111..eb2f073c0 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -39,16 +39,16 @@ msgstr "" msgid "A member of the team will review your feedback as soon as possible." msgstr "" -#: src/js/controllers/confirm.js:374 +#: src/js/controllers/confirm.js:380 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "" -#: src/js/controllers/confirm.js:368 +#: src/js/controllers/confirm.js:374 msgid "A total of {{amountBelowFeeStr}} were excluded. These funds come from UTXOs smaller than the network fee provided." msgstr "" #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:146 +#: www/views/tab-settings.html:161 msgid "About" msgstr "" @@ -57,7 +57,7 @@ msgstr "" msgid "Accepted" msgstr "" -#: www/views/preferencesInformation.html:66 +#: www/views/preferencesInformation.html:72 msgid "Account" msgstr "" @@ -117,7 +117,7 @@ msgstr "" msgid "Add as a contact" msgstr "" -#: src/js/controllers/confirm.js:397 +#: src/js/controllers/confirm.js:403 msgid "Add description" msgstr "" @@ -144,7 +144,7 @@ msgstr "" msgid "Address Book" msgstr "" -#: www/views/preferencesInformation.html:35 +#: www/views/preferencesInformation.html:41 msgid "Address Type" msgstr "" @@ -152,7 +152,7 @@ msgstr "" msgid "Addresses With Balance" msgstr "" -#: www/views/tab-settings.html:139 +#: www/views/tab-settings.html:154 msgid "Advanced" msgstr "" @@ -189,7 +189,7 @@ msgid "Almost done! Let's review." msgstr "" #: www/views/preferencesAltCurrency.html:4 -#: www/views/tab-settings.html:64 +#: www/views/tab-settings.html:79 msgid "Alternative Currency" msgstr "" @@ -207,7 +207,7 @@ msgstr "" msgid "Amount below minimum allowed" msgstr "" -#: src/js/controllers/confirm.js:191 +#: src/js/controllers/confirm.js:195 msgid "Amount too big" msgstr "" @@ -292,6 +292,10 @@ msgstr "" msgid "BIP32 path for address derivation" msgstr "" +#: www/views/cashScan.html:22 +msgid "BTC Wallets" +msgstr "" + #: www/views/preferences.html:34 msgid "Backup" msgstr "" @@ -305,7 +309,7 @@ msgid "Backup all livenet wallets before using this function" msgstr "" #: www/views/preferences.html:36 -#: www/views/tab-settings.html:110 +#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "" @@ -322,11 +326,11 @@ msgstr "" msgid "Backup your wallet before using this function" msgstr "" -#: src/js/services/profileService.js:437 +#: src/js/services/profileService.js:445 msgid "Bad wallet invitation" msgstr "" -#: www/views/preferencesInformation.html:96 +#: www/views/preferencesInformation.html:102 msgid "Balance By Address" msgstr "" @@ -343,12 +347,25 @@ msgstr "" msgid "Bitcoin Address" msgstr "" +#: www/views/cashScan.html:4 +msgid "Bitcoin Cash (BCH) Balances" +msgstr "" + +#: www/views/preferencesCash.html:3 +#: www/views/tab-settings.html:47 +msgid "Bitcoin Cash Support" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 -#: www/views/tab-settings.html:75 +#: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "" +#: src/js/services/incomingData.js:151 +msgid "Bitcoin cash Payment" +msgstr "" + #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." msgstr "" @@ -418,8 +435,9 @@ msgstr "" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:523 +#: src/js/controllers/confirm.js:529 #: src/js/controllers/topup.js:287 +#: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 #: src/js/services/popupService.js:73 #: www/views/addressbook.add.html:10 @@ -442,7 +460,7 @@ msgstr "" msgid "Cannot Create Wallet" msgstr "" -#: src/js/services/profileService.js:433 +#: src/js/services/profileService.js:441 msgid "Cannot join the same wallet more that once" msgstr "" @@ -478,16 +496,16 @@ msgstr "" msgid "Clear cache" msgstr "" -#: src/js/controllers/confirm.js:347 +#: src/js/controllers/confirm.js:352 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "" -#: src/js/controllers/confirm.js:341 +#: src/js/controllers/confirm.js:346 msgid "Click to pay" msgstr "" -#: src/js/controllers/confirm.js:353 +#: src/js/controllers/confirm.js:358 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "" @@ -503,6 +521,7 @@ msgid "Close" msgstr "" #: www/views/includes/cash.html:2 +#: www/views/preferencesInformation.html:17 msgid "Coin" msgstr "" @@ -524,7 +543,7 @@ msgstr "" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:522 +#: src/js/controllers/confirm.js:528 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 #: www/views/backup.html:53 @@ -548,7 +567,7 @@ msgstr "" msgid "Confirm your PIN" msgstr "" -#: src/js/services/walletService.js:1030 +#: src/js/services/walletService.js:1033 msgid "Confirm your new spending password" msgstr "" @@ -605,7 +624,7 @@ msgstr "" msgid "Copayer joined" msgstr "" -#: www/views/preferencesInformation.html:88 +#: www/views/preferencesInformation.html:94 msgid "Copayer {{$index}}" msgstr "" @@ -639,11 +658,11 @@ msgstr "" msgid "Could not access to Amazon.com" msgstr "" -#: src/js/services/profileService.js:502 +#: src/js/services/profileService.js:510 msgid "Could not access wallet" msgstr "" -#: src/js/controllers/confirm.js:185 +#: src/js/controllers/confirm.js:189 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "" @@ -655,7 +674,7 @@ msgstr "" msgid "Could not build transaction" msgstr "" -#: src/js/services/walletService.js:853 +#: src/js/services/walletService.js:854 msgid "Could not create address" msgstr "" @@ -669,15 +688,15 @@ msgstr "" msgid "Could not create transaction" msgstr "" -#: src/js/services/profileService.js:345 +#: src/js/services/profileService.js:351 msgid "Could not create using the specified extended private key" msgstr "" -#: src/js/services/profileService.js:357 +#: src/js/services/profileService.js:363 msgid "Could not create using the specified extended public key" msgstr "" -#: src/js/services/profileService.js:338 +#: src/js/services/profileService.js:339 msgid "Could not create: Invalid wallet recovery phrase" msgstr "" @@ -689,6 +708,10 @@ msgstr "" msgid "Could not delete payment proposal" msgstr "" +#: src/js/controllers/cashScan.js:101 +msgid "Could not duplicate" +msgstr "" + #: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" msgstr "" @@ -711,17 +734,17 @@ msgstr "" msgid "Could not get transactions" msgstr "" -#: src/js/services/profileService.js:606 -#: src/js/services/profileService.js:641 -#: src/js/services/profileService.js:665 +#: src/js/services/profileService.js:614 +#: src/js/services/profileService.js:649 +#: src/js/services/profileService.js:673 msgid "Could not import" msgstr "" -#: src/js/services/profileService.js:575 +#: src/js/services/profileService.js:583 msgid "Could not import. Check input file and spending password" msgstr "" -#: src/js/services/profileService.js:448 +#: src/js/services/profileService.js:456 msgid "Could not join wallet" msgstr "" @@ -738,7 +761,7 @@ msgstr "" msgid "Could not remove card" msgstr "" -#: src/js/services/walletService.js:772 +#: src/js/services/walletService.js:776 msgid "Could not save preferences on the server" msgstr "" @@ -752,7 +775,7 @@ msgstr "" msgid "Could not send transaction" msgstr "" -#: www/views/walletDetails.html:125 +#: www/views/walletDetails.html:210 msgid "Could not update transaction history" msgstr "" @@ -857,7 +880,7 @@ msgstr "" msgid "Derivation Path" msgstr "" -#: www/views/preferencesInformation.html:41 +#: www/views/preferencesInformation.html:47 msgid "Derivation Strategy" msgstr "" @@ -869,7 +892,8 @@ msgid "Details" msgstr "" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:59 +#: src/js/controllers/tab-settings.js:64 +#: www/views/tab-settings.html:50 msgid "Disabled" msgstr "" @@ -891,6 +915,14 @@ msgstr "" msgid "Download" msgstr "" +#: www/views/cashScan.html:36 +msgid "Duplicate for BCH" +msgstr "" + +#: src/js/services/onGoingProcess.js:49 +msgid "Duplicating wallet..." +msgstr "" + #: 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." msgstr "" @@ -916,7 +948,7 @@ msgstr "" msgid "Empty addresses limit reached. New addresses cannot be generated." msgstr "" -#: www/views/advancedSettings.html:15 +#: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." msgstr "" @@ -936,8 +968,12 @@ msgstr "" msgid "Enable the camera to get started." msgstr "" -#: src/js/services/walletService.js:1044 -#: src/js/services/walletService.js:1059 +#: www/views/tab-settings.html:49 +msgid "Enabled" +msgstr "" + +#: src/js/services/walletService.js:1047 +#: src/js/services/walletService.js:1062 msgid "Enter Spending Password" msgstr "" @@ -953,7 +989,7 @@ msgstr "" msgid "Enter custom fee" msgstr "" -#: src/js/services/walletService.js:1026 +#: src/js/services/walletService.js:1029 msgid "Enter new spending password" msgstr "" @@ -984,14 +1020,15 @@ msgstr "" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:282 +#: src/js/controllers/confirm.js:286 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 -#: src/js/controllers/create.js:181 -#: src/js/controllers/create.js:203 -#: src/js/controllers/create.js:210 -#: src/js/controllers/create.js:228 +#: src/js/controllers/create.js:180 +#: src/js/controllers/create.js:186 +#: src/js/controllers/create.js:208 +#: src/js/controllers/create.js:215 +#: src/js/controllers/create.js:233 #: src/js/controllers/export.js:109 #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1021,10 +1058,11 @@ msgstr "" #: src/js/controllers/import.js:98 #: src/js/controllers/join.js:125 #: src/js/controllers/join.js:139 -#: src/js/controllers/join.js:146 -#: src/js/controllers/join.js:169 -#: src/js/controllers/join.js:177 -#: src/js/controllers/join.js:195 +#: src/js/controllers/join.js:145 +#: src/js/controllers/join.js:151 +#: src/js/controllers/join.js:174 +#: src/js/controllers/join.js:182 +#: src/js/controllers/join.js:200 #: src/js/controllers/modals/feeLevels.js:9 #: src/js/controllers/modals/txpDetails.js:140 #: src/js/controllers/paperWallet.js:47 @@ -1041,12 +1079,14 @@ msgstr "" #: src/js/controllers/topup.js:32 #: src/js/controllers/tx-details.js:119 #: src/js/services/incomingData.js:101 +#: src/js/services/incomingData.js:125 +#: src/js/services/incomingData.js:168 #: www/views/mercadoLibreCards.html:19 #: www/views/modals/mercadolibre-card-details.html:45 msgid "Error" msgstr "" -#: src/js/controllers/confirm.js:475 +#: src/js/controllers/confirm.js:481 msgid "Error at confirm" msgstr "" @@ -1059,11 +1099,11 @@ msgstr "" msgid "Error creating the invoice" msgstr "" -#: src/js/services/profileService.js:403 +#: src/js/services/profileService.js:411 msgid "Error creating wallet" msgstr "" -#: src/js/controllers/confirm.js:271 +#: src/js/controllers/confirm.js:275 msgid "Error getting SendMax information" msgstr "" @@ -1093,7 +1133,7 @@ msgstr "" msgid "Exceeded daily limit of $500 per user" msgstr "" -#: src/js/controllers/confirm.js:434 +#: src/js/controllers/confirm.js:440 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 @@ -1119,12 +1159,12 @@ msgstr "" msgid "Export wallet" msgstr "" -#: src/js/services/walletService.js:1171 +#: src/js/services/walletService.js:1174 #: www/views/tab-export-qrCode.html:9 msgid "Exporting via QR not supported for this wallet" msgstr "" -#: www/views/preferencesInformation.html:83 +#: www/views/preferencesInformation.html:89 msgid "Extended Public Keys" msgstr "" @@ -1264,12 +1304,12 @@ msgstr "" msgid "Get news and updates from BitPay" msgstr "" -#: www/views/bitpayCard.html:49 +#: www/views/onboarding/welcome.html:8 +msgctxt "button" msgid "Get started" msgstr "" -#: www/views/onboarding/welcome.html:8 -msgctxt "button" +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "" @@ -1299,15 +1339,15 @@ msgstr "" msgid "Gift card generated and ready to use." msgstr "" -#: src/js/controllers/advancedSettings.js:75 #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 +#: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:47 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" @@ -1325,8 +1365,8 @@ msgstr "" msgid "Got it" msgstr "" -#: www/views/preferencesInformation.html:47 #: www/views/preferencesInformation.html:53 +#: www/views/preferencesInformation.html:59 msgid "Hardware Wallet" msgstr "" @@ -1338,12 +1378,17 @@ msgstr "" msgid "Hardware wallet" msgstr "" +#: src/js/controllers/create.js:180 +#: src/js/controllers/join.js:145 +msgid "Hardware wallets are not yet supported with Bitcoin Cash" +msgstr "" + #: www/views/tab-settings.html:20 msgid "Help & Support" msgstr "" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:45 +#: src/js/controllers/tab-settings.js:50 msgid "Help and support information is available at the website." msgstr "" @@ -1355,7 +1400,7 @@ msgstr "" msgid "Hide Balance" msgstr "" -#: www/views/advancedSettings.html:40 +#: www/views/advancedSettings.html:30 msgid "Hide Next Steps Card" msgstr "" @@ -1430,11 +1475,11 @@ msgstr "" msgid "If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected." msgstr "" -#: www/views/advancedSettings.html:33 +#: www/views/advancedSettings.html:23 msgid "If enabled, the Recent Transactions card - a list of transactions occuring across all wallets - will appear in the Home tab." msgstr "" -#: www/views/advancedSettings.html:24 +#: www/views/advancedSettings.html:14 msgid "If enabled, wallets will also try to spend unconfirmed funds. This option may cause transaction delays." msgstr "" @@ -1483,7 +1528,7 @@ msgstr "" #: www/views/includes/walletItem.html:11 #: www/views/includes/walletSelector.html:18 #: www/views/tab-home.html:90 -#: www/views/tab-settings.html:107 +#: www/views/tab-settings.html:122 msgid "Incomplete" msgstr "" @@ -1504,8 +1549,8 @@ msgstr "" msgid "Incorrect network address" msgstr "" -#: src/js/controllers/confirm.js:113 -#: src/js/controllers/confirm.js:281 +#: src/js/controllers/confirm.js:114 +#: src/js/controllers/confirm.js:285 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "" @@ -1526,9 +1571,9 @@ msgstr "" msgid "Invalid URL" msgstr "" -#: src/js/controllers/create.js:181 +#: src/js/controllers/create.js:186 #: src/js/controllers/import.js:345 -#: src/js/controllers/join.js:146 +#: src/js/controllers/join.js:151 msgid "Invalid account number" msgstr "" @@ -1601,7 +1646,7 @@ msgid "Key already associated with an existing wallet" msgstr "" #: www/views/preferencesLanguage.html:4 -#: www/views/tab-settings.html:53 +#: www/views/tab-settings.html:68 msgid "Language" msgstr "" @@ -1609,8 +1654,8 @@ msgstr "" msgid "Last Month" msgstr "" -#: www/views/advancedSettings.html:16 #: www/views/preferences.html:48 +#: www/views/preferencesCash.html:18 #: www/views/tx-details.html:96 msgid "Learn more" msgstr "" @@ -1628,7 +1673,7 @@ msgstr "" msgid "Loading transaction info..." msgstr "" -#: www/views/tab-settings.html:85 +#: www/views/tab-settings.html:100 msgid "Lock App" msgstr "" @@ -1677,7 +1722,7 @@ msgid "Matches:" msgstr "" #: www/views/includes/copayers.html:4 -#: www/views/preferencesInformation.html:79 +#: www/views/preferencesInformation.html:85 msgid "Me" msgstr "" @@ -1815,7 +1860,7 @@ msgstr "" msgid "No signing proposal: No private key" msgstr "" -#: www/views/walletDetails.html:119 +#: www/views/walletDetails.html:204 msgid "No transactions yet" msgstr "" @@ -1829,7 +1874,7 @@ msgstr "" #: src/js/controllers/buyAmazon.js:300 #: src/js/controllers/buyMercadoLibre.js:292 -#: src/js/controllers/confirm.js:84 +#: src/js/controllers/confirm.js:85 #: src/js/controllers/topup.js:265 msgid "No wallets available" msgstr "" @@ -1838,6 +1883,14 @@ msgstr "" msgid "No wallets available to receive funds" msgstr "" +#: www/views/cashScan.html:14 +msgid "No wallets eligible for Bitcoin Cash support" +msgstr "" + +#: www/views/cashScan.html:44 +msgid "Non eligible BTC wallets" +msgstr "" + #: src/js/services/feeService.js:12 msgid "Normal" msgstr "" @@ -1846,7 +1899,7 @@ msgstr "" msgid "Not authorized" msgstr "" -#: src/js/controllers/confirm.js:282 +#: src/js/controllers/confirm.js:286 msgid "Not enough funds for fee" msgstr "" @@ -1872,7 +1925,7 @@ msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "" #: www/views/preferencesNotifications.html:3 -#: www/views/tab-settings.html:46 +#: www/views/tab-settings.html:61 msgid "Notifications" msgstr "" @@ -1898,6 +1951,7 @@ msgstr "" #: src/js/controllers/buyAmazon.js:312 #: src/js/controllers/topup.js:286 +#: src/js/services/incomingData.js:153 #: src/js/services/popupService.js:16 #: src/js/services/popupService.js:52 #: src/js/services/popupService.js:61 @@ -1929,10 +1983,10 @@ msgstr "" msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "" -#: src/js/controllers/advancedSettings.js:74 #: src/js/controllers/bitpayCard.js:113 #: src/js/controllers/preferences.js:66 -#: src/js/controllers/tab-settings.js:46 +#: src/js/controllers/preferencesCash.js:33 +#: src/js/controllers/tab-settings.js:51 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "" @@ -1966,7 +2020,7 @@ msgstr "" msgid "Open Website" msgstr "" -#: src/js/controllers/advancedSettings.js:73 +#: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" msgstr "" @@ -2066,6 +2120,10 @@ msgstr "" msgid "Payment accepted. It will be broadcasted by Glidera. In case there is a problem, it can be deleted 6 hours after it was created." msgstr "" +#: src/js/services/incomingData.js:152 +msgid "Payment address was translated to new Bitcoin Cash address format:" +msgstr "" + #: www/views/modals/txp-details.html:109 msgid "Payment details" msgstr "" @@ -2087,7 +2145,7 @@ msgstr "" msgid "Permanently delete this wallet." msgstr "" -#: src/js/services/profileService.js:394 +#: src/js/services/profileService.js:401 msgid "Personal Wallet" msgstr "" @@ -2120,6 +2178,11 @@ msgstr "" msgid "Please upgrade Copay to perform this action" msgstr "" +#: www/views/walletDetails.html:142 +#: www/views/walletDetails.html:62 +msgid "Please wait" +msgstr "" + #: src/js/controllers/import.js:238 msgid "Please, select your backup file" msgstr "" @@ -2140,7 +2203,7 @@ msgstr "" msgid "Preparing backup..." msgstr "" -#: src/js/routes.js:1240 +#: src/js/routes.js:1261 msgid "Press again to exit" msgstr "" @@ -2178,7 +2241,7 @@ msgstr "" msgid "Proposal Rejected" msgstr "" -#: www/views/walletDetails.html:104 +#: www/views/walletDetails.html:189 msgid "Proposals" msgstr "" @@ -2256,7 +2319,7 @@ msgstr "" msgid "Recent" msgstr "" -#: www/views/advancedSettings.html:31 +#: www/views/advancedSettings.html:21 msgid "Recent Transaction Card" msgstr "" @@ -2391,10 +2454,18 @@ msgstr "" msgid "Scan your fingerprint please" msgstr "" +#: www/views/preferencesCash.html:22 +msgid "Scan your wallets for Bitcoin Cash" +msgstr "" + #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." msgstr "" +#: www/views/tab-home.html:95 +msgid "Scanning funds..." +msgstr "" + #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" msgstr "" @@ -2427,7 +2498,7 @@ msgstr "" msgid "Select a backup file" msgstr "" -#: src/js/controllers/tab-receive.js:134 +#: src/js/controllers/tab-receive.js:139 msgid "Select a wallet" msgstr "" @@ -2464,7 +2535,7 @@ msgstr "" msgid "Send by email" msgstr "" -#: src/js/controllers/confirm.js:152 +#: src/js/controllers/confirm.js:156 msgid "Send from" msgstr "" @@ -2503,7 +2574,7 @@ msgstr "" msgid "Sending transaction" msgstr "" -#: src/js/controllers/confirm.js:518 +#: src/js/controllers/confirm.js:524 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "" @@ -2618,7 +2689,7 @@ msgstr "" msgid "Skip" msgstr "" -#: src/js/controllers/confirm.js:345 +#: src/js/controllers/confirm.js:350 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "" @@ -2628,11 +2699,11 @@ msgstr "" msgid "Slide to buy" msgstr "" -#: src/js/controllers/confirm.js:339 +#: src/js/controllers/confirm.js:344 msgid "Slide to pay" msgstr "" -#: src/js/controllers/confirm.js:351 +#: src/js/controllers/confirm.js:356 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "" @@ -2654,7 +2725,7 @@ msgstr "" msgid "Spending Password needed" msgstr "" -#: www/views/walletDetails.html:88 +#: www/views/walletDetails.html:173 msgid "Spending this balance will need significant Bitcoin network fees" msgstr "" @@ -2679,7 +2750,7 @@ msgstr "" msgid "Super Economy" msgstr "" -#: www/views/advancedSettings.html:12 +#: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" msgstr "" @@ -2704,6 +2775,7 @@ msgstr "" msgid "Take control of your money,
get started with bitcoin." msgstr "" +#: www/views/walletDetails.html:132 #: www/views/walletDetails.html:52 msgid "Tap and hold to show" msgstr "" @@ -2791,7 +2863,7 @@ msgstr "" msgid "The password of the recovery phrase (if set)" msgstr "" -#: src/js/services/walletService.js:1136 +#: src/js/services/walletService.js:1139 msgid "The payment was created but could not be completed. Please try again from home screen" msgstr "" @@ -2853,7 +2925,7 @@ msgstr "" msgid "This app stores your bitcoin with cutting-edge security." msgstr "" -#: src/js/controllers/confirm.js:496 +#: src/js/controllers/confirm.js:502 msgid "This bitcoin payment request has expired." msgstr "" @@ -2875,6 +2947,7 @@ msgstr "" msgid "This transaction could take a long time to confirm or could be dropped due to the low fees set by the sender" msgstr "" +#: www/views/walletDetails.html:109 #: www/views/walletDetails.html:29 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "" @@ -2920,7 +2993,7 @@ msgstr "" msgid "Total" msgstr "" -#: www/views/walletDetails.html:111 +#: www/views/walletDetails.html:196 msgid "Total Locked Balance" msgstr "" @@ -3005,7 +3078,7 @@ msgstr "" msgid "Unconfirmed" msgstr "" -#: www/views/walletDetails.html:105 +#: www/views/walletDetails.html:190 msgid "Unsent transactions" msgstr "" @@ -3025,7 +3098,7 @@ msgstr "" msgid "Updating pending proposals. Please stand by" msgstr "" -#: www/views/walletDetails.html:132 +#: www/views/walletDetails.html:217 msgid "Updating transaction history. Please stand by." msgstr "" @@ -3037,7 +3110,7 @@ msgstr "" msgid "Urgent" msgstr "" -#: www/views/advancedSettings.html:22 +#: www/views/advancedSettings.html:12 msgid "Use Unconfirmed Funds" msgstr "" @@ -3083,7 +3156,7 @@ msgstr "" msgid "Visit mercadolivre.com.br →" msgstr "" -#: www/views/walletDetails.html:97 +#: www/views/walletDetails.html:182 msgid "WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet." msgstr "" @@ -3124,7 +3197,7 @@ msgstr "" msgid "Wallet Color" msgstr "" -#: www/views/preferencesInformation.html:23 +#: www/views/preferencesInformation.html:29 msgid "Wallet Configuration (m-n)" msgstr "" @@ -3132,7 +3205,7 @@ msgstr "" msgid "Wallet Created" msgstr "" -#: www/views/preferencesInformation.html:17 +#: www/views/preferencesInformation.html:23 msgid "Wallet Id" msgstr "" @@ -3163,7 +3236,7 @@ msgstr "" msgid "Wallet Name (at creation)" msgstr "" -#: www/views/preferencesInformation.html:29 +#: www/views/preferencesInformation.html:35 msgid "Wallet Network" msgstr "" @@ -3195,7 +3268,7 @@ msgstr "" msgid "Wallet already exists" msgstr "" -#: src/js/services/profileService.js:507 +#: src/js/services/profileService.js:515 msgid "Wallet already in {{appName}}" msgstr "" @@ -3229,7 +3302,7 @@ msgid "Wallet needs backup" msgstr "" #: www/views/tab-receive.html:59 -#: www/views/walletDetails.html:84 +#: www/views/walletDetails.html:169 msgid "Wallet not backed up" msgstr "" @@ -3237,6 +3310,7 @@ msgstr "" msgid "Wallet not found" msgstr "" +#: src/js/controllers/cashScan.js:65 #: src/js/controllers/tab-home.js:220 msgid "Wallet not registered" msgstr "" @@ -3257,7 +3331,7 @@ msgstr "" msgid "Wallets" msgstr "" -#: www/views/tab-settings.html:92 +#: www/views/tab-settings.html:107 msgid "Wallets & Integrations" msgstr "" @@ -3436,18 +3510,24 @@ msgstr "" msgid "Your wallet is never saved to cloud storage or standard device backups." msgstr "" -#: src/js/services/walletService.js:1027 +#: src/js/services/walletService.js:1030 msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "" #: www/views/includes/walletSelector.html:23 #: www/views/paperWallet.html:35 -#: www/views/tab-home.html:96 +#: www/views/tab-home.html:97 #: www/views/tab-receive.html:74 +#: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" msgstr "" +#: www/views/walletDetails.html:141 +#: www/views/walletDetails.html:61 +msgid "[Scanning Funds]" +msgstr "" + #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" msgstr "" @@ -3456,7 +3536,7 @@ msgstr "" msgid "locked by pending payments" msgstr "" -#: src/js/services/profileService.js:395 +#: src/js/services/profileService.js:402 msgid "me" msgstr "" @@ -3480,7 +3560,7 @@ msgstr "" 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)." msgstr "" -#: src/js/controllers/confirm.js:381 +#: src/js/controllers/confirm.js:387 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "" @@ -3488,10 +3568,11 @@ msgstr "" msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" -#: www/views/walletDetails.html:133 +#: www/views/walletDetails.html:218 msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "" +#: www/views/cashScan.html:32 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" From b53c58f8b89dda62fd82f84f836d9c5750e9e38c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 19 Sep 2017 16:21:49 -0400 Subject: [PATCH 119/157] Warn instead an error --- src/js/services/addressbookService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/addressbookService.js b/src/js/services/addressbookService.js index df6ace676..6f8c1d106 100644 --- a/src/js/services/addressbookService.js +++ b/src/js/services/addressbookService.js @@ -8,7 +8,7 @@ angular.module('copayApp.services').factory('addressbookService', function($log, try { network = (new bitcore.Address(address)).network.name; } catch(e) { - $log.error('No valid bitcoin address. Trying bitcoin cash...'); + $log.warn('No valid bitcoin address. Trying bitcoin cash...'); network = (new bitcoreCash.Address(address)).network.name; } return network; From a47d6d80b4cec3bf51edfbe4e0dce54d0de260cf Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 20 Sep 2017 13:21:07 -0400 Subject: [PATCH 120/157] Fix default value for cash-support --- src/js/services/configService.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/js/services/configService.js b/src/js/services/configService.js index 8d3bae013..8f28fb409 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -61,9 +61,7 @@ angular.module('copayApp.services').factory('configService', function(storageSer bannedUntil: null, }, - cashSupport: { - enabled: false, - }, + cashSupport: false, recentTransactions: { enabled: true, From b3d04b575529275c40bde4ef5ef03d955e62467d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Wed, 20 Sep 2017 11:53:30 -0300 Subject: [PATCH 121/157] fix wp icons --- src/js/controllers/tab-send.js | 1 + www/views/cashScan.html | 8 ++------ www/views/confirm.html | 4 +--- www/views/customAmount.html | 4 +--- www/views/includes/walletIcon.html | 3 +++ www/views/includes/walletItem.html | 5 +---- www/views/includes/walletSelector.html | 20 +++++++++----------- www/views/modals/txp-details.html | 4 +--- www/views/paperWallet.html | 4 +--- www/views/tab-home.html | 4 +--- www/views/tab-receive.html | 4 +--- www/views/tab-send.html | 4 +--- www/views/tab-settings.html | 4 +--- www/views/tx-details.html | 4 +--- 14 files changed, 25 insertions(+), 48 deletions(-) create mode 100644 www/views/includes/walletIcon.html diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 229d23c2a..7d40a3afa 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -77,6 +77,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function( name: v.name, recipientType: 'wallet', coin: v.coin, + network: v.network, getAddress: function(cb) { walletService.getAddress(v, false, cb); }, diff --git a/www/views/cashScan.html b/www/views/cashScan.html index 2e62297ba..114bc208a 100644 --- a/www/views/cashScan.html +++ b/www/views/cashScan.html @@ -23,9 +23,7 @@
- - - +
{{wallet.name || wallet.id}}
{{wallet.bchBalance || ('Checking...' | translate)}}
@@ -45,9 +43,7 @@
- - - + {{wallet.name || wallet.id}}
diff --git a/www/views/confirm.html b/www/views/confirm.html index da6aca0f8..6e44dfa3c 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -64,9 +64,7 @@ From
- - - +
{{wallet.name}}
diff --git a/www/views/customAmount.html b/www/views/customAmount.html index cd3d9da15..a9a5e978d 100644 --- a/www/views/customAmount.html +++ b/www/views/customAmount.html @@ -38,9 +38,7 @@
- - - + {{wallet.name || wallet.id}} diff --git a/www/views/tab-home.html b/www/views/tab-home.html index be67c7440..f22785035 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -80,9 +80,7 @@ - - - + {{wallet.name || wallet.id}} diff --git a/www/views/tab-receive.html b/www/views/tab-receive.html index 5074da2c0..bb7206ad7 100644 --- a/www/views/tab-receive.html +++ b/www/views/tab-receive.html @@ -62,9 +62,7 @@
- - - + {{item.name}} diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index aed53e00b..d1274b3a4 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -109,9 +109,7 @@ - - - + {{item.name || item.id}} diff --git a/www/views/tx-details.html b/www/views/tx-details.html index 7cbd72b29..8ef0a22ce 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -52,9 +52,7 @@ From To
- - - +
{{wallet.name}}
From b997d6ff9c3a361c367cdd8808667f64d0901673 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Wed, 20 Sep 2017 11:58:55 -0300 Subject: [PATCH 122/157] ref backup view for unavailable recovery phrase - fix translate tag --- src/sass/views/wallet-backup-phrase.scss | 18 ++++++++++++++++++ www/views/backup.html | 13 ++++++++++--- www/views/cashScan.html | 2 +- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/sass/views/wallet-backup-phrase.scss b/src/sass/views/wallet-backup-phrase.scss index de3879b0d..c012b09f2 100644 --- a/src/sass/views/wallet-backup-phrase.scss +++ b/src/sass/views/wallet-backup-phrase.scss @@ -1,4 +1,22 @@ #wallet-backup-phrase { + .comment { + color: #667; + font-size: 0.9em; + } + .item { + color: $v-dark-gray; + padding-top: 1.3rem; + padding-bottom: 1.3rem; + border: none; + } + .heading { + font-size: 17px; + color: $v-dark-gray; + margin: 1rem 0; + padding-top: 5px; + padding-bottom: 5px; + border: none; + } h3 { padding: 15px; } diff --git a/www/views/backup.html b/www/views/backup.html index cfaee0902..c636bf060 100644 --- a/www/views/backup.html +++ b/www/views/backup.html @@ -7,9 +7,16 @@ -
-
Wallet recovery phrase not available.
-
You can still export it from Advanced > Export.
+
+
+ Wallet recovery phrase not available +
+
+ You can still export it from Advanced > Export. +
+
+
+ Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase.
+ Group 4 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index 3ea4d78c6..36c436ee8 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyCoinbase.html b/www/views/buyCoinbase.html index fe1371ce9..f9878e922 100644 --- a/www/views/buyCoinbase.html +++ b/www/views/buyCoinbase.html @@ -38,7 +38,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyGlidera.html b/www/views/buyGlidera.html index 5f1168996..a2dccf209 100644 --- a/www/views/buyGlidera.html +++ b/www/views/buyGlidera.html @@ -30,7 +30,7 @@
Receive in
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index 072bad8af..f45d1cb32 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -28,7 +28,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/includes/walletIcon.html b/www/views/includes/walletIcon.html index 2396ffa87..9991e0293 100644 --- a/www/views/includes/walletIcon.html +++ b/www/views/includes/walletIcon.html @@ -1,3 +1,2 @@ - - + diff --git a/www/views/sellCoinbase.html b/www/views/sellCoinbase.html index ae715ebe4..e553e84cb 100644 --- a/www/views/sellCoinbase.html +++ b/www/views/sellCoinbase.html @@ -29,7 +29,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/sellGlidera.html b/www/views/sellGlidera.html index e3ac25c31..7c23a558f 100644 --- a/www/views/sellGlidera.html +++ b/www/views/sellGlidera.html @@ -30,7 +30,7 @@
From
- + {{wallet ? wallet.name : '...'}}
diff --git a/www/views/tab-home.html b/www/views/tab-home.html index 5f528b3a9..ac9a563cc 100644 --- a/www/views/tab-home.html +++ b/www/views/tab-home.html @@ -79,6 +79,7 @@
@@ -93,6 +94,7 @@
+ Bitcoin Cash Wallets
diff --git a/www/views/topup.html b/www/views/topup.html index 7d140c450..5c1dd4dad 100644 --- a/www/views/topup.html +++ b/www/views/topup.html @@ -34,7 +34,7 @@
From
- + {{wallet ? wallet.name : '...'}}
From df557bf8744b0fcc36d7d2ecc3909b4f757b9ee0 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 5 Oct 2017 17:13:26 -0300 Subject: [PATCH 149/157] Split wallets from settings --- src/js/controllers/tab-settings.js | 3 ++- www/views/includes/walletListSettings.html | 14 +++++++++++ www/views/tab-settings.html | 29 ++++++++++------------ 3 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 www/views/includes/walletListSettings.html diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js index 75cce161b..ee45ae002 100644 --- a/src/js/controllers/tab-settings.js +++ b/src/js/controllers/tab-settings.js @@ -6,7 +6,8 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct $scope.currentLanguageName = uxLanguage.getCurrentLanguageName(); $scope.feeOpts = feeService.feeOpts; $scope.currentFeeLevel = feeService.getCurrentFeeLevel(); - $scope.wallets = profileService.getWallets(); + $scope.walletsBtc = profileService.getWallets({ coin: 'btc' }); + $scope.walletsBch = profileService.getWallets({ coin: 'bch' }); $scope.buyAndSellServices = buyAndSellService.getLinked(); configService.whenAvailable(function(config) { diff --git a/www/views/includes/walletListSettings.html b/www/views/includes/walletListSettings.html new file mode 100644 index 000000000..6264e11e9 --- /dev/null +++ b/www/views/includes/walletListSettings.html @@ -0,0 +1,14 @@ + + + {{wallet.name || wallet.id}} + + {{wallet.m}}-of-{{wallet.n}} + + + + {{'Incomplete' | translate}} + + + {{'Backup needed' | translate}} + + diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index e5ae63363..c67fd9ac1 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -104,27 +104,24 @@ -
{{'Wallets & Integrations' | translate}}
+
{{'Bitcoin Wallets' | translate}}
- - - {{wallet.name || wallet.id}} - - {{wallet.m}}-of-{{wallet.n}} - - - - {{'Incomplete' | translate}} - - - {{'Backup needed' | translate}} - - + ng-repeat="wallet in walletsBtc track by $index"> + +
{{'Bitcoin Cash Wallets' | translate}}
+ + + + + +
{{'Integrations' | translate}}
+ From c85dff1481ba025c16ef4b5ae90db2710330e4de Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Fri, 6 Oct 2017 09:35:20 -0300 Subject: [PATCH 150/157] Updates POT --- i18n/po/template.pot | 52 ++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index 01621c11c..577b475fe 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -48,7 +48,7 @@ msgid "A total of {{amountBelowFeeStr}} were excluded. These funds come from UTX msgstr "" #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:159 +#: www/views/tab-settings.html:156 msgid "About" msgstr "" @@ -152,7 +152,7 @@ msgstr "" msgid "Addresses With Balance" msgstr "" -#: www/views/tab-settings.html:152 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "" @@ -309,8 +309,8 @@ msgid "Backup all livenet wallets before using this function" msgstr "" #: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:123 msgid "Backup needed" msgstr "" @@ -357,12 +357,22 @@ msgstr "" msgid "Bitcoin Cash Support" msgstr "" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "" @@ -799,7 +809,7 @@ msgid "Create Shared Wallet" msgstr "" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "" @@ -896,7 +906,7 @@ msgid "Details" msgstr "" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "" @@ -1308,12 +1318,12 @@ msgstr "" msgid "Get news and updates from BitPay" msgstr "" -#: www/views/bitpayCard.html:49 +#: www/views/onboarding/welcome.html:8 +msgctxt "button" msgid "Get started" msgstr "" -#: www/views/onboarding/welcome.html:8 -msgctxt "button" +#: www/views/bitpayCard.html:49 msgid "Get started" msgstr "" @@ -1352,7 +1362,7 @@ msgstr "" #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" @@ -1394,7 +1404,7 @@ msgid "Help & Support" msgstr "" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "" @@ -1532,9 +1542,9 @@ msgid "Inactive" msgstr "" #: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 #: www/views/includes/walletSelector.html:16 -#: www/views/tab-home.html:88 -#: www/views/tab-settings.html:120 msgid "Incomplete" msgstr "" @@ -1567,6 +1577,10 @@ msgstr "" msgid "Insufficient funds for fee" msgstr "" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "" @@ -2002,7 +2016,7 @@ msgstr "" #: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "" @@ -2223,7 +2237,7 @@ msgstr "" msgid "Preparing backup..." msgstr "" -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "" @@ -2486,7 +2500,7 @@ msgstr "" msgid "Scanning Wallet funds..." msgstr "" -#: www/views/tab-home.html:93 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "" @@ -3338,7 +3352,7 @@ msgid "Wallet not found" msgstr "" #: src/js/controllers/cashScan.js:81 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "" @@ -3358,10 +3372,6 @@ msgstr "" msgid "Wallets" msgstr "" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "" - #: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 @@ -3541,9 +3551,9 @@ msgstr "" msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "" +#: www/views/includes/walletList.html:13 #: www/views/includes/walletSelector.html:21 #: www/views/paperWallet.html:33 -#: www/views/tab-home.html:95 #: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 From ee51ed0e019e0e4dde7b97fc5827696ad8c74be8 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Fri, 6 Oct 2017 10:13:49 -0300 Subject: [PATCH 151/157] add default to chrome target --- Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 049f8696e..1269ff7ea 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -267,7 +267,7 @@ module.exports = function(grunt) { grunt.registerTask('desktop', ['prod', 'nwjs', 'copy:linux', 'compress:linux']); grunt.registerTask('osx', ['prod', 'nwjs', 'exec:macos', 'exec:osxsign']); grunt.registerTask('osx-debug', ['default', 'nwjs']); - grunt.registerTask('chrome', ['exec:chrome']); + grunt.registerTask('chrome', ['default','exec:chrome']); grunt.registerTask('wp', ['prod', 'exec:wp']); grunt.registerTask('wp-copy', ['default', 'exec:wpcopy']); grunt.registerTask('wp-init', ['default', 'exec:wpinit']); From da81282143045192402ee95e1108bc527a08839b Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 9 Oct 2017 11:30:01 -0300 Subject: [PATCH 152/157] MeLi: Fix typos --- src/js/controllers/buyMercadoLibre.js | 12 ++++++------ www/views/buyMercadoLibre.html | 4 ++-- www/views/modals/mercadolibre-card-details.html | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/js/controllers/buyMercadoLibre.js b/src/js/controllers/buyMercadoLibre.js index 9df04fbc9..5ac73ac00 100644 --- a/src/js/controllers/buyMercadoLibre.js +++ b/src/js/controllers/buyMercadoLibre.js @@ -54,7 +54,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f var statusChangeHandler = function(processName, showName, isOn) { $log.debug('statusChangeHandler: ', processName, showName, isOn); - if (processName == 'Comprando Vale-presente' && !isOn) { + if (processName == 'Comprando Vale-Presente' && !isOn) { $scope.sendStatus = 'success'; $timeout(function() { $scope.$digest(); @@ -174,14 +174,14 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f $log.debug("creating gift card " + count); if (err) { $scope.sendStatus = ''; - ongoingProcess.set('Comprando Vale-presente', false, statusChangeHandler); + ongoingProcess.set('Comprando Vale-Presente', false, statusChangeHandler); giftCard = {}; giftCard.status = 'FAILURE'; } if (giftCard && giftCard.cardStatus && (giftCard.cardStatus != 'active' && giftCard.cardStatus != 'inactive' && giftCard.cardStatus != 'expired')) { $scope.sendStatus = ''; - ongoingProcess.set('Comprando Vale-presente', false, statusChangeHandler); + ongoingProcess.set('Comprando Vale-Presente', false, statusChangeHandler); giftCard = {}; giftCard.status = 'FAILURE'; } @@ -205,7 +205,7 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f newData['uuid'] = dataSrc.uuid; mercadoLibreService.savePendingGiftCard(newData, null, function(err) { - ongoingProcess.set('Comprando Vale-presente', false, statusChangeHandler); + ongoingProcess.set('Comprando Vale-Presente', false, statusChangeHandler); $log.debug("Saving new gift card with status: " + newData.status); $scope.mlGiftCard = newData; }); @@ -311,10 +311,10 @@ angular.module('copayApp.controllers').controller('buyMercadoLibreController', f return; } - ongoingProcess.set('Comprando Vale-presente', true, statusChangeHandler); + ongoingProcess.set('Comprando Vale-Presente', true, statusChangeHandler); publishAndSign($scope.wallet, createdTx, function() {}, function(err, txSent) { if (err) { - ongoingProcess.set('Comprando Vale-presente', false, statusChangeHandler); + ongoingProcess.set('Comprando Vale-Presente', false, statusChangeHandler); showError(gettextCatalog.getString('Could not send transaction'), err); return; } diff --git a/www/views/buyMercadoLibre.html b/www/views/buyMercadoLibre.html index f45d1cb32..69b1f4fd6 100644 --- a/www/views/buyMercadoLibre.html +++ b/www/views/buyMercadoLibre.html @@ -16,7 +16,7 @@
- Vales-Presente do Mercado Livre Brasil + Vale-Presente do Mercado Livre Brasil
{{amountUnitStr}}
@@ -39,7 +39,7 @@ Details
- Gift card + Gift Card {{amount | currency:'$ ':2}} {{currencyIsoCode}} diff --git a/www/views/modals/mercadolibre-card-details.html b/www/views/modals/mercadolibre-card-details.html index c051d3355..f0bf38b85 100644 --- a/www/views/modals/mercadolibre-card-details.html +++ b/www/views/modals/mercadolibre-card-details.html @@ -20,7 +20,7 @@
{{card.pin}}
From 790cfcfdd4fda97f74e7462d585417d27f1a090a Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 9 Oct 2017 11:31:52 -0300 Subject: [PATCH 153/157] Updates pot template --- i18n/po/template.pot | 10 +++++----- www/views/buyAmazon.html | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/po/template.pot b/i18n/po/template.pot index 577b475fe..926b7cd14 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -1335,16 +1335,16 @@ msgstr "" msgid "Getting fee levels..." msgstr "" +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "" diff --git a/www/views/buyAmazon.html b/www/views/buyAmazon.html index 36c436ee8..b1846aa55 100644 --- a/www/views/buyAmazon.html +++ b/www/views/buyAmazon.html @@ -40,7 +40,7 @@ Details
- Gift card + Gift Card {{amount | currency:'$ ':2}} {{currencyIsoCode}} From 9d3e93b12a159f9c2247e10d897c7160bed750aa Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 9 Oct 2017 16:55:21 -0300 Subject: [PATCH 154/157] Receive: wallets separated by coins --- src/sass/views/includes/walletSelector.scss | 11 ++++++ www/views/includes/walletSelector.html | 44 ++++++++++++++++++++- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/sass/views/includes/walletSelector.scss b/src/sass/views/includes/walletSelector.scss index a0b382f90..20753c309 100644 --- a/src/sass/views/includes/walletSelector.scss +++ b/src/sass/views/includes/walletSelector.scss @@ -7,6 +7,17 @@ wallet-selector { padding-right: .75rem; } + .subheader { + margin: 20px 0 10px 0; + font-weight: bold; + padding-bottom: 10px; + border-bottom: 1px solid #EFEFEF; + .wallet-coin-logo { + vertical-align: middle; + margin-right: 5px; + } + } + .wallet-selector { .wallet { border: 0; diff --git a/www/views/includes/walletSelector.html b/www/views/includes/walletSelector.html index 930c47fb1..e75685aa1 100644 --- a/www/views/includes/walletSelector.html +++ b/www/views/includes/walletSelector.html @@ -1,8 +1,48 @@ - +
{{title}}
+ + + + +
+ + Bitcoin Wallets +
+ +
+
+
+ {{wallet.name}} +
+

+ + Incomplete + + + {{wallet.status.availableBalanceStr}} + [Balance Hidden] + + +   +

+
+ +
+
+ +
+ + Bitcoin Cash Wallets +
+ From 56beae32706585ebad209e72fbe9da2816b878ad Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 10 Oct 2017 09:41:32 -0300 Subject: [PATCH 155/157] Removes title in some cases --- www/views/includes/walletSelector.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/includes/walletSelector.html b/www/views/includes/walletSelector.html index e75685aa1..c46608b24 100644 --- a/www/views/includes/walletSelector.html +++ b/www/views/includes/walletSelector.html @@ -1,10 +1,10 @@ -
{{title}}
+
{{title}}
From 53cadd350a42922ad1d16ca2184c370154caa686 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 10 Oct 2017 09:59:39 -0300 Subject: [PATCH 156/157] Update translations PO --- i18n/docs/appstore_nl.txt | 36 ++-- i18n/po/de.po | 315 ++++++++++++++++-------------- i18n/po/es.po | 315 ++++++++++++++++-------------- i18n/po/fr.po | 317 +++++++++++++++++-------------- i18n/po/it.po | 315 ++++++++++++++++-------------- i18n/po/ja.po | 377 ++++++++++++++++++++---------------- i18n/po/nl.po | 347 +++++++++++++++++++--------------- i18n/po/pl.po | 369 ++++++++++++++++++++---------------- i18n/po/pt.po | 329 ++++++++++++++++++-------------- i18n/po/ru.po | 315 ++++++++++++++++-------------- i18n/po/zh.po | 389 +++++++++++++++++++++----------------- 11 files changed, 1917 insertions(+), 1507 deletions(-) diff --git a/i18n/docs/appstore_nl.txt b/i18n/docs/appstore_nl.txt index aca04aa89..686cd3dbb 100644 --- a/i18n/docs/appstore_nl.txt +++ b/i18n/docs/appstore_nl.txt @@ -1,23 +1,23 @@ -Beveilig bitcoin op je eigen voorwaarden met een open source, multisignature rekening van BitPay. -Copay gebruikers kunnen individueel vermogen aanhouden of financiën veilig delen met andere gebruikers door gebruik te maken van een multisignature rekening, hiermee voorkom je niet-geautoriseerde betalingen doordat meerdere goedkeuringen nodig zijn. Hier zijn een aantal manieren waarop Copay gebruikt kan worden met anderen: +Beveilig bitcoin op je eigen voorwaarden met een open source, meervoudige ondertekening-portemonnee van BitPay. +Copay gebruikers kunnen individueel saldo beheren of veilig financiën delen met andere gebruikers door middel van portemonnees met meervoudige ondertekening, dit voorkomt ongeautoriseerde betalingen doordat meerdere goedkeuringen nodig zijn. Hier zijn een aantal manieren waarop Copay gebruikt kan worden met anderen: Om te sparen voor vakanties of gezamenlijke aankopen met vrienden -Voor het bijhouden van de familie uitgaven en vergoedingen -Voor het beheer van de fondsen en kosten van een bedrijf, club of organisatie +Voor het bijhouden van de familieuitgaven en zakgeld +Voor het beheer van het saldo en de uitgaven van een bedrijf, club of organisatie -Wij hebben de volgende functies ingebouwd in deze versie van Copay voor een bitcoin-wallet die geen concessies doet op het gebied van beveiliging en toegankelijkheid: +We hebben de volgende functies ingebouwd in deze versie van Copay voor een bitcoin portemonnee die niet inlevert op beveiliging of toegankelijkheid: -Het creëren van meerdere rekeningen beheer in de app -Intuïtieve multisignature beveiliging voor persoonlijke of gedeelde rekeningen -Eenvoudig uitgaven voorstellen voor gedeelde rekeningen en groep betalingen -Hiërarchische deterministische (HD) adres generatie en rekening back-ups -Apparaat gebaseerde beveiliging: alle persoonlijke sleutels zijn lokaal opgeslagen, niet in de cloud -Ondersteuning voor Bitcoin testnet rekeningen -Synchroniseert toegang tot alle grote mobiele en desktop platforms -Betaling-protocolondersteuning (BIP70-BIP73): gemakkelijk identificeerbare betalingsaanvragen en verifieerbare veilige bitcoin betalingen -Ondersteuning voor 150 + valuta prijsopties en eenheid denominatie in BTC of bits -E-mailberichten voor betalingen en transfers -Aanpasbare rekeningen naamgeving en achtergrond kleuren -9 ondersteunde talen (NL, CS, FR, DE, het, ES, JA, PL, RU) +Het aanmaken en beheren van meerdere portemonnees binnen de app +Intuïtieve meervoudige-ondertekening beveiliging voor persoonlijke of gedeelde portemonnees +Eenvoudige bestedingsvoorstellen voor gedeelde portemonnees en groepsbetalingen +Hiërarchisch deterministische (HD) adres generatie en portemonnee backups +Apparaat gebaseerde beveiliging: alle privé sleutels worden lokaal opgeslagen, niet in de cloud +Ondersteuning voor Bitcoin testnet portemonnees +Gesynchroniseerde toegang vanaf alle grote mobiele en desktop platformen +Ondersteuning voor betalings protocol (BIP70-BIP73): gemakkelijk te herkennen betalingsverzoeken en verifieerbaar veilige bitcoin betalingen +Ondersteuning voor prijsweergave in 150+ valuta's en eenheid denominatie in BTC of bits +Email meldingen voor betalingen en overdrachten +Aanpasbare portemonnee namen en achtergrond kleuren +10 ondersteunde talen (EN, CZ, FR, DE, IT, ES, JA, PL, RU, NL) -Copay is gratis en open sourcesoftware draaiend op niet-merkgebonden servers, dus er is geen noodzaak om te vertrouwen op een bedrijf voor ondersteuning. Iedereen kan bijdragen aan Copay door de broncode op te vragen via GitHub (https://github.com/bitpay/copay). +Copay is gratis open source software draaiend op niet-merkgebonden servers, dus het is niet nodig te vertrouwen op enig bedrijf voor blijvende ondersteuning. Iedereen kan de broncode van Copay inzien of er aan bijdragen via GitHub (https://github.com/bitpay/copay). diff --git a/i18n/po/de.po b/i18n/po/de.po index 6c9d3b541..8d676f6b6 100644 --- a/i18n/po/de.po +++ b/i18n/po/de.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: German\n" "Language: de\n" -"PO-Revision-Date: 2017-09-19 14:07-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Vertraut)" msgid "(possible double spend)" msgstr "(mögliche Doppelausgabe)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Ein Zahlungsvorschlag kann gelöscht werden, wenn 1) Du diesen erzeugt hast und noch kein anderer Copayer unterschrieben hat, oder 2) 24 Stunden vergangen sind, seit der Vorschlag erstellt wurde." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}}ของธุรกรรม" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "" @@ -48,16 +48,16 @@ msgstr "" msgid "A member of the team will review your feedback as soon as possible." msgstr "Ein Mitarbeiter wird Ihr Feedback so bald wie möglich überprüfen." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Insgesamt wurden {{amountAboveMaxSizeStr}} ausgeschlossen. Die maximale Größe für eine Transaktion wurde überschritten." -#: src/js/controllers/confirm.js:374 +#: 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 "Insgesamt wurden {{amountBelowFeeStr}} ausgeschlossen. Diese Gelder stammen aus UTXOs, die kleiner sind als die Netzwerkgebühr." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "Über" @@ -102,7 +102,7 @@ msgstr "Kontakt hinzufügen" msgid "Add Funds" msgstr "Guthaben aufladen" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Notiz hinzufügen" @@ -126,7 +126,7 @@ msgstr "Ein optionales Passwort zur Sicherung der Wiederherstellungsphrase hinzu msgid "Add as a contact" msgstr "" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Beschreibung hinzufügen" @@ -161,7 +161,7 @@ msgstr "Adresstyp" msgid "Addresses With Balance" msgstr "Adressen mit Guthaben" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Erweitert" @@ -216,7 +216,7 @@ msgstr "Betrag" msgid "Amount below minimum allowed" msgstr "Betrag unter zulässigem Minimum" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Betrag zu hoch" @@ -248,7 +248,7 @@ msgstr "Werden Sie beobachtet? Jeder der Ihre Wiederherstellungsphrase kennt, ka msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Wollen Sie wirklich abbrechen und dieses Wallet löschen?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "" @@ -301,8 +301,8 @@ msgstr "Durchschnittliche Bestätigungzeit" msgid "BIP32 path for address derivation" msgstr "BIP32 Pfad für die Adressen-Ableitung" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Backup wird benötigt" msgid "Backup all livenet wallets before using this function" msgstr "Sichern Sie alle Livenet Wallets, bevor Sie diese Funktion nutzen" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Backup benötigt" @@ -335,7 +336,7 @@ msgstr "Sicherung der Wallet" msgid "Backup your wallet before using this function" msgstr "Sichern Sie ihr Wallet, bevor Sie diese Funktion nutzen" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Ungültige Einladung" @@ -365,12 +366,22 @@ msgstr "" msgid "Bitcoin Cash Support" msgstr "" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Bitcoin-Netzwerk Gebührenübersicht" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "" @@ -444,7 +455,7 @@ msgstr "Mining-Fee Berechnung" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "" msgid "Cannot Create Wallet" msgstr "Wallet kann nicht erstellt werden" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "An einem Wallet kann nicht mehrfach teilgenommen werden" @@ -497,7 +508,7 @@ msgstr "Wählen Sie Ihre Ziel-Wallet" msgid "Choose your source wallet" msgstr "Wählen Sie Ihre Quell-Wallet" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Leeren" @@ -505,16 +516,16 @@ msgstr "Leeren" msgid "Clear cache" msgstr "Cache leeren" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "" @@ -552,11 +563,11 @@ msgstr "" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Bestätigen & Beenden" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "" @@ -580,7 +590,7 @@ msgstr "PIN bestätigen" msgid "Confirm your new spending password" msgstr "Bestätigen Sie Ihr neues Passwort" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Bestätigungen" @@ -617,6 +627,10 @@ msgstr "Weiter" msgid "Contribute Translations" msgstr "Übersetzungen beitragen" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer nimmt bereits teil" @@ -667,11 +681,11 @@ msgstr "Kein Zugriff auf Wallet des Servers. Überprüfen Sie bitte:" msgid "Could not access to Amazon.com" msgstr "" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Auf Wallet konnte nicht zugegriffen werden" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Nachricht kann nicht an die importierte Wallet hinzugefügt werden ohne einem gemeinsamen Verschlüsselungsschlüssel" @@ -697,15 +711,15 @@ msgstr "" msgid "Could not create transaction" msgstr "" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Erzeugung mit erweiterten privaten Schlüssel nicht möglich" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Erzeugung mit dem angegebenen erweiterten öffentlichen Schlüssel nicht möglich" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Wallet-Wiederherstellungsphrase nicht gültig" @@ -717,7 +731,7 @@ msgstr "Datei konnte nicht entschlüsselt werden, bitte das Passwort überprüfe msgid "Could not delete payment proposal" msgstr "Zahlungsvorschlag konnte nicht gelöscht werden" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "" @@ -743,17 +757,17 @@ msgstr "" msgid "Could not get transactions" msgstr "Transaktionen konnten nicht gefunden werden" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Import nicht möglich" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Import nicht möglich. Bitte Datei und Berechtigungscode überprüfen" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Beteiligung am Wallet nicht möglich" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Erstelle eine gemeinsame Wallet" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Erstelle Bitcoin-Wallet" @@ -821,8 +835,8 @@ msgstr "Erstelle gemeinsame Wallet" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Ein {{formData.requiredCopayers}}-von-{{formData.totalCopayers}} Wallet erzeugen" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Erstellt von" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Datum" @@ -861,7 +875,7 @@ msgstr "Datum" msgid "Delete" msgstr "Löschen" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Zahlungsvorschlag löschen" @@ -901,7 +915,7 @@ msgid "Details" msgstr "" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Deaktiviert" @@ -924,7 +938,7 @@ msgstr "Wird deine Sprache auf Crowdin nicht angezeigt? Kontaktiere den Support msgid "Download" msgstr "Herunterladen" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "" @@ -1012,14 +1026,14 @@ msgstr "Wiederherstellungsphrase eingeben (BIP39)" msgid "Enter your email" msgstr "" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Passwort eingeben" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Passwort eingeben" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Passwort eingeben" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Passwort eingeben" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Passwort eingeben" msgid "Error" msgstr "Fehler" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Fehler beim bestätigen" @@ -1108,11 +1122,11 @@ msgstr "" msgid "Error creating the invoice" msgstr "" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Fehler beim Erstellen des Wallets" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "" @@ -1142,16 +1156,16 @@ msgstr "Fehler beim Aktualisieren der Debitkarten" msgid "Exceeded daily limit of $500 per user" msgstr "Tageslimit von $500 pro Benutzer überschritten" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Abgelaufen" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Gültig bis" @@ -1194,7 +1208,7 @@ msgstr "Fehler beim Exportieren" msgid "Family vacation funds" msgstr "Familienurlaub" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Gebühr" @@ -1206,8 +1220,8 @@ msgstr "" msgid "Fee level is not defined" msgstr "" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "" @@ -1281,7 +1295,7 @@ msgstr "Betrag gefunden:" msgid "Funds to be added" msgstr "" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Betrag übermittelt" @@ -1330,16 +1344,16 @@ msgstr "Starten Sie indem Sie ihr erstes hinzufügen." msgid "Getting fee levels..." msgstr "Entgelt-Level werden abgerufen..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "" @@ -1350,18 +1364,20 @@ msgstr "" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Zurück" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Hilfe & Support" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Hilfe und Support-Informationen gibt es auf der Website." @@ -1476,7 +1492,7 @@ msgstr "Ich verstehe, dass wenn diese App auf ein anderes Gerät verschoben oder msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Ich verstehe, dass mein Geld auf diesem Gerät und nicht von einem Unternehmen gesichert wird." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Ich habe es aufgeschrieben" @@ -1525,7 +1541,7 @@ msgstr "Wallet importieren" msgid "Importing Wallet..." msgstr "Wallet wird importiert..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Um die Sicherung der Wallet zu überprüfen, geben Sie bitte Ihr Passwort ein." @@ -1534,10 +1550,10 @@ msgstr "Um die Sicherung der Wallet zu überprüfen, geben Sie bitte Ihr Passwor msgid "Inactive" msgstr "" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Unvollständig" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Nicht ausreichendes Guthaben" @@ -1570,6 +1586,10 @@ msgstr "Nicht ausreichendes Guthaben" msgid "Insufficient funds for fee" msgstr "Nicht ausreichendes Guthaben für die Gebühr" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Ungültig" @@ -1613,7 +1633,7 @@ msgstr "" msgid "Is there anything we could do better?" msgstr "Gibt es etwas, das wir besser machen können?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Ist das richtig?" @@ -1663,13 +1683,14 @@ msgstr "Sprache" msgid "Last Month" msgstr "Letzter Monat" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Überprüfen Sie Ihre Wiederherstellungsphrase." @@ -1741,8 +1762,8 @@ msgstr "Meh - ist in Ordnung" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Notiz" @@ -1754,7 +1775,7 @@ msgstr "" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "" -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Händlernachricht" @@ -1888,15 +1909,19 @@ msgstr "Kein Wallet ausgewählt" msgid "No wallets available" msgstr "" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Keine Wallet verfügbar um Guthaben zu erhalten" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "" @@ -1908,7 +1933,7 @@ msgstr "Normal" msgid "Not authorized" msgstr "Nicht berechtigt" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Das Guthaben reicht nicht für die Gebühr" @@ -1929,6 +1954,10 @@ msgstr "Nicht jetzt" msgid "Note" 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 "" + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Hinweis: nur 1-1 (Einzelunterschrift) Wallets können verwendet werden um Bitcoins zu verkaufen" @@ -1942,7 +1971,7 @@ msgstr "Benachrichtigungen" msgid "Notifications by email" msgstr "" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Auf diesem Bildschirm sehen Sie alle Ihre Wallets, Konten und Guthaben." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Öffnen" @@ -2033,6 +2063,10 @@ msgstr "Öffne Website" msgid "Open bitcoincash.org?" msgstr "" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "" + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Öffne Wallet" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Zahlung abgelehnt" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Zahlung akzeptiert. Sie wird durch Glidera übermittelt. Falls ein Probl msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Zahlungsdetails" @@ -2154,11 +2188,11 @@ msgstr "Anstehende Vorschläge" msgid "Permanently delete this wallet." msgstr "Wallet dauerhaft löschen." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Persönliches Wallet" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Notieren Sie bitte sorgfältig diese Phrase." @@ -2166,7 +2200,7 @@ msgstr "Notieren Sie bitte sorgfältig diese Phrase." msgid "Please connect a camera to get started." msgstr "Bitte verbinden Sie eine Kamera um loszulegen." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Bitte geben Sie die Wiederherstellungsphrase ein" @@ -2179,7 +2213,7 @@ msgstr "Bitte geben Sie die Wallet-Wiederherstellungsphrase ein" msgid "Please enter your PIN" msgstr "Bitte geben Sie Ihre PIN ein" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Bitte tippen Sie jedes Wort in der richtigen Reihenfolge." @@ -2212,7 +2246,7 @@ msgstr "Adressen werden vorbereitet..." msgid "Preparing backup..." msgstr "Sicherung wird vorbereitet..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Zum Beenden erneut drücken" @@ -2238,7 +2272,7 @@ msgstr "Vorschlag angenommen" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Vorschlag erstellt" @@ -2300,12 +2334,16 @@ msgstr "Mehr anzeigen" msgid "Read more in our Wiki" msgstr "" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Empfangen" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "" @@ -2463,7 +2501,7 @@ msgstr "" msgid "Scan your fingerprint please" msgstr "Scannen Sie bitte Ihren Fingerabdruck" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "" @@ -2471,7 +2509,7 @@ msgstr "" msgid "Scanning Wallet funds..." msgstr "Prüfe Wallet auf neue Beträge..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "" @@ -2544,7 +2582,7 @@ msgstr "Adressen per e-Mail versenden" msgid "Send by email" msgstr "Per E-Mail versenden" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Senden von" @@ -2583,7 +2621,7 @@ msgstr "Sende maximalen Betrag" msgid "Sending transaction" msgstr "Sende Transaktion" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Sende {{amountStr}} aus Ihrer Wallet {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Wallet mit einer einzigen Adresse" msgid "Skip" msgstr "Überspringen" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "" +#: 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 "" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Diese App ist fantastisch!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Diese App speichert Ihre Bitcoins mit modernster Sicherheit." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Diese Bitcoin Zahlungsaufforderung ist abgelaufen." @@ -2944,15 +2985,15 @@ msgstr "Diese Bitcoin Zahlungsaufforderung ist abgelaufen." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Dieses Passwort kann nicht wiederhergestellt werden. Wenn das Passwort verloren gegangen ist gibt es keine Möglichkeit mehr Ihr Geld zurück zu holen." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Diese Wiederherstellungsphrase entstand mit einem Passwort. Zur Wiederherstellung der Wallet sind die Wiederherstellungsphrase und das Passwort erforderlich." -#: www/views/tx-details.html:93 +#: 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 "" -#: www/views/tx-details.html:89 +#: 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" msgstr "Die Bestätigung dieser Transaktion kann sehr lange dauern oder verworfen werden, da vom Absender nur geringe Gebühren eingestellt wurden" @@ -2961,14 +3002,14 @@ msgstr "Die Bestätigung dieser Transaktion kann sehr lange dauern oder verworfe msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Dieses Wallet ist nicht beim angegebenen Bitcore Wallet Service (BWS) registriert. Bitte aus den lokalen Informationen wiederherstellen" -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Zeitachse" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Touch-ID gescheitert" msgid "Transaction" msgstr "Transaktion" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "" @@ -3083,7 +3124,7 @@ msgstr "Wiederherstellungsphrase eingeben (in der Regel 12 Wörter)" msgid "Uh oh..." msgstr "Uh oh..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Unbestätigt" @@ -3157,7 +3198,7 @@ msgstr "Transaktionen auf Insight anzeigen" msgid "View Update" msgstr "Aktualisierungen anzeigen" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Auf blockchain anzeigen" @@ -3277,7 +3318,7 @@ msgstr "Wallet-Typ" msgid "Wallet already exists" msgstr "Wallet exstiert bereits" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "" @@ -3319,8 +3360,8 @@ msgstr "Wallet nicht gesichert" msgid "Wallet not found" msgstr "Wallet nicht gefunden" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Wallet nicht registriert" @@ -3328,9 +3369,9 @@ msgstr "Wallet nicht registriert" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Wallet ist nicht beim Wallet-Service registiert. Neu erzeugen mit \"Neues Wallet erzeugen\" und \"Erweiterte Optionen\" um die Wiederherstellungsphrase anzugeben" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Wiederherstellungsphrase für die Wallet nicht verfügbar." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Wallet-Dienst nicht gefunden" msgid "Wallets" msgstr "Wallets" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Wallets & Integrationen" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Aufgepasst!" msgid "We'd love to do better." msgstr "Wir würden es gerne besser machen." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Wir werden es auf der nächsten Seite bestätigen." @@ -3409,7 +3446,7 @@ msgstr "Wären Sie bereit {{appName}} im App Store zu bewerten?" msgid "Would you like to receive push notifications about payments?" msgstr "Möchten Sie Push-Benachrichtigungen über Zahlungen erhalten?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Falsche Anzahl von Wiederherstellungswörtern:" @@ -3445,7 +3482,7 @@ msgstr "Sie können auf GitHub die neuesten Entwicklungen ansehen und zu dieser msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Sie können Bitcoins auf Millionen von Webseiten und Shops weltweit ausgeben." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Sie können es auch exportieren aus dem Erweiterten > Export." @@ -3523,10 +3560,10 @@ msgstr "Ihre Wallet wird nie auf einem Cloud-Speicher oder einer Standard-Gerät msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "Ihre Wallet wird verschlüsselt. Der Berechtigungscode kann nicht wiederhergestellt werden. Achten Sie darauf ihn aufzuschreiben." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "Ihre BitPay Visa Karte(n) hinzufügen" msgid "locked by pending payments" msgstr "durch ausstehende Zahlungen gesperrt" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "Ich" @@ -3557,6 +3594,10 @@ msgstr "name@beispiel.com" msgid "preparing..." msgstr "in Arbeit..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "" + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" @@ -3569,11 +3610,11 @@ msgstr "" 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)." msgstr "{{appName}} hängt von Bitcore Wallet Service (BWS) ab bezüglich Blockchain Informationen, Vernetzung und Copayer Synchronisation. Die Standard Konfiguration verweist auf https://bws.bitpay.com (BitPays öffentlicher BWS Instanz)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} wird für Bitcoin-Netzwerkgebühren abgezogen werden." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" @@ -3581,7 +3622,7 @@ msgstr "" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} Transaktionen werden heruntergeladen" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/es.po b/i18n/po/es.po index fad8e7ae0..3510c1aad 100644 --- a/i18n/po/es.po +++ b/i18n/po/es.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Spanish\n" "Language: es\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-10 08:58-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(De confianza)" msgid "(possible double spend)" msgstr "(Posible doble gasto)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Una propuesta de pago puede ser eliminada si 1) Tú eres el creador, y ningún otro copayer la haya firmado, o 2) hayan transcurrido 24 horas desde la creación de la propuesta." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}} de la transacción" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}} de la transacción" @@ -48,16 +48,16 @@ msgstr "Solo canjeable en Mercado Livre (Brasil)" msgid "A member of the team will review your feedback as soon as possible." msgstr "Un miembro del equipo revisará tus comentarios tan pronto como sea posible." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Se excluyeron un total de {{amountAboveMaxSizeStr}}. Fue excedido el tamaño máximo permitido para una transacción." -#: src/js/controllers/confirm.js:374 +#: 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 "Se excluyeron un total de {{amountBelowFeeStr}}. Estos fondos provienen del UTXOs más pequeños que la comisión de red provista." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "Acerca de" @@ -102,7 +102,7 @@ msgstr "Agregar contacto" msgid "Add Funds" msgstr "Añadir fondos" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Añadir nota" @@ -126,7 +126,7 @@ msgstr "Agregar una contraseña opcional para asegurar la frase de recuperación msgid "Add as a contact" msgstr "Agregar como Contacto" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Añadir descripción" @@ -161,7 +161,7 @@ msgstr "Tipo de dirección" msgid "Addresses With Balance" msgstr "Direcciones con fondos" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Avanzado" @@ -216,7 +216,7 @@ msgstr "Importe" msgid "Amount below minimum allowed" msgstr "Cantidad por debajo del mínimo permitido" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Monto demasiado grande" @@ -248,7 +248,7 @@ msgstr "¿Estás siendo observado? Cualquier persona con tu copia de seguridad p msgid "Are you sure you want to cancel and delete this wallet?" msgstr "¿Estás seguro de cancelar y borrar esta billetera?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "¿Está seguro de que desea eliminar este contacto?" @@ -301,8 +301,8 @@ msgstr "Tiempo promedio de confirmación" msgid "BIP32 path for address derivation" msgstr "BIP32 para el camino de derivación de direcciones" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "Billeteras BTC" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Se necesita copia de seguridad" msgid "Backup all livenet wallets before using this function" msgstr "Debes respaldar todas tus billeteras para utilizar esta función" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Necesita respaldar" @@ -335,7 +336,7 @@ msgstr "Respaldar" msgid "Backup your wallet before using this function" msgstr "Respalda tu billetera para utilizar esta función" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Invitación incorrecta a la billetera" @@ -365,12 +366,22 @@ msgstr "Saldos Bitcoin Cash (BCH)" msgid "Bitcoin Cash Support" msgstr "Soportar Bitcoin Cash" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "Billeteras Bitcoin Cash" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Política de Comisión de la Red Bitcoin" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "Billeteras Bitcoin" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "Pago en Bitcoin cash" @@ -444,7 +455,7 @@ msgstr "Calculando comisión" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Cancelar invitación" msgid "Cannot Create Wallet" msgstr "No se pudo crear la billetera" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "No puede unirse a la misma billetera más de una vez" @@ -497,7 +508,7 @@ msgstr "Elegir billetera destino" msgid "Choose your source wallet" msgstr "Elegir billetera de origen" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Anular" @@ -505,16 +516,16 @@ msgstr "Anular" msgid "Clear cache" msgstr "Limpiar cache" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Click para aceptar" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Click para pagar" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Click para enviar" @@ -552,11 +563,11 @@ msgstr "Terminadas" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Confirmar y terminar" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Confirmar compra" @@ -580,7 +590,7 @@ msgstr "Confirma tu PIN" msgid "Confirm your new spending password" msgstr "Confirme su contraseña para enviar" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Confirmaciones" @@ -617,6 +627,10 @@ msgstr "Continuar" msgid "Contribute Translations" msgstr "Contribuir" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay sólo soporta Bitcoin Cash utilizando la nueva versión de direcciones" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Ya se encuentra en esta billetera" @@ -667,11 +681,11 @@ msgstr "No se pudo acceder a la billetera desde el servidor. Por favor verificar msgid "Could not access to Amazon.com" msgstr "No se pudo acceder a Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "No se pudo acceder a la billetera" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "No se puede agregar mensajes a una billetera importada sin la clave cifrada compartida" @@ -697,15 +711,15 @@ msgstr "No se pudo crear la factura" msgid "Could not create transaction" msgstr "No se pudo crear la transacción" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "No se pudo crear la billetera usando la clave privada ingresada" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "No se pudo crear con la clave pública extendida especificada" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "No se pudo crear: frase de recuperación inválida" @@ -717,7 +731,7 @@ msgstr "No se pudo descifrar el archivo, verifique su contraseña" msgid "Could not delete payment proposal" msgstr "No se pudo eliminar la propuesta de pago" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "No se pudo duplicar" @@ -743,17 +757,17 @@ msgstr "No se pudo obtener la factura" msgid "Could not get transactions" msgstr "No se pudo obtener las transacciones" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "No se pudo importar" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "No se pudo importar. Verifique el archivo y la contraseña para pagos" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "No se pudo unir a la billetera" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Crear billetera compartida" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Crear billetera" @@ -821,8 +835,8 @@ msgstr "Crear billetera compartida" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Crear billetera {{formData.requiredCopayers}}-de-{{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Creado por" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Comisión personalizada" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Fecha" @@ -861,7 +875,7 @@ msgstr "Fecha" msgid "Delete" msgstr "Eliminar" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Eliminar Propuesta de Pago" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Detalles" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Deshabilitado" @@ -924,7 +938,7 @@ msgstr "¿No ves tu idioma en Crowdin? Contacta con el encargado del proyecto! N msgid "Download" msgstr "Descargar" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "Duplicar a BCH" @@ -1012,14 +1026,14 @@ msgstr "Introduce la frase de recuperación (BIP39)" msgid "Enter your email" msgstr "Ingresa tu correo electrónico" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Ingrese su contraseña" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Ingrese su contraseña" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Ingrese su contraseña" msgid "Error" msgstr "Error" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Error al confirmar" @@ -1108,11 +1122,11 @@ msgstr "Error al crear tarjeta de regalo" msgid "Error creating the invoice" msgstr "Error al crear la factura" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Error al crear billetera" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Error al obtener información de SendMax" @@ -1142,16 +1156,16 @@ msgstr "Error al actualizar las tarjetas de débito" msgid "Exceeded daily limit of $500 per user" msgstr "Se excedió el limite de $500 por usuario" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Expirada" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Expira" @@ -1194,7 +1208,7 @@ msgstr "Error al exportar" msgid "Family vacation funds" msgstr "Fondos para vacaciones en familia" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Comisión" @@ -1206,8 +1220,8 @@ msgstr "Nivel de comisión" msgid "Fee level is not defined" msgstr "El nivel de comisión no esta definido" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Comisión:" @@ -1281,7 +1295,7 @@ msgstr "Fondos encontrados:" msgid "Funds to be added" msgstr "Fondos a agregar" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Fondos transferidos" @@ -1330,16 +1344,16 @@ msgstr "Comienza agregando el primero." msgid "Getting fee levels..." msgstr "Obteniendo niveles de comisión..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "Tarjeta de Regalo" + #: 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 "La Tarjeta de Regalo ya no esta disponible para usar" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Tarjeta de regalo" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "La tarjeta de regalo expiró" @@ -1350,18 +1364,20 @@ msgstr "Tarjeta de regalo generada y lista para usar." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Volver" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Ayuda & Soporte" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "La ayuda está disponible en el sitio web." @@ -1476,7 +1492,7 @@ msgstr "Entiendo que si esta aplicación es borrada, mis fondos pueden recuperar msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Entiendo que mis fondos están protegidos por el dispositivo y no por una empresa." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Ya he anotado" @@ -1525,7 +1541,7 @@ msgstr "Importar billetera" msgid "Importing Wallet..." msgstr "Importando billetera..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Para verificar la copia de seguridad de la billetera, por favor escriba la contraseña." @@ -1534,10 +1550,10 @@ msgstr "Para verificar la copia de seguridad de la billetera, por favor escriba msgid "Inactive" msgstr "Inactivo" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Incompleta" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Dirección de red incorrecta" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Fondos insuficientes" @@ -1570,6 +1586,10 @@ msgstr "Fondos insuficientes" msgid "Insufficient funds for fee" msgstr "Fondos insuficientes para el pago de la comisión" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "Integraciones" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Inválido" @@ -1613,7 +1633,7 @@ msgstr "Factura vencida" msgid "Is there anything we could do better?" msgstr "¿Hay algo que podríamos mejorar?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "¿Es correcto?" @@ -1663,13 +1683,14 @@ msgstr "Idioma" msgid "Last Month" msgstr "Mes pasado" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "Más información" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Verifiquemos la copia de seguridad." @@ -1741,8 +1762,8 @@ msgstr "Buu - está bien" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Nota" @@ -1754,7 +1775,7 @@ msgstr "Tarjetas de Regalo Mercado Livre Brasil" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Mercadolibre Gift Card Service no esta disponible en este momento. Por favor, inténtelo más tarde." -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Mensaje del comerciante" @@ -1888,15 +1909,19 @@ msgstr "No se seleccionó una billetera" msgid "No wallets available" msgstr "No hay billeteras disponibles" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "No hay billeteras disponibles para recibir fondos" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "No hay billeteras elegibles para soporte a Bitcoin Cash" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "Billetera no BIP44" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "Billeteras BTC no elegibles" @@ -1908,7 +1933,7 @@ msgstr "Normal" msgid "Not authorized" msgstr "No autorizado" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "No hay suficientes fondos para la comisión" @@ -1929,6 +1954,10 @@ msgstr "Ahora no" msgid "Note" msgstr "Nota" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "Nota: Si esta billetera BCH fue duplicada desde una billetera BTC, entonces comparten la misma frase de recuperación." + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Aviso: solo billeteras 1-1 (única firma) pueden ser utilizadas para vender bitcoin" @@ -1942,7 +1971,7 @@ msgstr "Notificaciones" msgid "Notifications by email" msgstr "Notificaciones por correo electrónico" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Notificarme si se confirma" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "En esta pantalla puedes ver tus billeteras, cuentas y activos." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Abrir" @@ -2033,6 +2063,10 @@ msgstr "Abrir Sitio Web" msgid "Open bitcoincash.org?" msgstr "¿Abrir bitcoincash.org?" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "Abrir herramienta de recuperación." + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Abrir billetera" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Pago Rechazado" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Pago aceptado. Se transmitirá por Glidera. En caso de que haya un probl msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "La dirección de pago fue traducida al nuevo formato de Bitcoin Cash:" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Detalles del pago" @@ -2154,11 +2188,11 @@ msgstr "Propuestas de pago pendientes" msgid "Permanently delete this wallet." msgstr "Eliminar esta billetera de forma permanente." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Billetera Personal" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Por favor, anota cuidadosamente esta frase." @@ -2166,7 +2200,7 @@ msgstr "Por favor, anota cuidadosamente esta frase." msgid "Please connect a camera to get started." msgstr "Por favor, conecta una cámara para empezar." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Por favor ingresa la frase de recuperación" @@ -2179,7 +2213,7 @@ msgstr "Por favor ingresa la frase de recuperación de la billetera" msgid "Please enter your PIN" msgstr "Ingresá tu PIN" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Escoje las palabras en el orden correcto." @@ -2212,7 +2246,7 @@ msgstr "Preparando direcciones..." msgid "Preparing backup..." msgstr "Preparando copia de seguridad..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Presione nuevamente para salir" @@ -2238,7 +2272,7 @@ msgstr "Propuesta Aceptada" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Propuesta Creada" @@ -2300,12 +2334,16 @@ msgstr "Leer más" msgid "Read more in our Wiki" msgstr "Lee más en nuestra Wiki" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "Billetera solo lectura" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Recibir" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "Recibir en" @@ -2463,7 +2501,7 @@ msgstr "Escanear de nuevo" msgid "Scan your fingerprint please" msgstr "Por favor ingrese su huella digital" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "Explora tus billeteras para Bitcoin Cash" @@ -2471,7 +2509,7 @@ msgstr "Explora tus billeteras para Bitcoin Cash" msgid "Scanning Wallet funds..." msgstr "Buscando fondos en la billetera..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "Buscando fondos..." @@ -2544,7 +2582,7 @@ msgstr "Enviar las direcciones por email" msgid "Send by email" msgstr "Enviar por correo electrónico" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Enviar desde" @@ -2583,7 +2621,7 @@ msgstr "Enviando cantidad máxima" msgid "Sending transaction" msgstr "Enviando transacción" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Enviando {{amountStr}} desde tu billetera {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Billetera de una sola dirección" msgid "Skip" msgstr "Omitir" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "Deslizar para aceptar" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Deslizar para comprar" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "Deslizar para pagar" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "Deslizar para enviar" +#: 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 "Algunas de sus billeteras no pueden ser seleccionadas para darle soporte Bitcoin Cash. Pruebe acceder a sus fondos BCH utilizando la" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "¡Esta aplicación es fantástica!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Esta aplicación almacena tus bitcoins con seguridad avanzada." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Esta solicitud de pago ha caducado." @@ -2944,15 +2985,15 @@ msgstr "Esta solicitud de pago ha caducado." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Esta contraseña no se puede recuperar. Si la pierdes, no hay manera de que puedas recuperar los fondos." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Esta frase de recuperación fue creada con una contraseña. Para recuperar esta billetera, la frase de recuperación y la contraseña son necesarios." -#: www/views/tx-details.html:93 +#: 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 "Este monto en la transacción es demasiado bajo comparado con las comisiones de la red Bitcoin. Para gastar estos fondos se requiere disponer de un monto superior a la comisión requerida por la red Bitcoin." -#: www/views/tx-details.html:89 +#: 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" msgstr "Esta transacción podría tardar mucho tiempo en confirmar o podría caer debido a la baja comisión establecida por el remitente" @@ -2961,14 +3002,14 @@ msgstr "Esta transacción podría tardar mucho tiempo en confirmar o podría cae msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Esta billetera no está registrada en el servidor de Bitcore Wallet Service (BWS). Debes re-crearla con la información local disponible." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Línea de tiempo" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Falló Touch ID" msgid "Transaction" msgstr "Transacción" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transacción creada" @@ -3083,7 +3124,7 @@ msgstr "Escribe la frase de recuperación (normalmente 12 palabras)" msgid "Uh oh..." msgstr "Ouch..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Sin confirmar" @@ -3157,7 +3198,7 @@ msgstr "Ver Transacción en Insight" msgid "View Update" msgstr "Ver Actualización" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Ver en blockchain" @@ -3277,7 +3318,7 @@ msgstr "Tipo de billetera" msgid "Wallet already exists" msgstr "La billetera ya existe" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "El monedero ya existe en {{appName}}" @@ -3319,8 +3360,8 @@ msgstr "Billetera sin copia de seguridad" msgid "Wallet not found" msgstr "Billetera no encontrada" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Billetera no registrada" @@ -3328,9 +3369,9 @@ msgstr "Billetera no registrada" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "La billetera no esta registrado en Wallet Service. Para volver a crear, utilice \"Crear billetera\", \"Opciones avanzadas\" e ingrese la frase de recuperación" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Frase de recuperación de la billetera no disponible." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "Frase de recuperación de la billetera no disponible" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Wallet Service no encontrado" msgid "Wallets" msgstr "Billeteras" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Billeteras & Integraciones" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "¡Cuidado!" msgid "We'd love to do better." msgstr "Nos encantaría hacerlo mejor." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Se confirmará en la siguiente pantalla." @@ -3409,7 +3446,7 @@ msgstr "¿Estaría usted dispuesto a opinar sobre {{appName}} en la app store?" msgid "Would you like to receive push notifications about payments?" msgstr "¿Quieres recibir notificaciones push sobre sus transacciones?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Número incorrecto de palabras:" @@ -3445,7 +3482,7 @@ msgstr "Puede ver las últimas novedades y contribuir a nuestra aplicación de c msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Puedes utilizar bitcoin en millones de páginas web y tiendas en todo el mundo." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Todavía puede exportar en Avanzados > Exportar." @@ -3523,10 +3560,10 @@ msgstr "Tu billetera nunca se sube a la nube ni se resguarda automáticamente en msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "La clave de la billetera será cifrada. La contraseña para pagos no puede ser recuperada. Asegúrate de anotarla." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "agregar sus tarjetas BitPay Visa" msgid "locked by pending payments" msgstr "bloqueado por pagos pendientes" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "yo" @@ -3557,6 +3594,10 @@ msgstr "nombre@ejemplo.com" msgid "preparing..." msgstr "preparando..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "herramienta de recuperación." + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} en tarjeta de regalo de Amazon.com" @@ -3569,11 +3610,11 @@ msgstr "{{amountStr}} en Tarjeta de Regalo Mercado Livre Brasil" 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)." msgstr "{{appName}} depende de Bitcore Wallet Service (BWS) para obtener información sobre blockchain y sincronización del Copayer. La configuración por defecto apunta a https://bws.bitpay.com (instancia pública de BitPay)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} se descontará por comisión de la red bitcoin." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} de la cantidad a enviar" @@ -3581,7 +3622,7 @@ msgstr "{{tx.txp[wallet.id].feeRatePerStr}} de la cantidad a enviar" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transacciones descargadas" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/fr.po b/i18n/po/fr.po index ce0c91a1f..61330b1fe 100644 --- a/i18n/po/fr.po +++ b/i18n/po/fr.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: French\n" "Language: fr\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-10 08:58-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Fiable)" msgid "(possible double spend)" msgstr "(double dépense possible)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Une proposition de paiement peut être supprimée si vous en êtes le créateur et qu'aucun des autres copayers n'a signé, ou si 24 heures sont passées depuis la création de la proposition." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}} de la transaction" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}} de la transaction" @@ -48,16 +48,16 @@ msgstr "Seulement utilisable sur Mercado Livre (Brazil)" msgid "A member of the team will review your feedback as soon as possible." msgstr "Un membre de l’équipe passera en revue votre avis dès que possible." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Un total de {{amountAboveMaxSizeStr}} a été exclu. La taille maximale autorisée pour une transaction a été dépassée." -#: src/js/controllers/confirm.js:374 +#: 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 "Un total de {{amountBelowFeeStr}} a été exclu. Ces fonds proviennent d'UTXOs plus petites que les frais de réseau prévus." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "À propos" @@ -102,7 +102,7 @@ msgstr "Ajouter un contact" msgid "Add Funds" msgstr "Ajouter des fonds" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Ajouter une note" @@ -126,7 +126,7 @@ msgstr "Ajouter un mot de passe optionnel pour sécuriser la phrase de récupér msgid "Add as a contact" msgstr "Ajouter comme contact" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Ajouter une description" @@ -161,7 +161,7 @@ msgstr "Type d'adresse" msgid "Addresses With Balance" msgstr "Adresses avec un solde" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Paramètres avancés" @@ -216,7 +216,7 @@ msgstr "Montant" msgid "Amount below minimum allowed" msgstr "Montant en dessous du minimum autorisé" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Le montant est trop élevé" @@ -248,7 +248,7 @@ msgstr "Êtes-vous surveillé(e) ? N’importe qui peut dépenser vos bitcoins msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Êtes-vous certain(e) de vouloir annuler et supprimer ce portefeuille ?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Souhaitez-vous réellement supprimer ce contact ?" @@ -301,8 +301,8 @@ msgstr "Temps de confirmation moyen " msgid "BIP32 path for address derivation" msgstr "Chemin BIP32 pour la dérivation de l'adresse" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "Portefeuilles BTC" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Sauvegarde requise" msgid "Backup all livenet wallets before using this function" msgstr "Sauvegardez tous les portefeuilles (livenet) avant d'utiliser cette fonction" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Sauvegarde requise" @@ -335,7 +336,7 @@ msgstr "Sauvegarder le portefeuille" msgid "Backup your wallet before using this function" msgstr "Sauvegardez votre portefeuille avant d'utiliser cette fonction" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Mauvaise invitation de portefeuille" @@ -365,12 +366,22 @@ msgstr "Soldes Bitcoin Cash (BCH)" msgid "Bitcoin Cash Support" msgstr "Prise en charge de Bitcoin Cash" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "Portefeuilles Bitcoin Cash" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Frais de réseau" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "Portefeuilles Bitcoin" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "Paiement Bitcoin Cash" @@ -444,7 +455,7 @@ msgstr "Calcul des frais" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Annuler l'invitation" msgid "Cannot Create Wallet" msgstr "Impossible de créer le portefeuille" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Impossible de rejoindre le même portefeuille plus d'une fois" @@ -497,7 +508,7 @@ msgstr "Choisissez votre portefeuille de destination" msgid "Choose your source wallet" msgstr "Choisissez votre portefeuille source" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Effacer" @@ -505,16 +516,16 @@ msgstr "Effacer" msgid "Clear cache" msgstr "Vider le cache" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Cliquez pour accepter" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Cliquez pour payer" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Cliquez pour envoyer" @@ -532,7 +543,7 @@ msgstr "Fermer" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "Pièce" +msgstr "Crypto-monnaie" #: www/views/preferences.html:22 msgid "Color" @@ -552,11 +563,11 @@ msgstr "Terminé" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Confirmer & Terminer" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Confirmer l'achat" @@ -580,7 +590,7 @@ msgstr "Confirmez votre PIN" msgid "Confirm your new spending password" msgstr "Confirmez votre nouveau code de dépenses" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Confirmations" @@ -617,6 +627,10 @@ msgstr "Continuer" msgid "Contribute Translations" msgstr "Contribuer aux traductions" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay prend uniquement en charge le nouveau type d'adresse de Bitcoin Cash" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer déjà dans ce portefeuille" @@ -667,11 +681,11 @@ msgstr "Impossible d'accéder au portefeuille via le serveur. Veuillez vérifier msgid "Could not access to Amazon.com" msgstr "Impossible d'accéder à Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Impossible d’accéder au portefeuille" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Could not add message to imported wallet without shared encrypting key" @@ -697,15 +711,15 @@ msgstr "Impossible de créer la facture" msgid "Could not create transaction" msgstr "Impossible de créer la transaction" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Impossible de créer en utilisant la clé privée étendue spécifiée" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Impossible de créer en utilisant la clé publique étendue spécifiée" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Impossible de créer : Phrase de récupération du portefeuille invalide" @@ -717,7 +731,7 @@ msgstr "Impossible de déchiffrer le fichier, vérifiez votre mot de passe" msgid "Could not delete payment proposal" msgstr "Impossible de supprimer la proposition de paiement" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "Impossible de dupliquer" @@ -743,17 +757,17 @@ msgstr "Impossible d'obtenir la facture" msgid "Could not get transactions" msgstr "Impossible de récupérer les transactions" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Impossible d'importer" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Impossible d'importer. Vérifiez le fichier d'entrée et le code de dépenses" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Impossible de rejoindre le portefeuille" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Créer un portefeuille partagé" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Créer un portefeuille bitcoin" @@ -821,8 +835,8 @@ msgstr "Créer un portefeuille partagé" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Créer un portefeuille {{formData.requiredCopayers}}-sur-{{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Créée par" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Frais personnalisés" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Date" @@ -861,7 +875,7 @@ msgstr "Date" msgid "Delete" msgstr "Supprimer" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Supprimer la proposition de paiement" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Détails" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Désactivé" @@ -924,7 +938,7 @@ msgstr "Vous ne voyez pas votre langue sur Crowdin ? Contactez le propriétaire msgid "Download" msgstr "Télécharger" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "Dupliquer pour BCH" @@ -1012,14 +1026,14 @@ msgstr "Saisissez la phrase de récupération (BIP39)" msgid "Enter your email" msgstr "Saisissez votre e-mail" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Écrivez votre mot de passe" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Écrivez votre mot de passe" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Écrivez votre mot de passe" msgid "Error" msgstr "Erreur" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Erreur à la confirmation" @@ -1108,11 +1122,11 @@ msgstr "Erreur de création de la carte-cadeau" msgid "Error creating the invoice" msgstr "Erreur de création de la facture" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Erreur de création du portefeuille" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Erreur d’obtention de l'information SendMax" @@ -1142,16 +1156,16 @@ msgstr "Erreur de mise à jour des cartes de débit" msgid "Exceeded daily limit of $500 per user" msgstr "La limite quotidienne de 500$ par utilisateur a été dépassée" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Expiré" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Expire dans" @@ -1194,7 +1208,7 @@ msgstr "Impossible d'exporter" msgid "Family vacation funds" msgstr "Fonds pour les vacances familiales" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Frais" @@ -1206,8 +1220,8 @@ msgstr "Frais" msgid "Fee level is not defined" msgstr "Le niveau de frais n'est pas défini" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Frais :" @@ -1281,7 +1295,7 @@ msgstr "Fonds trouvés :" msgid "Funds to be added" msgstr "Fonds à ajouter" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Fonds transférés" @@ -1330,16 +1344,16 @@ msgstr "Commencez par ajouter votre premier contact." msgid "Getting fee levels..." msgstr "Obtention des niveaux de frais..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "Carte-cadeau" + #: 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 "La carte-cadeau n'est plus utilisable" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Carte-cadeau" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "Carte-cadeau expirée" @@ -1350,18 +1364,20 @@ msgstr "Carte-cadeau générée et prête à l’emploi." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Retour" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Aide & Support" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "De l'aide peut être trouvée sur le site internet (en anglais pour le moment)." @@ -1476,7 +1492,7 @@ msgstr "Je comprends que si cette application est déplacée vers un autre appar msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Je comprends que mes fonds sont en toute sécurité sur cet appareil et non détenus par une entreprise." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Je l'ai bien écrite" @@ -1525,7 +1541,7 @@ msgstr "Importer un portefeuille" msgid "Importing Wallet..." msgstr "Importation du portefeuille..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Afin de vérifier la sauvegarde de votre portefeuille, veuillez saisir votre mot de passe." @@ -1534,10 +1550,10 @@ msgstr "Afin de vérifier la sauvegarde de votre portefeuille, veuillez saisir v msgid "Inactive" msgstr "Inactive" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Non terminé" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Adresse réseau invalide" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Fonds insuffisants" @@ -1570,6 +1586,10 @@ msgstr "Fonds insuffisants" msgid "Insufficient funds for fee" msgstr "Fonds insuffisants pour les frais" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "Intégrations" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Invalide" @@ -1613,7 +1633,7 @@ msgstr "La facture a expiré" msgid "Is there anything we could do better?" msgstr "Y a-t-il quelque chose que nous pourrions améliorer ?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Est-ce correct ?" @@ -1663,13 +1683,14 @@ msgstr "Langue" msgid "Last Month" msgstr "Le mois dernier" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "En savoir plus" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Vérifions votre phrase de sauvegarde." @@ -1741,8 +1762,8 @@ msgstr "Ça peut aller" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Note" @@ -1754,7 +1775,7 @@ msgstr "Cartes-cadeaux Mercado Livre Brazil" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Le service de carte-cadeau Mercadolibre n'est pas disponible en ce moment. Veuillez réessayer plus tard." -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Message marchand" @@ -1888,15 +1909,19 @@ msgstr "Aucun portefeuille sélectionné" msgid "No wallets available" msgstr "Aucun portefeuille disponible" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Aucun portefeuille disponible pour recevoir des fonds" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "Aucun portefeuille n'est éligible pour Bitcoin Cash" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "Portefeuille non BIP44" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "Portefeuilles BTC non éligibles" @@ -1908,7 +1933,7 @@ msgstr "Normaux" msgid "Not authorized" msgstr "Non autorisé" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Pas assez de fonds pour les frais" @@ -1929,6 +1954,10 @@ msgstr "Pas maintenant" msgid "Note" msgstr "Note" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "Remarque : si ce portefeuille BCH a été dupliqué à partir d'un portefeuille BTC, ils partagent la même phrase de récupération." + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Note : seuls les portefeuilles 1-1 (signature unique) peuvent être utilisés pour vendre des bitcoins" @@ -1942,7 +1971,7 @@ msgstr "Notifications" msgid "Notifications by email" msgstr "Notifications par e-mail" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Me notifier si la transaction se confirme" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Vous pouvez visualiser tous vos portefeuilles, comptes et actifs sur cet écran." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Ouvrir" @@ -2033,6 +2063,10 @@ msgstr "Ouvrir le site internet" msgid "Open bitcoincash.org?" msgstr "Ouvrir bitcoincash.org ?" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "Ouvrir l'outil de récupération." + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Ouvrir le portefeuille" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Paiement rejeté" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Paiement accepté. Il sera diffusé par Glidera. Dans le cas où il y a msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "L'adresse de paiement a été convertie au nouveau format d'adresse Bitcoin Cash :" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Détails du paiement" @@ -2154,11 +2188,11 @@ msgstr "Propositions en attente" msgid "Permanently delete this wallet." msgstr "Supprimer définitivement ce portefeuille." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Portefeuille personnel" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Veuillez écrire soigneusement cette phrase." @@ -2166,7 +2200,7 @@ msgstr "Veuillez écrire soigneusement cette phrase." msgid "Please connect a camera to get started." msgstr "Veuillez connecter une caméra pour commencer." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Veuillez saisir la phrase de récupération" @@ -2179,7 +2213,7 @@ msgstr "Veuillez saisir la phrase de récupération du portefeuille" msgid "Please enter your PIN" msgstr "Veuillez saisir votre PIN" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Veuillez sélectionner chaque mot dans le bon ordre." @@ -2212,7 +2246,7 @@ msgstr "Préparation des adresses..." msgid "Preparing backup..." msgstr "Préparation de la sauvegarde..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Appuyez de nouveau pour quitter" @@ -2238,7 +2272,7 @@ msgstr "Proposition acceptée" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Proposition créée" @@ -2300,12 +2334,16 @@ msgstr "En savoir plus" msgid "Read more in our Wiki" msgstr "Lisez notre Wiki pour en savoir plus" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "Portefeuille en lecture seule" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Recevoir" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "Recevoir dans" @@ -2463,7 +2501,7 @@ msgstr "Réanalyser" msgid "Scan your fingerprint please" msgstr "Veuillez scanner votre empreinte digitale" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "Analyser vos portefeuilles pour Bitcoin Cash" @@ -2471,7 +2509,7 @@ msgstr "Analyser vos portefeuilles pour Bitcoin Cash" msgid "Scanning Wallet funds..." msgstr "Analyse des fonds du portefeuille..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "Analyse des fonds..." @@ -2544,7 +2582,7 @@ msgstr "Envoyer les adresses par e-mail" msgid "Send by email" msgstr "Envoyer par e-mail" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Envoyer à partir de" @@ -2583,7 +2621,7 @@ msgstr "Envoi du montant maximal" msgid "Sending transaction" msgstr "Envoi de la transaction" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Envoi de {{amountStr}} depuis votre portefeuille {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Portefeuille d'adresse unique" msgid "Skip" msgstr "Ignorer" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "Faites glisser pour accepter" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Faites glisser pour acheter" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "Faites glisser pour payer" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "Faites glisser pour envoyer" +#: 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 "Certains de vos portefeuilles ne sont pas éligibles à Bitcoin Cash. Vous pouvez essayer d’avoir accès aux fonds BCH de ces portefeuilles à l’aide de" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Cette appli est fantastique !" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Cette appli conserve vos bitcoins avec une sécurité de pointe." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Cette demande de paiement bitcoin a expiré." @@ -2944,15 +2985,15 @@ msgstr "Cette demande de paiement bitcoin a expiré." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Ce mot de passe ne peut pas être récupéré. Si le mot de passe est perdu, il n’y a aucun moyen pour vous de récupérer vos fonds." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Cette phrase de récupération a été créée avec un mot de passe. Pour récupérer ce portefeuille, la phrase de récupération et le mot de passe sont requis." -#: www/views/tx-details.html:93 +#: 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 "Ce montant de transaction est trop faible par rapport aux actuels frais de réseau Bitcoin. La dépense de ces fonds demandera des frais de réseau Bitcoin comparables aux fonds eux-mêmes." -#: www/views/tx-details.html:89 +#: 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" msgstr "Cette transaction pourrait prendre beaucoup de temps pour être confirmée ou pourrait être abandonnée à cause du faible niveau de frais fixé par l'expéditeur" @@ -2961,14 +3002,14 @@ msgstr "Cette transaction pourrait prendre beaucoup de temps pour être confirm msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Ce portefeuille n'est pas enregistré dans le Bitcore Wallet Service (BWS) donné. Vous pouvez le recréer depuis l'information locale." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Chronologie" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Touch ID a échoué" msgid "Transaction" msgstr "Transaction" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transaction créée" @@ -3083,7 +3124,7 @@ msgstr "Saisissez la phrase de récupération (généralement 12 mots)" msgid "Uh oh..." msgstr "Oh là là..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Non confirmée" @@ -3157,7 +3198,7 @@ msgstr "Voir la transaction sur Insight" msgid "View Update" msgstr "Voir la mise à jour" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Voir sur la blockchain" @@ -3277,7 +3318,7 @@ msgstr "Type de portefeuille" msgid "Wallet already exists" msgstr "Le portefeuille existe déjà" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "Le portefeuille existe déjà dans {{appName}}" @@ -3319,8 +3360,8 @@ msgstr "Le portefeuille n'est pas sauvegardé" msgid "Wallet not found" msgstr "Portefeuille introuvable" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Portefeuille non enregistré" @@ -3328,9 +3369,9 @@ msgstr "Portefeuille non enregistré" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Le portefeuille n'est pas enregistré au Wallet Service. Vous pouvez le recréer depuis « Créer » en utilisant les « Options avancées » pour configurer votre phrase de récupération" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "La phrase de récupération du portefeuille est indisponible." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "La phrase de récupération du portefeuille n'est pas disponible" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Wallet Service introuvable" msgid "Wallets" msgstr "Portefeuilles" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Portefeuilles & intégrations" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Méfiez-vous !" msgid "We'd love to do better." msgstr "Nous serions ravis de faire mieux." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Nous allons la confirmer sur l’écran suivant." @@ -3409,7 +3446,7 @@ msgstr "Seriez-vous prêt à évaluer {{appName}} dans la boutique d'application msgid "Would you like to receive push notifications about payments?" msgstr "Souhaitez-vous recevoir des notifications relatives aux paiements ?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Nombre incorrect de mots de récupération :" @@ -3445,7 +3482,7 @@ msgstr "Vous pouvez voir les derniers développements et contribuer à cette app msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Vous pouvez dépenser des bitcoins dans des millions de sites internet et de boutiques à travers le monde." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Vous pouvez l’exporter depuis le menu « Avancé » > « Exporter »." @@ -3523,10 +3560,10 @@ msgstr "Votre portefeuille n’est jamais enregistré en dehors de votre apparei msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "La clé de votre portefeuille sera chiffrée. Le code de dépenses ne peut pas être récupéré. N'oubliez pas de l'écrire." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "ajoutez vos cartes BitPay Visa" msgid "locked by pending payments" msgstr "verrouillés par les paiements en attente" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "moi" @@ -3557,6 +3594,10 @@ msgstr "nom@exemple.com" msgid "preparing..." msgstr "préparation..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "l'outil de récupération." + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} pour la carte-cadeau Amazon.com" @@ -3569,11 +3610,11 @@ msgstr "{{amountStr}} pour la carte-cadeau Mercado Livre Brazil" 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)." msgstr "{{appName}} repose sur Bitcore Wallet Service (BWS) pour les informations de blockchain, le réseau et la synchronisation des Copayers. La configuration par défaut est orientée vers https://bws.bitpay.com (instance BWS publique de BitPay)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} seront déduits pour les frais de réseau Bitcoin." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} du montant d'envoi" @@ -3581,7 +3622,7 @@ msgstr "{{tx.txp[wallet.id].feeRatePerStr}} du montant d'envoi" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transactions téléchargées" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/it.po b/i18n/po/it.po index 3265e061c..6750d992f 100644 --- a/i18n/po/it.po +++ b/i18n/po/it.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Italian\n" "Language: it\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Fidato)" msgid "(possible double spend)" msgstr "(possibile doppia spesa)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Una proposta di pagamento può essere eliminata se 1) Tu sei il creatore e nessun altro copayer ha firmato, oppure 2) Sono passate 24 ore da quando la proposta e' stata creata." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}} della transazione" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}} della transazione" @@ -48,16 +48,16 @@ msgstr "Solo rimborsabili su Mercado Livre (Brasile)" msgid "A member of the team will review your feedback as soon as possible." msgstr "Un membro del team esaminerà il tuo feedback appena possibile." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Un totale di{{amountAboveMaxSizeStr}} sono state escluse. La dimensione massima consentita per una transazione è stata superata." -#: src/js/controllers/confirm.js:374 +#: 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 "Un totale di {{amountBelowFeeStr}} è stato escluso. Questi fondi provengono da UTXO più piccole rispetto alla commissione di rete fornita." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "Informazioni" @@ -102,7 +102,7 @@ msgstr "Aggiungi Contatto" msgid "Add Funds" msgstr "Aggiungere fondi" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Aggiungi Memo" @@ -126,7 +126,7 @@ msgstr "Aggiungere una password facoltativa per proteggere la frase di recupero" msgid "Add as a contact" msgstr "Aggiungi come contatto" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Aggiungi descrizione" @@ -161,7 +161,7 @@ msgstr "Tipo di indirizzo" msgid "Addresses With Balance" msgstr "Indirizzi con saldo" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Avanzato" @@ -216,7 +216,7 @@ msgstr "Ammontare" msgid "Amount below minimum allowed" msgstr "Importo inferiore al minimo consentito" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Quantità troppo grande" @@ -248,7 +248,7 @@ msgstr "Siete osservati? Chiunque con la vostra frase di recupero può accedere msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Sei sicuro di voler eliminare questo portafoglio?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Sei sicuro di voler cancellare questo contatto?" @@ -301,8 +301,8 @@ msgstr "Tempo previsto per la conferma" msgid "BIP32 path for address derivation" msgstr "Percorso BIP32 per generare l'indirizzo" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "Portafogli BTC" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Backup necessario" msgid "Backup all livenet wallets before using this function" msgstr "Fai un backup di tutti i portafogli sulla livenet prima di utilizzare questa funzione" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Backup necessario" @@ -335,7 +336,7 @@ msgstr "Backup portafoglio" msgid "Backup your wallet before using this function" msgstr "Eseguire il backup del tuo portafoglio prima di utilizzare questa funzione" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Invito al wallet non corretto" @@ -365,12 +366,22 @@ msgstr "Saldi di Bitcoin Cash (BCH)" msgid "Bitcoin Cash Support" msgstr "Supporto Bitcoin Cash" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Criterio delle Commissioni del Bitcoin Network" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "Pagamento Bitcoin Cash" @@ -444,7 +455,7 @@ msgstr "Calcolo commissione" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Annulla invito" msgid "Cannot Create Wallet" msgstr "Impossibile creare portafoglio" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Non è possibile aggiungere un portafoglio più di una volta" @@ -497,7 +508,7 @@ msgstr "Scegli il tuo portafoglio di destinazione" msgid "Choose your source wallet" msgstr "Scegli il tuo portafoglio di origine" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Elimina" @@ -505,16 +516,16 @@ msgstr "Elimina" msgid "Clear cache" msgstr "Svuota la cache" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Fare clic per accettare" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Fai clic per pagare" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Clicca per inviare" @@ -552,11 +563,11 @@ msgstr "Completato" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Confirm & concludi" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Conferma acquisto" @@ -580,7 +590,7 @@ msgstr "Conferma il tuo PIN" msgid "Confirm your new spending password" msgstr "Conferma la tua nuova password di spesa" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Conferme" @@ -617,6 +627,10 @@ msgstr "Continua" msgid "Contribute Translations" msgstr "Contribuisci alle traduzioni" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay supporta Bitcoin Cash soltanto utilizzando la nuova versione di indirizzi" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer già in questo portafoglio" @@ -667,11 +681,11 @@ msgstr "Non può accedere al portafoglio sul server. Si prega di controllare:" msgid "Could not access to Amazon.com" msgstr "Impossibile accedere ad Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Impossibile accedere al portafoglio" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Non puoi aggiungere un messaggio da importare nel portafoglio senza condividere la chiave criptata" @@ -697,15 +711,15 @@ msgstr "Non è stato creata la fattura" msgid "Could not create transaction" msgstr "Non è possibile creare la transazione" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Non posso crearlo utilizzando la chiave privata estesa specificata" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Non è possibile creare usando questa chiave estesa pubblica" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Impossibile creare: Frase di recupero portafoglio non valida" @@ -717,7 +731,7 @@ msgstr "Impossibile decifrare il file, controlla la tua password" msgid "Could not delete payment proposal" msgstr "Impossibile eliminare la proposta di pagamento" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "Duplicazione non riuscita" @@ -743,17 +757,17 @@ msgstr "La fattura non puo essere creata" msgid "Could not get transactions" msgstr "Non è possibile ottenere le transazioni" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Impossibile importare" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Impossibile importare. Controlla il file da importare e la password di spesa" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Impossibile partecipare al portafoglio" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Creare portafoglio condiviso" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Creare portafoglio bitcoin" @@ -821,8 +835,8 @@ msgstr "Creare portafoglio condiviso" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Creare il portafoglio di {{formData.requiredCopayers}}-di-{{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Creato da" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Commissione personalizzata" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Data" @@ -861,7 +875,7 @@ msgstr "Data" msgid "Delete" msgstr "Elimina" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Elimina Proposta di Pagamento" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Dettagli" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Disabilitato" @@ -924,7 +938,7 @@ msgstr "Non vedi la tua lingua su Crowdin? Contatta il proprietario su Crowdin! msgid "Download" msgstr "Download" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "Duplicato per BCH" @@ -1012,14 +1026,14 @@ msgstr "Inserire la frase di recupero (BIP39)" msgid "Enter your email" msgstr "Inserisci la tua e-mail" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Inserisci la tua password" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Inserisci la tua password" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Inserisci la tua password" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Inserisci la tua password" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Inserisci la tua password" msgid "Error" msgstr "Errore" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Errore di conferma" @@ -1108,11 +1122,11 @@ msgstr "Errore nella creazione della Gift card" msgid "Error creating the invoice" msgstr "Errore nella creazione della fattura" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Errore creazione portafoglio" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Errore nel recupero di informazione SendMax" @@ -1142,16 +1156,16 @@ msgstr "Errore durante l'aggiornamento delle carte di debito" msgid "Exceeded daily limit of $500 per user" msgstr "Superato il limite giornaliero di $500 per utente" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Scaduta" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Scadenza" @@ -1194,7 +1208,7 @@ msgstr "Esportazione non riuscita" msgid "Family vacation funds" msgstr "Fondi vacanza di famiglia" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Tassa" @@ -1206,8 +1220,8 @@ msgstr "Livello della commissione" msgid "Fee level is not defined" msgstr "Livello commissione non definito" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Commissione:" @@ -1281,7 +1295,7 @@ msgstr "Fondi trovati:" msgid "Funds to be added" msgstr "Fondi da aggiungere" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Fondi trasferiti" @@ -1330,16 +1344,16 @@ msgstr "Inizia aggiungendo il tuo primo." msgid "Getting fee levels..." msgstr "Ottenendo i livelli di commissione..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "Gift Card non è più disponibile per l'uso" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Carta regalo" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "Carta regalo scaduta" @@ -1350,18 +1364,20 @@ msgstr "Carta regalo generata e pronta all'uso." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Indietro" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Aiuto e Assistenza" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Guida e informazioni di supporto tecnico sono disponibili sul sito web." @@ -1476,7 +1492,7 @@ msgstr "Ho compreso che se questa app sarà trasferita ad un altro dispositivo o msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Ho capito che i miei fondi sono custoditi in sicurezza in questa dispositivo, non da un'azienda." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "L'ho scritto" @@ -1525,7 +1541,7 @@ msgstr "Importa un portafoglio" msgid "Importing Wallet..." msgstr "Importazione del Portafoglio..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Per verificare il backup del tuo portafoglio, inserire la password." @@ -1534,10 +1550,10 @@ msgstr "Per verificare il backup del tuo portafoglio, inserire la password." msgid "Inactive" msgstr "Inattivo" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Incompleto" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Indirizzo di rete non corretto" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Fondi insufficienti" @@ -1570,6 +1586,10 @@ msgstr "Fondi insufficienti" msgid "Insufficient funds for fee" msgstr "Fondi insufficienti per la commissione" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Invalido" @@ -1613,7 +1633,7 @@ msgstr "Fattura scaduta" msgid "Is there anything we could do better?" msgstr "C'è qualcosa che potevamo fare meglio?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "È corretto?" @@ -1663,13 +1683,14 @@ msgstr "Lingua" msgid "Last Month" msgstr "Scorso Mese" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "Ulteriori informazioni" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Verifichiamo la tua frase di backup." @@ -1741,8 +1762,8 @@ msgstr "Beh - è tutto ok" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Nota" @@ -1754,7 +1775,7 @@ msgstr "Carte regalo di Mercado Livre Brasile" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Il Servizio MercadoLibre Gift Card non è disponibile in questo momento. Si prega di provare più tardi." -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Messaggio dal commerciante" @@ -1888,15 +1909,19 @@ msgstr "Nessun portafoglio selezionato" msgid "No wallets available" msgstr "Nessun portafoglio disponibile" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Nessun portafoglo disponibile per ricevere i fondi" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "Nessun portafogli idoneo al supporto di Bitcoin Cash" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "Portafoglio non BIP44" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "Portafogli BTC non ammissibili" @@ -1908,7 +1933,7 @@ msgstr "Normale" msgid "Not authorized" msgstr "Non autorizzato" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Non ci sono abbastanza fondi per la commissione" @@ -1929,6 +1954,10 @@ msgstr "Non ora" msgid "Note" msgstr "Nota" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "Nota: se questo portafoglio BCH è stato duplicato da un portafoglio BTC, condividono la stessa frase di recupero." + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Avviso: solo i portafogli 1-1 (con singola firma) possono essere utilizzati per vendere bitcoin" @@ -1942,7 +1971,7 @@ msgstr "Notifiche" msgid "Notifications by email" msgstr "Notifiche via email" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Notificami se confermato" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "In questa schermata puoi vedere tutti i portafogli, gli account e i beni." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Apri" @@ -2033,6 +2063,10 @@ msgstr "Apri sito" msgid "Open bitcoincash.org?" msgstr "Aprire bitcoincash.org?" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "Aprire lo strumento di recupero." + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Apri Portafoglio" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Pagamento Rifiutato" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Pagamento accettato. Esso sarà trasmesso attraverso la rete Glidera. Ne msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "Indirizzo per il pagamento è stato tradotto al nuovo formato di indirizzo Bitcoin Cash:" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Dettagli pagamento" @@ -2154,11 +2188,11 @@ msgstr "Proposte in attesa" msgid "Permanently delete this wallet." msgstr "Eliminare definitivamente questo portafoglio." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Portafoglio Personale" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Si prega di annotare accuratamente questa frase." @@ -2166,7 +2200,7 @@ msgstr "Si prega di annotare accuratamente questa frase." msgid "Please connect a camera to get started." msgstr "Si prega di collegare una telecamera per iniziare." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Si prega di inserire la frase di recupero" @@ -2179,7 +2213,7 @@ msgstr "Si prega di inserire la frase di recupero del portafoglio" msgid "Please enter your PIN" msgstr "Inserisci il tuo PIN" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Si prega di toccare ogni parola nell'ordine corretto." @@ -2212,7 +2246,7 @@ msgstr "Preparazione indirizzi..." msgid "Preparing backup..." msgstr "Preparando il backup..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Premi ancora per uscire" @@ -2238,7 +2272,7 @@ msgstr "Proposta accettata" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Proposta creata" @@ -2300,12 +2334,16 @@ msgstr "Ulteriori informazioni" msgid "Read more in our Wiki" msgstr "Per saperne di più sul nostro Wiki" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "Portafoglio in solo lettura" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Ricevi" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "Ricevere in" @@ -2463,7 +2501,7 @@ msgstr "Ripetere la scansione" msgid "Scan your fingerprint please" msgstr "Per cortesia procedere alla scansione dell'impronta digitale" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "Cercare nei tuoi portafogli per Bitcoin Cash" @@ -2471,7 +2509,7 @@ msgstr "Cercare nei tuoi portafogli per Bitcoin Cash" msgid "Scanning Wallet funds..." msgstr "Scansione fondi Portafoglio..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "Scansione dei fondi..." @@ -2544,7 +2582,7 @@ msgstr "Invia indirizzi via Email" msgid "Send by email" msgstr "Invia via email" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Inviata Da" @@ -2583,7 +2621,7 @@ msgstr "Invio dell'importo massimo" msgid "Sending transaction" msgstr "Invio transazione" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "L'invio di {{amountStr}} dal tuo portafoglio {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Singolo indirizzo di portafoglio" msgid "Skip" msgstr "Salta" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "Trascina per accettare" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Trascina per acquistare" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "Trascina per pagare" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "Trascina per inviare" +#: 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 "Alcuni dei vostri portafogli non sono ammissibili al supporto di Bitcoin Cash. È possibile tentare di accedere ai fondi BCH da questi portafogli utilizzando il" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Questa applicazione è fantastica!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Questa app memorizza i tuoi bitcoin con sicurezza all'avanguardia." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Questa richiesta di pagamento in bitcoin è scaduta." @@ -2944,15 +2985,15 @@ msgstr "Questa richiesta di pagamento in bitcoin è scaduta." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Questa password non può essere recuperata. Se si dimentica la password, non c'è alcun modo possibile per recuperare i fondi." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Questa frase di recupero è stata creata con una password. Per recuperare questo portafoglio sono necessari sia la frase di recupero e che la password." -#: www/views/tx-details.html:93 +#: 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 "Questo importo della transazione è troppo piccolo rispetto alle attuali commissioni della rete Bitcoin. Per spendere questi fondi sarà necessaria una commissione Bitcoin paragonabile ai fondi stessi." -#: www/views/tx-details.html:89 +#: 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" msgstr "Questa operazione potrebbe richiedere molto tempo per essere confermata o potrebbe essere abbandonata a causa delle commissioni basse impostate dal mittente" @@ -2961,14 +3002,14 @@ msgstr "Questa operazione potrebbe richiedere molto tempo per essere confermata msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Questo portafoglio non è registrato al Bitcore Wallet Service (BWS). Puoi ricrearlo dalle informazioni locali." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Cronologia" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Touch ID Fallito" msgid "Transaction" msgstr "Transazione" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transazione creata" @@ -3083,7 +3124,7 @@ msgstr "Digitare la Frase di Recupero (tipicamente 12 parole)" msgid "Uh oh..." msgstr "Oh oh..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Non confermato" @@ -3157,7 +3198,7 @@ msgstr "Visualizzazione della transazione su Insight" msgid "View Update" msgstr "Visualizza aggiornamenti" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Mostra su blockchain" @@ -3277,7 +3318,7 @@ msgstr "Tipo di portafoglio" msgid "Wallet already exists" msgstr "Il portafoglio esiste già" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "Portafoglio è già in {{appName}}" @@ -3319,8 +3360,8 @@ msgstr "Portafoglio senza backup" msgid "Wallet not found" msgstr "Portafoglio non trovato" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Portafoglio non registrato" @@ -3328,9 +3369,9 @@ msgstr "Portafoglio non registrato" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Portafoglio non registrato presso il servizio di portafoglio. Ricrearlo da \"Creare portafoglio\" tramite \"Opzioni avanzate\" per impostare la tua frase di recupero" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Frase di recupero del portafoglio non disponibile." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "Frase di recupero portafoglio non disponibile" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Wallet service non trovato" msgid "Wallets" msgstr "Portafogli" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Portafogli & integrazioni" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Attento!" msgid "We'd love to do better." msgstr "Ci piacerebbe fare di più." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Confermeremo la schermata successiva." @@ -3409,7 +3446,7 @@ msgstr "Sareste disposti a votare {{appName}} sull'app store?" msgid "Would you like to receive push notifications about payments?" msgstr "Vorresti ricevere le notifiche push sui pagamenti?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Numero errato delle parole di recupero:" @@ -3445,7 +3482,7 @@ msgstr "Potete vedere gli ultimi sviluppi e contribuire a questa applicazione op msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Si può spendere bitcoin in milioni di siti web e negozi in tutto il mondo." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "È comunque possibile esportare da Avanzate > Esporta." @@ -3523,10 +3560,10 @@ msgstr "Il tuo portafoglio non viene mai salvato in archiviazione cloud o nel no msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "La chiave del tuo portafoglio verrà cifrata. La Password Per Spendere non può essere recuperata. Assicurati di scrivertela." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "aggiungi la tua carta(e) BitPay Visa" msgid "locked by pending payments" msgstr "bloccati da pagamenti in sospeso" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "io" @@ -3557,6 +3594,10 @@ msgstr "nome@esempio.com" msgid "preparing..." msgstr "preparazione..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "strumento di recupero." + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} per una carta regalo Amazon.com" @@ -3569,11 +3610,11 @@ msgstr "{{amountStr}} per Mercado Livre Brasile Gift Card" 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)." msgstr "{{appName}} dipende dal servizio portafoglio di Bitcore (BWS) per informazioni blockchain, networking e sincronizzazione di Copayer. La configurazione predefinita fa riferimento a https://bws.bitpay.com (istanza di BitPay BWS pubblica)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} verranno detratti come commissione per il network." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} dell'importo d'invio" @@ -3581,7 +3622,7 @@ msgstr "{{tx.txp[wallet.id].feeRatePerStr}} dell'importo d'invio" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transazioni scaricate" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/ja.po b/i18n/po/ja.po index 31580f997..8bcaf65bc 100644 --- a/i18n/po/ja.po +++ b/i18n/po/ja.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Japanese\n" "Language: ja\n" -"PO-Revision-Date: 2017-09-19 14:07-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(信頼済み)" msgid "(possible double spend)" msgstr "(二重払い可能性あり)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* 送金の提案の取下げは①他のウォレット参加者に署名されていなかった場合、提案者に提案を取り下げることができます。②提案の起案から24時間が経っても解決しなかった場合、全員に取り下げることができます。" -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}}のレート" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}}のレート" @@ -48,16 +48,16 @@ msgstr "Mercado Livre (ブラジル)のみで引き換え可能" msgid "A member of the team will review your feedback as soon as possible." msgstr "ただちに開発メンバーでいただいた評価を拝読し参考にさせていただきます。" -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "注意:合計{{amountAboveMaxSizeStr}} を除外しました。取引に許可される最大サイズを超えました" -#: src/js/controllers/confirm.js:374 +#: 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 "注意:合計 {{amountBelowFeeStr}} を除外しました。これらのビットコインは手数料よりも低い額となるため除外しました。" #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "このアプリについて" @@ -102,7 +102,7 @@ msgstr "連絡先を追加" msgid "Add Funds" msgstr "資金を追加" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "メモを追加" @@ -126,7 +126,7 @@ msgstr "フレーズを守るために任意のパスワードをかけて下さ msgid "Add as a contact" msgstr "連絡先に追加" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "詳細を追加" @@ -161,7 +161,7 @@ msgstr "アドレスの種類" msgid "Addresses With Balance" msgstr "残高のあるアドレス" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "上級者向け" @@ -216,7 +216,7 @@ msgstr "金額" msgid "Amount below minimum allowed" msgstr "送金可能最少額を下回っています" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "金額が大きすぎます" @@ -249,7 +249,7 @@ msgid "Are you sure you want to cancel and delete this wallet?" msgstr "本当にこのウォレットをキャンセルし、削除しても\n" "宜しいですか?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "本当にこの連絡先を削除しますか?" @@ -303,9 +303,9 @@ msgstr "平均承認時間" msgid "BIP32 path for address derivation" msgstr "階級アドレス派生のパス" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" -msgstr "" +#: www/views/cashScan.html:25 +msgid "BTC wallets" +msgstr "ビットコインウォレット" #: www/views/preferences.html:34 msgid "Backup" @@ -319,8 +319,9 @@ msgstr "要バックアップ" msgid "Backup all livenet wallets before using this function" msgstr "この機能を使う前に必ず全てのウォレットの復元フレーズのバックアップを取って下さい!" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "要バックアップ" @@ -337,7 +338,7 @@ msgstr "ウォレットをバックアップ" msgid "Backup your wallet before using this function" msgstr "この機能を使う前に必ず復元フレーズのバックアップを取って下さい!" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "不正なウォレット招待コード" @@ -360,12 +361,17 @@ msgstr "ビットコインアドレス" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "ビーキャッシュ (BCH) 残高" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" -msgstr "" +msgstr "ビーキャッシュ対応" + +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "ビーキャッシュウォレット" #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 @@ -373,9 +379,14 @@ msgstr "" msgid "Bitcoin Network Fee Policy" msgstr "ビットコインネットワークの手数料設定" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "ビットコインウォレット" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" -msgstr "" +msgstr "ビーキャッシュペイメント" #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." @@ -446,7 +457,7 @@ msgstr "手数料計算中..." #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -471,7 +482,7 @@ msgstr "招待状のキャンセル" msgid "Cannot Create Wallet" msgstr "ウォレットを作成できません。" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "同じ端末で同じウォレットに複数回参加することができません。" @@ -499,7 +510,7 @@ msgstr "宛先ウォレットの選択" msgid "Choose your source wallet" msgstr "送金元のウォレットを選択して下さい" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "やり直し" @@ -507,19 +518,19 @@ msgstr "やり直し" msgid "Clear cache" msgstr "キャッシュを消去" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" -msgstr "" +msgstr "クリックして承諾" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" -msgstr "" +msgstr "クリックして支払う" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" -msgstr "" +msgstr "クリックして送る" #: www/views/customAmount.html:4 #: www/views/modals/mercadolibre-card-details.html:3 @@ -534,7 +545,7 @@ msgstr "閉じる" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "" +msgstr "別通貨切り替え" #: www/views/preferences.html:22 msgid "Color" @@ -554,11 +565,11 @@ msgstr "完了" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -570,7 +581,6 @@ msgid "Confirm & Finish" msgstr "承諾して終了する" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "購入の確認" @@ -582,7 +592,7 @@ msgstr "確認のためPINを再入力してください" msgid "Confirm your new spending password" msgstr "新しい送金時パスワードを確認してください" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "承認回数" @@ -619,6 +629,10 @@ msgstr "続ける" msgid "Contribute Translations" msgstr "翻訳に協力" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay のビーキャッシュはビットコインと完全に異なる別通貨なので、アドレスの頭文字が異なります。" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "ウォレット参加者が既に存在しています。" @@ -669,11 +683,11 @@ msgstr "サーバーにてウォレットの確認ができませんでした。 msgid "Could not access to Amazon.com" msgstr "Amazon.comにアクセスできませんでした。" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "ウォレットにアクセスできませんでした。" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "共有キー無しでインポートされたウォレットへのメッセージの追加ができません" @@ -699,15 +713,15 @@ msgstr "請求を作成できませんでした" msgid "Could not create transaction" msgstr "取引を作成できませんでした。" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "指定された拡張秘密鍵で作成できませんでした。" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "指定された拡張公開鍵で作成できませんでした。" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "作成できません:ウォレットの復元フレーズが不正です。" @@ -719,9 +733,9 @@ msgstr "複合化できませんでした。パスワードが正しいかご確 msgid "Could not delete payment proposal" msgstr "送金の提案を削除できませんでした" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" -msgstr "" +msgstr "複製できませんでした。" #: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" @@ -745,17 +759,17 @@ msgstr "請求の取得ができませんでした" msgid "Could not get transactions" msgstr "取引を取得できませんでした。" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "インポートできませんでした。" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "インポートできませんでした。入力ファイルとパスワードが正しいかご確認下さい。" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "ウォレットに参加できませんでした。" @@ -806,7 +820,7 @@ msgid "Create Shared Wallet" msgstr "共有ウォレットを作成" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "ビットコインウォレット作成" @@ -823,8 +837,8 @@ msgstr "共有ウォレットを作成" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "{{formData.requiredCopayers}}-of-{{formData.totalCopayers}} ウォレットを作成" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "作成者" @@ -854,8 +868,8 @@ msgid "Custom Fee" msgstr "カスタム手数料" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "日付" @@ -863,7 +877,7 @@ msgstr "日付" msgid "Delete" msgstr "削除する" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "送金の提案を削除" @@ -903,7 +917,7 @@ msgid "Details" msgstr "詳細" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "無効" @@ -926,13 +940,13 @@ msgstr "ご自分の言語はCrowdinで見当たりませんか?Crowdinの管 msgid "Download" msgstr "ダウンロード" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" -msgstr "" +msgstr "ビーキャッシュウォレットを複製" #: src/js/services/onGoingProcess.js:49 msgid "Duplicating wallet..." -msgstr "" +msgstr "ウォレットを複製しています..." #: 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." @@ -961,7 +975,7 @@ msgstr "未使用アドレスを生成しすぎたため、これ以上アドレ #: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." -msgstr "" +msgstr "アプリ内でのビーキャッシュのウォレット作成及び操作を有効化する。" #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." @@ -981,7 +995,7 @@ msgstr "始めるためにカメラを有効にして下さい。" #: www/views/tab-settings.html:49 msgid "Enabled" -msgstr "" +msgstr "有効" #: src/js/services/walletService.js:1047 #: src/js/services/walletService.js:1062 @@ -1014,14 +1028,14 @@ msgstr "復元フレーズの単語をご入力下さい。" msgid "Enter your email" msgstr "メールアドレスを入力してください" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "パスワードを入力して下さい。" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1031,7 +1045,7 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1057,8 +1071,8 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1083,7 +1097,7 @@ msgstr "パスワードを入力して下さい。" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1097,7 +1111,7 @@ msgstr "パスワードを入力して下さい。" msgid "Error" msgstr "エラー" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "確認のエラー" @@ -1110,11 +1124,11 @@ msgstr "ギフトカード作成時にエラー" msgid "Error creating the invoice" msgstr "請求の作成中にエラー" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "ウォレット作成時にエラー" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "全額送金データ取得時にエラー" @@ -1144,16 +1158,16 @@ msgstr "デビットカードの更新エラー" msgid "Exceeded daily limit of $500 per user" msgstr "ユーザーの1日当たりの制限 500 米ドルを超えました" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "期限切れ" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "有効期限:" @@ -1196,7 +1210,7 @@ msgstr "エクスポートに失敗しました。" msgid "Family vacation funds" msgstr "家族旅行貯金" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "手数料" @@ -1208,8 +1222,8 @@ msgstr "手数料レベル" msgid "Fee level is not defined" msgstr "手数料レベルが定義されていません" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "手数料:" @@ -1283,7 +1297,7 @@ msgstr "残高がありました:" msgid "Funds to be added" msgstr "追加する資金" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "入金されました" @@ -1332,16 +1346,16 @@ msgstr "初めての連絡先を追加しましょう。" msgid "Getting fee levels..." msgstr "手数料レベルを取得しています…" +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "ギフトカードがもう使用できません。" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "ギフトカード" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "期限切れのギフトカード" @@ -1352,18 +1366,20 @@ msgstr "ギフトカードが利用可能になりました。" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "戻る" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1392,14 +1408,14 @@ msgstr "ハードウェアウォレット" #: src/js/controllers/create.js:180 #: src/js/controllers/join.js:145 msgid "Hardware wallets are not yet supported with Bitcoin Cash" -msgstr "" +msgstr "ビーキャッシュはまだハードウェアウォレットに対応しておりません。" #: www/views/tab-settings.html:20 msgid "Help & Support" msgstr "ヘルプ&サポート" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "サポートに関する情報はウェブサイトに掲載しております。" @@ -1478,7 +1494,7 @@ msgstr "このアプリが別の端末に移動されたり、削除されたり msgid "I understand that my funds are held securely on this device, not by a company." msgstr "自分のビットコインがこの端末に入っていて、外部のサーバー等に保管は一切されていないことを理解しています。" -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "紙に書き留めました" @@ -1527,7 +1543,7 @@ msgstr "ウォレットをインポート" msgid "Importing Wallet..." msgstr "ウォレットインポート中…" -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "ウォレットのバックアップを確認するためには、復元フレーズ用のパスワードをご入力下さい。" @@ -1536,10 +1552,10 @@ msgstr "ウォレットのバックアップを確認するためには、復元 msgid "Inactive" msgstr "非アクティブ" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "未完成" @@ -1561,7 +1577,7 @@ msgid "Incorrect network address" msgstr "サーバーのアドレスが不正です" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "残高不足" @@ -1572,6 +1588,10 @@ msgstr "残高不足" msgid "Insufficient funds for fee" msgstr "手数料付けるには残高が足りません" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "連携" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "無効" @@ -1615,7 +1635,7 @@ msgstr "請求有効期限切れ" msgid "Is there anything we could do better?" msgstr "もっと頑張って欲しいところはありますか?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "正しいですか?" @@ -1665,13 +1685,14 @@ msgstr "言語設定" msgid "Last Month" msgstr "先月" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" -msgstr "" +msgstr "詳細情報" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "復元フレーズを確認しましょう。" @@ -1743,8 +1764,8 @@ msgstr "まあまあです" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "メモ" @@ -1756,7 +1777,7 @@ msgstr "Mercado Livre Brazil ギフトカード" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Mercadolibre Gift Card Service は現在ご利用できません、また後でお試しください" -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "お店からのメッセージ:" @@ -1764,7 +1785,7 @@ msgstr "お店からのメッセージ:" #: www/views/buyMercadoLibre.html:54 #: www/views/topup.html:63 msgid "Miner Fee" -msgstr "" +msgstr "ネットワーク手数料" #: src/js/services/bwcError.js:134 msgid "Missing parameter" @@ -1807,7 +1828,7 @@ msgstr "名前" #: www/views/buyMercadoLibre.html:48 #: www/views/topup.html:56 msgid "Network Cost" -msgstr "" +msgstr "ネットワーク手数料" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1890,17 +1911,21 @@ msgstr "ウォレットが選択されていません" msgid "No wallets available" msgstr "利用可能なウォレットがありません" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "ペーパーウォレットの出金を受け取るためのウォレットが入っていません。" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" -msgstr "" +msgstr "ビーキャッシュ対応できるウォレットがありません。" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "非 BIP44 ウォレット" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" -msgstr "" +msgstr "非対応ビットコインウォレット" #: src/js/services/feeService.js:12 msgid "Normal" @@ -1910,7 +1935,7 @@ msgstr "通常" msgid "Not authorized" msgstr "権限がありません。" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "手数料含めたら残高が不足しています。" @@ -1931,6 +1956,10 @@ msgstr "今はしない" msgid "Note" msgstr "メモ" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "注意: このビーキャッシュウォレットがビットコインウォレットからの複製の場合、復元フレーズは一緒です。" + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "注意: ビットコインの売却は 1-of-1 (単一署名) のウォレットからしか行えません。" @@ -1944,7 +1973,7 @@ msgstr "通知設定" msgid "Notifications by email" msgstr "メール通知" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "取引承認時に通知" @@ -1995,9 +2024,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "この画面では、全てのウォレット、アカウント、資産が閲覧できます。" #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "開く" @@ -2033,7 +2063,11 @@ msgstr "サイトを開く" #: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" -msgstr "" +msgstr "ビーキャッシュの宣伝サイト開きますか?" + +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "復元ツールを開く" #: www/views/tab-receive.html:27 msgid "Open wallet" @@ -2117,7 +2151,7 @@ msgid "Payment Rejected" msgstr "送金が却下されました" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,9 +2167,9 @@ msgstr "取引が承認されました。Glideraより送信されます。問 #: src/js/services/incomingData.js:152 msgid "Payment address was translated to new Bitcoin Cash address format:" -msgstr "" +msgstr "支払先アドレスはビーキャッシュの新フォーマットに変更された:" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "支払いの詳細" @@ -2156,11 +2190,11 @@ msgstr "保留中の提案" msgid "Permanently delete this wallet." msgstr "ウォレットを完全に削除する" -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "個人用ウォレット" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "丁寧に復元フレーズを紙に書き留めて下さい" @@ -2168,7 +2202,7 @@ msgstr "丁寧に復元フレーズを紙に書き留めて下さい" msgid "Please connect a camera to get started." msgstr "始めるためにカメラを接続して下さい。" -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "復元フレーズをご入力下さい" @@ -2181,7 +2215,7 @@ msgstr "復元フレーズをご入力下さい" msgid "Please enter your PIN" msgstr "PIN コードを入力してください。" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "正しい順序で各単語をタップしてください。" @@ -2192,7 +2226,7 @@ msgstr "この操作を実行するにはCopayを最新バージョンに更新 #: www/views/walletDetails.html:142 #: www/views/walletDetails.html:62 msgid "Please wait" -msgstr "" +msgstr "お待ちください" #: src/js/controllers/import.js:238 msgid "Please, select your backup file" @@ -2214,7 +2248,7 @@ msgstr "アドレスを処理中…" msgid "Preparing backup..." msgstr "バックアップを準備中..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "もう一度押して終了" @@ -2240,7 +2274,7 @@ msgstr "提案が承諾されました" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "提案が作成されました" @@ -2300,14 +2334,18 @@ msgstr "もっと読む" #: src/js/controllers/preferences.js:65 #: src/js/controllers/tx-details.js:54 msgid "Read more in our Wiki" -msgstr "" +msgstr "詳しくはwikiでお読みください" + +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "閲覧専用ウォレット" #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "受取" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "通貨" @@ -2465,17 +2503,17 @@ msgstr "もう一度スキャンし直してください。" msgid "Scan your fingerprint please" msgstr "指紋をスキャンしてください" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "ウォレットの中にビーキャッシュが無いか確認する" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." msgstr "ウォレット残高照会中…" -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." -msgstr "" +msgstr "確認中…" #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" @@ -2546,7 +2584,7 @@ msgstr "ビットコインアドレスをメールにて共有" msgid "Send by email" msgstr "メールで送信" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "ここから送金" @@ -2585,7 +2623,7 @@ msgstr "全残高を送金" msgid "Sending transaction" msgstr "取引送信中" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "ウォレット {{name}} から {{amountStr}} の送金を行います。" @@ -2702,24 +2740,27 @@ msgstr "単一アドレスウォレット" msgid "Skip" msgstr "スキップ" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" -msgstr "" +msgstr "スライドして承諾" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "スライドして購入" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" -msgstr "" +msgstr "スライドして支払う" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" -msgstr "" +msgstr "スライドして送る" + +#: 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 "いくつかのウォレットがビーキャッシュに対応できません。ビーキャッシュの取り戻しは復元ツールで試すとうまくいくかもしれません。" #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 @@ -2765,7 +2806,7 @@ msgstr "超節約" #: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" -msgstr "" +msgstr "ビーキャッシュ対応" #: www/views/paperWallet.html:7 msgid "Sweep" @@ -2795,7 +2836,7 @@ msgstr "長押しで表示" #: www/views/includes/walletInfo.html:3 msgid "Tap to recreate" -msgstr "" +msgstr "タップして再構築" #: www/views/includes/walletInfo.html:4 msgid "Tap to retry" @@ -2940,7 +2981,7 @@ msgstr "このアプリは素晴らしいです!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "このアプリは、最先端のセキュリティであなたのビットコインをお守りします。" -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "ビットコインペイメントの請求期限が切れています。" @@ -2950,15 +2991,15 @@ msgstr "ビットコインペイメントの請求期限が切れています。 msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "このパスワードは復元できません。リセットすることができません。弊社のサーバーで管理するものではありません。復元フレーズとセットで必ず書き留めておいて下さい。復元フレーズとこのパスワードのどれかを忘れてしまうと、ビットコインを復元することができません。ご注意下さい。" -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "この復元フレーズにパスワードがかかっています。このウォレットを復元するためには、復元フレーズに加え、パスワードも必要です。" -#: www/views/tx-details.html:93 +#: 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 "この取引の金額はビットコインネットワーク手数料より低いです。送金額より大きい手数料を払ってしまうことになります。" -#: www/views/tx-details.html:89 +#: 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" msgstr "この取引は承認されるまで非常に時間のかかる可能性があります。承認されずにネットワークに捨てられてしまう危険性もありますので、承認されるまでお待ちいただくことを強くおすすめします。" @@ -2967,14 +3008,14 @@ msgstr "この取引は承認されるまで非常に時間のかかる可能性 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "現在設定中のBitcore Wallet Service (BWS) サーバーにて、このウォレットの登録がありません。再登録を行うこともできます。" -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "履歴" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3029,7 +3070,7 @@ msgstr "Touch ID が失敗しました。" msgid "Transaction" msgstr "取引" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "取引情報を作成しました" @@ -3089,7 +3130,7 @@ msgstr "復元フレーズの単語 (通常 12 個) を入力して下さい。" msgid "Uh oh..." msgstr "あら…" -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "未承認" @@ -3163,7 +3204,7 @@ msgstr "Insightにて取引を表示" msgid "View Update" msgstr "更新情報を表示" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "ブロックチェーンで詳細を閲覧" @@ -3283,7 +3324,7 @@ msgstr "ウォレットタイプ" msgid "Wallet already exists" msgstr "既存のウォレットです" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "{{appName}}内の既存のウォレットです" @@ -3325,8 +3366,8 @@ msgstr "ウォレットがバックアップされていません" msgid "Wallet not found" msgstr "ウォレットが見つかりません。" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "ウォレットが未登録" @@ -3334,9 +3375,9 @@ msgstr "ウォレットが未登録" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "このウォレットは Wallet Service にて登録されていません。再び「新規作成」メニューから詳細設定を選び、復元フレーズをご入力下さい。" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "ウォレットの復元フレーズが削除されているため表示できません。" +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "ウォレットの復元フレーズが削除されているため表示できません" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3346,11 +3387,7 @@ msgstr "Wallet serviceが見つかりません。" msgid "Wallets" msgstr "ウォレット" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "ウォレットと連動" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3371,7 +3408,7 @@ msgstr "注意して下さい!" msgid "We'd love to do better." msgstr "サービスを改善していきます" -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "次の画面で確認作業を行います。" @@ -3415,7 +3452,7 @@ msgstr "アプリケーションストアにレビューを書いてみません msgid "Would you like to receive push notifications about payments?" msgstr "送金発生時にプッシュ通知を受け取りますか?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "単語の数が間違っています:" @@ -3451,7 +3488,7 @@ msgstr "GitHubのページにて最近の開発動向を見たり、改善案の msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "世界中のECサイトや店舗でビットコインを使って支払いができます。" -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "バックアップファイルの作成は「上級者向け」⇒「エクスポート」からアクセスできます。" @@ -3529,10 +3566,10 @@ msgstr "ウォレットは一度もクラウドへ保存されたりすること msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "ウォレットの鍵が暗号化されます。Copayでは送金時のパスワードをリセットしてくれる機能がありませんので、パスワードを忘れないよう、控えておいて下さい。" -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3541,7 +3578,7 @@ msgstr "[残高非表示中]" #: www/views/walletDetails.html:141 #: www/views/walletDetails.html:61 msgid "[Scanning Funds]" -msgstr "" +msgstr "[確認中]" #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" @@ -3551,7 +3588,7 @@ msgstr "BitPay VISAカードを追加します" msgid "locked by pending payments" msgstr "未対応送金の提案によりロック中" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "自分" @@ -3563,6 +3600,10 @@ msgstr "name@example.com" msgid "preparing..." msgstr "準備中..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "復元ツールはこちら" + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} を Amazon.com ギフトカードに" @@ -3575,11 +3616,11 @@ msgstr "{{amountStr}} を Mercado Livre Brazil ギフトカードに" 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)." msgstr "{{appName}}はブロックチェーンの情報を取得したり参加者を同期させたりするためにBitcore Wallet Service (BWS)に依存します。初期値としてBitPay社が提供する https://bws.bitpay.com (BitPay公式のBWSサーバー)を設定していますが、独自で運用してウォレットをそちらに接続しても構いません。" -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} のビットコインネットワーク手数料が差し引かれます。" -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "送金額に対する {{tx.txp[wallet.id].feeRatePerStr}}" @@ -3587,7 +3628,7 @@ msgstr "送金額に対する {{tx.txp[wallet.id].feeRatePerStr}}" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} 個の取引ダウンロード済み" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/nl.po b/i18n/po/nl.po index 63e93bc00..f8fdbd712 100644 --- a/i18n/po/nl.po +++ b/i18n/po/nl.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Dutch\n" "Language: nl\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-10 08:58-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Vertrouwd)" msgid "(possible double spend)" msgstr "(mogelijk dubbel besteed)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Een bestedingsvoorstel kan worden verwijderd als 1) u de aanmaker bent, en geen andere copayer deze heeft ondertekend, of 2) 24 uur zijn verstreken sinds het voorstel werd aangemaakt." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}} van de transactie" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}} van de transactie" @@ -48,16 +48,16 @@ msgstr "Alleen inwisselbaar op Mercado Livre (Brazilië)" msgid "A member of the team will review your feedback as soon as possible." msgstr "Een lid van het team zal zo spoedig mogelijk uw feedback bekijken." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Een totaal van {{amountAboveMaxSizeStr}} is uitgesloten. De maximum toegestane grootte voor een transactie is overschreden." -#: src/js/controllers/confirm.js:374 +#: 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 "Een totaal van {{amountBelowFeeStr}} is uitgesloten. Dit saldo is afkomstig uit ontvangsten kleiner dan de transactiekosten." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "Over" @@ -102,7 +102,7 @@ msgstr "Contactpersoon Toevoegen" msgid "Add Funds" msgstr "Saldo Toevoegen" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Notitie Toevoegen" @@ -126,7 +126,7 @@ msgstr "Een optioneel wachtwoord toevoegen voor het beveiligen van de herstel zi msgid "Add as a contact" msgstr "Toevoegen als contactpersoon" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Beschrijving toevoegen" @@ -161,7 +161,7 @@ msgstr "Adres Type" msgid "Addresses With Balance" msgstr "Adressen Met Saldo" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Geavanceerd" @@ -216,7 +216,7 @@ msgstr "Bedrag" msgid "Amount below minimum allowed" msgstr "Bedrag lager dan minimum toegestaan" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Bedrag te groot" @@ -248,7 +248,7 @@ msgstr "Kijkt er iemand mee? Iedereen die uw herstel zin weet heeft toegang tot msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Weet u zeker dat u wilt annuleren en deze portemonnee verwijderen?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Weet u zeker dat u deze contactpersoon wilt verwijderen?" @@ -301,9 +301,9 @@ msgstr "Gemiddelde bevestigingstijd" msgid "BIP32 path for address derivation" msgstr "BIP32 pad voor adres derivatie" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" -msgstr "BTC-portemonnees" +#: www/views/cashScan.html:25 +msgid "BTC wallets" +msgstr "BTC portemonnees" #: www/views/preferences.html:34 msgid "Backup" @@ -317,8 +317,9 @@ msgstr "Backup Nodig" msgid "Backup all livenet wallets before using this function" msgstr "Maak een backup van alle livenet portemonnees voordat u deze functie gebruikt" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Backup nodig" @@ -335,7 +336,7 @@ msgstr "Backup van portemonnee maken" msgid "Backup your wallet before using this function" msgstr "Maak een backup van uw portemonnee voordat u deze functie gebruikt" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Foutieve portemonnee-uitnodiging" @@ -358,22 +359,32 @@ msgstr "Bitcoin Adres" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "Bitcoin Cash (BCH) Saldo's" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" msgstr "Ondersteuning voor Bitcoin Cash" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "Bitcoin Cash Portemonnees" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" -msgstr "Bitcoin Netwerk Transactiekosten Beleid" +msgstr "Transactiekostenbeleid Bitcoin-netwerk" + +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "Bitcoin Portemonnees" #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" -msgstr "" +msgstr "Bitcoin cash Betaling" #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." @@ -444,7 +455,7 @@ msgstr "Transactiekosten berekenen" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Uitnodiging annuleren" msgid "Cannot Create Wallet" msgstr "Kan Portemonnee Niet Aanmaken" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Kan niet meerdere keren tegelijk deelnemen aan een portemonnee" @@ -497,7 +508,7 @@ msgstr "Kies uw doel portemonnee" msgid "Choose your source wallet" msgstr "Kies uw bron portemonnee" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Leegmaken" @@ -505,16 +516,16 @@ msgstr "Leegmaken" msgid "Clear cache" msgstr "Cache legen" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Klik om te accepteren" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Klik om te betalen" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Klik om te verzenden" @@ -532,7 +543,7 @@ msgstr "Sluiten" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "Munt" +msgstr "Valuta" #: www/views/preferences.html:22 msgid "Color" @@ -552,11 +563,11 @@ msgstr "Voltooid" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Bevestigen & Voltooien" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Bevestig aankoop" @@ -580,7 +590,7 @@ msgstr "Bevestig uw PIN" msgid "Confirm your new spending password" msgstr "Bevestig uw nieuwe bestedingswachtwoord" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Bevestigingen" @@ -617,6 +627,10 @@ msgstr "Ga verder" msgid "Contribute Translations" msgstr "Bijdragen aan Vertalingen" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay ondersteunt Bitcoin Cash alleen met gebruik van nieuwe versienummer adressen" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer reeds in deze portemonnee" @@ -667,11 +681,11 @@ msgstr "Kon geen toegang krijgen tot de portemonnee op de server. Graag dit chec msgid "Could not access to Amazon.com" msgstr "Kon geen verbinding maken met Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Kon geen toegang krijgen tot portemonnee" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Kon geen bericht toegevoegd worden aan geïmporteerde portemonnee zonder gedeelde sleutel" @@ -697,15 +711,15 @@ msgstr "Kon factuur niet aanmaken" msgid "Could not create transaction" msgstr "Kon transactie niet aanmaken" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Kon niet aanmaken met de gebruikte verlengde privé sleutel" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Kon niet aanmaken met de opgegeven verlengde publieke sleutel" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Kon niet worden gemaakt: Ongeldige portemonnee herstel zin" @@ -717,7 +731,7 @@ msgstr "Kon bestand niet ontsleutelen, check uw wachtwoord" msgid "Could not delete payment proposal" msgstr "Kon betalingsvoorstel niet verwijderen" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "Kon niet dupliceren" @@ -743,17 +757,17 @@ msgstr "Kon factuur niet opvragen" msgid "Could not get transactions" msgstr "Kon transacties niet opvragen" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Kon niet importeren" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Kon niet importeren. Controleer bestand en bestedingswachtwoord" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Kon niet toetreden tot portemonnee" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Gedeelde Portemonnee Aanmaken" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Bitcoin portemonnee aanmaken" @@ -821,8 +835,8 @@ msgstr "Gedeelde portemonnee aanmaken" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "{{formData.requiredCopayers}}-van-{{formData.totalCopayers}} portemonnee aanmaken" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Aangemaakt door" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Aangepaste Transactiekosten" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Datum" @@ -861,14 +875,14 @@ msgstr "Datum" msgid "Delete" msgstr "Verwijderen" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Verwijder Bestedingsvoorstel" #: www/views/preferencesAdvanced.html:33 #: www/views/preferencesDeleteWallet.html:3 msgid "Delete Wallet" -msgstr "Portemonnee Verwijderen" +msgstr "Portemonnee verwijderen" #: www/views/copayers.html:59 msgid "Delete it and create a new one" @@ -891,7 +905,7 @@ msgstr "Derivatie Pad" #: www/views/preferencesInformation.html:47 msgid "Derivation Strategy" -msgstr "Derivatie Strategie" +msgstr "Derivatiestrategie" #: www/views/buyAmazon.html:39 #: www/views/buyMercadoLibre.html:38 @@ -901,7 +915,7 @@ msgid "Details" msgstr "Details" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Uitgeschakeld" @@ -924,7 +938,7 @@ msgstr "Ziet u uw taal niet op Crowdin? Neem contact op met de Eigenaar op Crowd msgid "Download" msgstr "Download" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "Dupliceren voor BCH" @@ -1012,14 +1026,14 @@ msgstr "Vul de herstel zin in (BIP39)" msgid "Enter your email" msgstr "Vul uw email in" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Voer uw wachtwoord in" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Voer uw wachtwoord in" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Voer uw wachtwoord in" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Voer uw wachtwoord in" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Voer uw wachtwoord in" msgid "Error" msgstr "Fout" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Fout bij bevestigen" @@ -1108,11 +1122,11 @@ msgstr "Fout tijdens maken cadeaubon" msgid "Error creating the invoice" msgstr "Fout tijdens maken van de factuur" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Fout tijdens maken portemonnee" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Fout tijdens opvragen VerstuurMaximum informatie" @@ -1142,22 +1156,22 @@ msgstr "Fout tijdens bijwerken Debet Kaarten" msgid "Exceeded daily limit of $500 per user" msgstr "Dagelijkse limiet van $500 per gebruiker overschreden" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Verlopen" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Verloopt" #: www/views/preferencesAdvanced.html:21 msgid "Export Wallet" -msgstr "Exporteer Portemonnee" +msgstr "Portemonnee exporteren" #: www/views/preferencesHistory.html:11 #: www/views/preferencesHistory.html:14 @@ -1194,7 +1208,7 @@ msgstr "Exporteren mislukt" msgid "Family vacation funds" msgstr "Familie vakantie fonds" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Transactiekosten" @@ -1206,8 +1220,8 @@ msgstr "Niveau transactiekosten" msgid "Fee level is not defined" msgstr "Niveau transactiekosten is niet ingesteld" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Transactiekosten:" @@ -1281,7 +1295,7 @@ msgstr "Gevonden saldo:" msgid "Funds to be added" msgstr "Saldo toe te voegen" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Overgemaakt saldo" @@ -1330,16 +1344,16 @@ msgstr "Ga aan de slag door uw eerste toe te voegen." msgid "Getting fee levels..." msgstr "Hoogte transactiekosten opvragen..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "Cadeaubon" + #: 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 "Cadeaukaart is niet meer beschikbaar voor gebruik" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Cadeaubon" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "Cadeaubon verlopen" @@ -1350,18 +1364,20 @@ msgstr "Cadeaubon aangemaakt en klaar voor gebruik." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Terug" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1390,14 +1406,14 @@ msgstr "Hardware portemonnee" #: src/js/controllers/create.js:180 #: src/js/controllers/join.js:145 msgid "Hardware wallets are not yet supported with Bitcoin Cash" -msgstr "Hardwareportemonnees worden nog niet ondersteund voor Bitcoin Cash" +msgstr "Hardware portemonnees worden nog niet ondersteund bij Bitcoin Cash" #: www/views/tab-settings.html:20 msgid "Help & Support" msgstr "Hulp & Ondersteuning" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Hulp en ondersteuning is beschikbaar op de website." @@ -1476,7 +1492,7 @@ msgstr "Ik begrijp dat als deze app wordt verwijderd of verplaatst naar een ande msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Ik begrijp dat mijn saldo veilig op dit apparaat bewaard wordt, en niet in handen is van een bedrijf." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Ik heb het opgeschreven" @@ -1511,7 +1527,7 @@ msgstr "Importeren" #: www/views/import.html:3 msgid "Import Wallet" -msgstr "Importeer Portemonnee" +msgstr "Portemonnee importeren" #: www/views/tab-import-file.html:41 msgid "Import backup" @@ -1525,7 +1541,7 @@ msgstr "Importeer portemonnee" msgid "Importing Wallet..." msgstr "Portemonnee importeren..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Vul uw wachtwoord in om de backup van uw portemonnee te verifiëren." @@ -1534,10 +1550,10 @@ msgstr "Vul uw wachtwoord in om de backup van uw portemonnee te verifiëren." msgid "Inactive" msgstr "Inactief" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Onvolledig" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Onjuist netwerk adres" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Onvoldoende saldo" @@ -1570,6 +1586,10 @@ msgstr "Onvoldoende saldo" msgid "Insufficient funds for fee" msgstr "Onvoldoende saldo voor transactiekosten" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "Integraties" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Ongeldig" @@ -1613,7 +1633,7 @@ msgstr "Factuur verlopen" msgid "Is there anything we could do better?" msgstr "Is er iets dat we beter kunnen doen?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Klopt dit?" @@ -1663,13 +1683,14 @@ msgstr "Taal" msgid "Last Month" msgstr "Vorige Maand" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "Meer informatie" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Laten we de backup zin verifiëren." @@ -1741,8 +1762,8 @@ msgstr "Meh - het is OK" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Notitie" @@ -1754,7 +1775,7 @@ msgstr "Mercado Livre Brazil Cadeaubonnen" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Mercadolibre Cadeaubon Service is niet beschikbaar op dit moment. Probeer het later nog eens." -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Bericht Verkoper" @@ -1888,15 +1909,19 @@ msgstr "Geen portemonnee geselecteerd" msgid "No wallets available" msgstr "Geen portemonnees beschikbaar" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Geen portemonnees beschikbaar om saldo te ontvangen" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" -msgstr "Geen geschikte portemonnees voor Bitcoin Cash-ondersteuning" +msgstr "Geen geschikte portemonnees voor Bitcoin Cash ondersteuning" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "Niet-BIP44 portemonnee" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "Geen geschikte BTC-portemonnees" @@ -1908,7 +1933,7 @@ msgstr "Normaal" msgid "Not authorized" msgstr "Niet geautoriseerd" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Onvoldoende saldo voor transactiekosten" @@ -1929,6 +1954,10 @@ msgstr "Niet nu" msgid "Note" msgstr "Notitie" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "Let op: als deze BCH portemonnee is gedupliceerd van een BTC portemonnee, dan delen zij de zelfde herstel zin." + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Let op: alleen 1-1 (enkele ondertekening) portemonnees kunnen gebruikt worden voor het verkopen van bitcoin" @@ -1942,7 +1971,7 @@ msgstr "Meldingen" msgid "Notifications by email" msgstr "Meldingen per email" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Geef mij een melding wanneer bevestigd" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Op dit scherm ziet u al uw portemonnees, accounts en eigendommen." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Openen" @@ -2033,6 +2063,10 @@ msgstr "Website Openen" msgid "Open bitcoincash.org?" msgstr "Bitcoincash.org openen?" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "Open de herstel tool." + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Portemonnee openen" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Betaling Afgewezen" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2131,9 +2165,9 @@ msgstr "Betaling geaccepteerd. Deze zal worden verzonden door Glidera. In geval #: src/js/services/incomingData.js:152 msgid "Payment address was translated to new Bitcoin Cash address format:" -msgstr "Betalingsadres is vertaald naar nieuw adresformaat voor Bitcoin Cash:" +msgstr "Betalingsadres is vertaald naar nieuw adresformat voor Bitcoin Cash:" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Details Betaling" @@ -2154,11 +2188,11 @@ msgstr "Voorstellen in behandeling" msgid "Permanently delete this wallet." msgstr "Deze portemonnee definitief verwijderen." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Persoonlijke Portemonnee" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Schrijf zorgvuldig deze zin op." @@ -2166,7 +2200,7 @@ msgstr "Schrijf zorgvuldig deze zin op." msgid "Please connect a camera to get started." msgstr "Sluit een camera aan om aan de slag te gaan." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Vul de herstel zin in" @@ -2179,7 +2213,7 @@ msgstr "Vul de herstel zin van de portemonnee in" msgid "Please enter your PIN" msgstr "Vul uw PIN in" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Druk a.u.b. op elk woord in de juiste volgorde." @@ -2190,7 +2224,7 @@ msgstr "Upgrade Copay om deze actie uit te voeren" #: www/views/walletDetails.html:142 #: www/views/walletDetails.html:62 msgid "Please wait" -msgstr "Even geduld" +msgstr "Een moment geduld a.u.b." #: src/js/controllers/import.js:238 msgid "Please, select your backup file" @@ -2212,7 +2246,7 @@ msgstr "Adressen voorbereiden..." msgid "Preparing backup..." msgstr "Backup voorbereiden..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Druk nogmaals om te sluiten" @@ -2238,7 +2272,7 @@ msgstr "Voorstel Geaccepteerd" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Voorstel Aangemaakt" @@ -2300,12 +2334,16 @@ msgstr "Lees meer" msgid "Read more in our Wiki" msgstr "Lees meer in onze Wiki" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "Alleen-lezen portemonnee" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Ontvangen" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "Ontvangen in" @@ -2463,17 +2501,17 @@ msgstr "Scan nogmaals" msgid "Scan your fingerprint please" msgstr "Scan uw vingerafdruk" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "Scannen naar Bitcoin Cash in uw portemonnees" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." msgstr "Saldo Portemonnee scannen..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." -msgstr "" +msgstr "Saldo scannen..." #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" @@ -2544,7 +2582,7 @@ msgstr "Verstuur adressen per email" msgid "Send by email" msgstr "Verstuur via email" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Verzenden vanuit" @@ -2583,7 +2621,7 @@ msgstr "Maximale hoeveelheid verzenden" msgid "Sending transaction" msgstr "Transactie verzenden" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Verzenden van {{amountStr}} vanuit uw {{name}} portemonnee" @@ -2698,25 +2736,28 @@ msgstr "Portemonnee met 1 Adres" msgid "Skip" msgstr "Overslaan" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "Schuiven om te accepteren" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Schuif om te kopen" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "Schuiven om te betalen" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "Schuiven om te verzenden" +#: 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 "Sommige van uw portemonnees komen niet in aanmerking voor Bitcoin Cash ondersteuning. U kunt proberen toegang te krijgen tot het BCH saldo van deze portemonnees met gebruik van de" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Deze app is fantastisch!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Deze app bewaart uw bitcoin met de nieuwste beveiliging." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Dit bitcoin betalingsverzoek is verlopen." @@ -2944,15 +2985,15 @@ msgstr "Dit bitcoin betalingsverzoek is verlopen." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Dit wachtwoord kan niet worden achterhaald. Als het wachtwoord verloren gaat is er geen mogelijkheid om toegang tot uw saldo te herstellen." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Deze herstel zin is aangemaakt met een wachtwoord. Om deze portemonnee te herstellen heeft u de herstel zin en het wachtwoord nodig." -#: www/views/tx-details.html:93 +#: 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 "Het bedrag van deze transactie is te klein vergeleken met huidige Bitcoin netwerk transactiekosten. Bij dit bedrag betaald u transactiekosten vergelijkbaar met het bedrag zelf." -#: www/views/tx-details.html:89 +#: 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" msgstr "Deze transactie zou lang kunnen wachten op een bevestiging of kan worden geschrapt vanwege de lage transactiekosten die de verzender heeft gekozen" @@ -2961,14 +3002,14 @@ msgstr "Deze transactie zou lang kunnen wachten op een bevestiging of kan worden msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Deze portemonnee is niet geregistreerd bij de opgegeven Bitcore Wallet Service (BWS). U kunt deze opnieuw aanmaken vanuit de lokale informatie." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Tijdlijn" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Touch ID Mislukt" msgid "Transaction" msgstr "Transactie" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transactie Aangemaakt" @@ -3083,7 +3124,7 @@ msgstr "Vul de Herstel Zin in (meestal 12 woorden)" msgid "Uh oh..." msgstr "Oh oh..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Onbevestigd" @@ -3157,7 +3198,7 @@ msgstr "Bekijk Transactie op Insight" msgid "View Update" msgstr "Update Bekijken" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Bekijk op blockchain" @@ -3277,7 +3318,7 @@ msgstr "Portemonnee Type" msgid "Wallet already exists" msgstr "Portemonnee bestaat al" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "Portemonnee reeds in {{appName}}" @@ -3319,8 +3360,8 @@ msgstr "Nog geen backup van de portemonnee gemaakt" msgid "Wallet not found" msgstr "Portemonnee niet gevonden" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Portemonnee niet geregistreerd" @@ -3328,9 +3369,9 @@ msgstr "Portemonnee niet geregistreerd" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Portemonnee niet geregistreerd bij de wallet service. Maak deze opnieuw aan vanuit \"Portemonnee Aanmaken\" en maak gebruik van \"Geavanceerde Opties\" om uw herstel zin in te voeren" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Portemonnee herstel zin niet beschikbaar." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "Portemonnee herstel zin niet beschikbaar" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Wallet service niet gevonden" msgid "Wallets" msgstr "Portemonnees" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Portemonnees & Integratie" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Pas op!" msgid "We'd love to do better." msgstr "Wij doen het graag nog beter." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "We bevestigen dit op het volgende scherm." @@ -3409,7 +3446,7 @@ msgstr "Zou u bereid zijn om {{appName}} te beoordelen in de app store?" msgid "Would you like to receive push notifications about payments?" msgstr "Wilt u push meldingen ontvangen over betalingen?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Onjuist aantal herstel woorden:" @@ -3445,7 +3482,7 @@ msgstr "U kunt de laatste ontwikkelingen volgen en bijdragen aan deze open sourc msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "U kunt met bitcoin betalen bij miljoenen websites en winkels over de hele wereld." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "U kunt deze nog steeds exporteren vanuit Geavanceerd > Exporteren." @@ -3523,10 +3560,10 @@ msgstr "Uw portemonnee wordt nooit opgeslagen in de cloud of in standaard appara msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "Uw privé sleutel wordt versleuteld. Het Bestedingswachtwoord kan niet worden achterhaald, schrijf deze zorgvuldig op." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3535,7 +3572,7 @@ msgstr "[Saldo Verborgen]" #: www/views/walletDetails.html:141 #: www/views/walletDetails.html:61 msgid "[Scanning Funds]" -msgstr "" +msgstr "[Saldo Scannen]" #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" @@ -3545,7 +3582,7 @@ msgstr "voeg uw BitPay Visa kaart(en) toe" msgid "locked by pending payments" msgstr "vergrendeld door betalingen in behandeling" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "ik" @@ -3557,6 +3594,10 @@ msgstr "naam@voorbeeld.nl" msgid "preparing..." msgstr "voorbereiden..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "herstel tool." + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} voor Amazon.com Cadeaubon" @@ -3569,11 +3610,11 @@ msgstr "{{amountStr}} voor Mercado Livre Brazil Cadeaubon" 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)." msgstr "{{appName}} is afhankelijk van Bitcore Wallet Service (BWS) voor blockchain informatie, netwerk verbinding en Copayer synchronisatie. De standaard instelling wijst naar https://bws.bitpay.com (BitPay's openbare BWS instance)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} wordt in mindering gebracht voor bitcoin transactiekosten." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} van het te verzenden bedrag" @@ -3581,7 +3622,7 @@ msgstr "{{tx.txp[wallet.id].feeRatePerStr}} van het te verzenden bedrag" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transacties gedownload" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/pl.po b/i18n/po/pl.po index 46616bf00..18d415d48 100644 --- a/i18n/po/pl.po +++ b/i18n/po/pl.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Polish\n" "Language: pl\n" -"PO-Revision-Date: 2017-09-19 14:07-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Zaufany)" msgid "(possible double spend)" msgstr "(możliwa podwójna wypłata)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Wniosek wypłaty może być usunięty jeśli: 1) Po utworzeniu nie zatwierdził go żaden inny współwłaściciel portfela lub 2) minęły 24 godziny od kiedy wniosek został utworzony." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "{{btx.feeRateStr}} transakcji" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "{{tx.feeRateStr}} transakcji" @@ -48,16 +48,16 @@ msgstr "" msgid "A member of the team will review your feedback as soon as possible." msgstr "Członek zespołu zweryfikuje twoją opinię tak szybko, jak to możliwe." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Uwaga: łącznie kwota {{amountAboveMaxSizeStr}} została wyłączona. Został przekroczony maksymalny rozmiar dozwolony dla transakcji." -#: src/js/controllers/confirm.js:374 +#: 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 "Uwaga: łącznie kwota {{amountBelowFeeStr}} została wyłączona. Środki te pochodzą z UTXOs mniejszych niż gwarantowana prowizja sieci." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "O programie" @@ -102,7 +102,7 @@ msgstr "Dodaj kontakt" msgid "Add Funds" msgstr "Dodaj środki" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Dodaj notatkę" @@ -126,7 +126,7 @@ msgstr "Dodaj opcjonalnie hasło w celu zabezpieczenia kluczowej frazy" msgid "Add as a contact" msgstr "Dodaj jako kontakt" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Dodaj opis" @@ -161,7 +161,7 @@ msgstr "Rodzaj adresu" msgid "Addresses With Balance" msgstr "Adresy z funduszami" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Zaawansowane" @@ -216,7 +216,7 @@ msgstr "Kwota" msgid "Amount below minimum allowed" msgstr "Kwota poniżej minimum dozwolona" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Zbyt duża kwota" @@ -248,7 +248,7 @@ msgstr "Czy jesteś obserwowany? Każdy, kto zdobędzie twoją kluczową frazę msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Czy na pewno chcesz usunąć ten portfel?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Czy na pewno chcesz usunąć ten kontakt?" @@ -301,8 +301,8 @@ msgstr "Spodziewany czas potwierdzania" msgid "BIP32 path for address derivation" msgstr "BIP32 ścieżka dla adresu derywacji" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Potrzebna kopia zapasowa" msgid "Backup all livenet wallets before using this function" msgstr "Zrób kopię zapasową wszystkich swoich portfeli przed użyciem tej funkcji" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Potrzebna kopia zapasowa" @@ -335,7 +336,7 @@ msgstr "Kopia zapasowa portfela" msgid "Backup your wallet before using this function" msgstr "Zrób kopię zapasową portfela przed użyciem tej funkcji" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Nieprawidłowe zaproszenie" @@ -365,12 +366,22 @@ msgstr "" msgid "Bitcoin Cash Support" msgstr "" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Polityka prowizji sieci bitcoin" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "" @@ -428,7 +439,7 @@ msgstr "Kup bitcoiny" #: www/views/mercadoLibre.html:22 #: www/views/mercadoLibre.html:50 msgid "Buy a Gift Card" -msgstr "" +msgstr "Kup kartę podarunkową" #: src/js/controllers/buyAmazon.js:334 msgid "Buy from" @@ -444,7 +455,7 @@ msgstr "Obliczanie prowizji" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Anuluj zaproszenie" msgid "Cannot Create Wallet" msgstr "Nie można utworzyć portfela" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Nie można dołączyć tego samego portfela więcej niż raz" @@ -497,7 +508,7 @@ msgstr "Wybierz swój portfel docelowy" msgid "Choose your source wallet" msgstr "Wybierz swój portfel źródłowy" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Wyczyść" @@ -505,19 +516,19 @@ msgstr "Wyczyść" msgid "Clear cache" msgstr "Wyczyść pamięć podręczną" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" -msgstr "" +msgstr "Kliknij, aby zaakceptować" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" -msgstr "" +msgstr "Kliknij, aby zapłacić" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" -msgstr "" +msgstr "Kliknij, aby wysłać" #: www/views/customAmount.html:4 #: www/views/modals/mercadolibre-card-details.html:3 @@ -532,7 +543,7 @@ msgstr "Zamknij" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "" +msgstr "Moneta" #: www/views/preferences.html:22 msgid "Color" @@ -552,11 +563,11 @@ msgstr "Zakończono" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Potwierdź & zakończenie" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Potwierdź zakup" @@ -580,7 +590,7 @@ msgstr "Potwierdź kod PIN" msgid "Confirm your new spending password" msgstr "Potwierdź nowe hasło wypłat" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Potwierdzenia" @@ -617,6 +627,10 @@ msgstr "Dalej" msgid "Contribute Translations" msgstr "Wkład do tłumaczenia" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Użytkownik jest już w tym portfelu" @@ -657,7 +671,7 @@ msgstr "Skopiuj do schowka" #: src/js/controllers/buyMercadoLibre.js:102 msgid "Could not access Gift Card Service" -msgstr "" +msgstr "Nie można uzyskać dostępu do usługi kart podarunkowych" #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" @@ -667,11 +681,11 @@ msgstr "Nie można uzyskać dostępu do portfela na serwerze. Proszę sprawdzić msgid "Could not access to Amazon.com" msgstr "Nie może uzyskać dostępu do Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Nie można uzyskać dostępu do portfela" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Nie można dodać wiadomość do importowanego portfela bez udostępnionego klucza szyfrowania" @@ -697,15 +711,15 @@ msgstr "Nie można utworzyć faktury" msgid "Could not create transaction" msgstr "Nie można utworzyć transakcji" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Nie można utworzyć przy użyciu określonego rozszerzonego klucza prywatnego" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Nie można utworzyć przy użyciu określonego rozszerzonego klucza publicznego" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Nie można utworzyć: niepoprawna kluczowa fraza" @@ -717,9 +731,9 @@ msgstr "Nie można odszyfrować pliku, sprawdź hasło" msgid "Could not delete payment proposal" msgstr "Nie można usunąć wniosku wypłaty" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" -msgstr "" +msgstr "Nie można powielić" #: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" @@ -743,17 +757,17 @@ msgstr "Nie można pobrać faktury" msgid "Could not get transactions" msgstr "Nie można pobrać transakcji" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Nie można zaimportować" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Nie można zaimportować. Sprawdź plik wejściowy i hasło" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Nie można dołączyć portfela" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Utwórz współdzielony portfel" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Utwórz portfel bitcoin" @@ -821,8 +835,8 @@ msgstr "Utwórz współdzielony portfel" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Utwórz portfel {{formData.requiredCopayers}} z {{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Utworzony przez" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Niestandardowa Prowizja" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Data" @@ -861,7 +875,7 @@ msgstr "Data" msgid "Delete" msgstr "Usuń" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Usuń wniosek wypłaty" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Szczegóły" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Wyłącz" @@ -924,13 +938,13 @@ msgstr "Nie widzisz swojego języka na Crowdin? Skontaktuj się z właścicielem msgid "Download" msgstr "Pobierz" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "" #: src/js/services/onGoingProcess.js:49 msgid "Duplicating wallet..." -msgstr "" +msgstr "Duplikowanie portfela..." #: 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." @@ -979,7 +993,7 @@ msgstr "Włącz kamerę aby rozpocząć." #: www/views/tab-settings.html:49 msgid "Enabled" -msgstr "" +msgstr "Włączone" #: src/js/services/walletService.js:1047 #: src/js/services/walletService.js:1062 @@ -992,7 +1006,7 @@ msgstr "Wprowadź podwójne uwierzytelnienie swojego konta BitPay" #: www/views/amount.html:4 msgid "Enter amount" -msgstr "" +msgstr "Wprowadź kwotę" #: www/views/modals/chooseFeeLevel.html:41 msgid "Enter custom fee" @@ -1012,14 +1026,14 @@ msgstr "Wprowadź kluczową frazę (BIP39)" msgid "Enter your email" msgstr "Wpisz swój adres e-mail" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Wprowadź hasło" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Wprowadź hasło" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Wprowadź hasło" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Wprowadź hasło" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Wprowadź hasło" msgid "Error" msgstr "Błąd" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Błąd w potwierdzeniu" @@ -1106,13 +1120,13 @@ msgstr "Błąd przy tworzeniu karty upominkowej" #: src/js/controllers/buyAmazon.js:94 #: src/js/controllers/buyMercadoLibre.js:94 msgid "Error creating the invoice" -msgstr "" +msgstr "Wystąpił błąd podczas tworzenia faktury" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Błąd podczas tworzenia portfela" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Wystąpił błąd podczas uzyskiwania informacji SendMax" @@ -1142,16 +1156,16 @@ msgstr "Błąd aktualizacji kart debetowych" msgid "Exceeded daily limit of $500 per user" msgstr "Dzienny limit 500$ na użytkownika został przekroczony" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Wygasł" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Wygasa" @@ -1179,7 +1193,7 @@ msgstr "Rozszerzone klucze publiczne" #: src/js/services/onGoingProcess.js:20 msgid "Extracting Wallet information..." -msgstr "" +msgstr "Wyodrębnianie danych z portfela..." #: src/js/controllers/export.js:115 #: src/js/controllers/export.js:126 @@ -1194,7 +1208,7 @@ msgstr "Nie udało się wyeksportować" msgid "Family vacation funds" msgstr "Środki na rodzinne wakacje" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Prowizja" @@ -1206,8 +1220,8 @@ msgstr "Poziom opłaty" msgid "Fee level is not defined" msgstr "Poziom opłaty nie jest zdefiniowany" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Prowizja:" @@ -1230,7 +1244,7 @@ msgstr "Plik/Tekst" #: www/views/preferencesLogs.html:17 msgid "Filter setting" -msgstr "" +msgstr "Ustawienie filtra" #: src/js/services/fingerprintService.js:43 #: src/js/services/fingerprintService.js:48 @@ -1281,7 +1295,7 @@ msgstr "Znaleziono środki:" msgid "Funds to be added" msgstr "Środki, które zostaną dodane" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Środki przelewane" @@ -1316,7 +1330,7 @@ msgstr "Otrzymywanie wiadomości i aktualizacji z BitPay" #: www/views/onboarding/welcome.html:8 msgctxt "button" msgid "Get started" -msgstr "" +msgstr "Pierwsze kroki" #: www/views/bitpayCard.html:49 msgid "Get started" @@ -1330,15 +1344,15 @@ msgstr "Zacznij dodając swój pierwszy kontakt." msgid "Getting fee levels..." msgstr "Uzyskiwanie informacji o prowizji..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "" - -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Karta podarunkowa" +msgstr "Karta podarunkowa nie jest już dostępna" #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" @@ -1350,18 +1364,20 @@ msgstr "Karta podarunkowa wygenerowana i gotowa do użycia." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Powrót" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Centrum pomocy" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Informacja o pomocy i wsparciu technicznym jest dostępna na stronie internetowej." @@ -1476,7 +1492,7 @@ msgstr "Rozumiem, że jeśli aplikacja zostanie przeniesiona na inne urządzenie msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Rozumiem, że moje środki są bezpieczne na tym urządzeniu i nie znajdują się w posiadaniu spółki." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Zapisałem to" @@ -1525,19 +1541,19 @@ msgstr "Importuj portfel" msgid "Importing Wallet..." msgstr "Importowanie portfela..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "W celu weryfikacji kopii zapasowej portfela wpisz swoje hasło." #: www/views/mercadoLibreCards.html:24 #: www/views/modals/mercadolibre-card-details.html:29 msgid "Inactive" -msgstr "" +msgstr "Nieaktywne" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Nie wszyscy współwłaściciele dołączyli" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Nieprawidłowy adres" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Nie ma wystarczającej ilości środków" @@ -1570,6 +1586,10 @@ msgstr "Nie ma wystarczającej ilości środków" msgid "Insufficient funds for fee" msgstr "Niewystarczające środki na prowizję" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Nieprawidłowy" @@ -1607,13 +1627,13 @@ msgstr "Zaproszenie do współdzielenia portfela {{appName}}" #: www/views/mercadoLibreCards.html:20 #: www/views/modals/mercadolibre-card-details.html:48 msgid "Invoice expired" -msgstr "" +msgstr "Faktura wygasła" #: src/js/controllers/feedback/send.js:79 msgid "Is there anything we could do better?" msgstr "Czy jest coś, co możemy poprawić?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Czy dane są poprawne?" @@ -1663,13 +1683,14 @@ msgstr "Język" msgid "Last Month" msgstr "Zeszły miesiąc" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" -msgstr "" +msgstr "Dowiedz się więcej" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Sprawdź swoją kluczową frazę." @@ -1708,7 +1729,7 @@ msgstr "Skuteczna blokada. Proszę czekać, aby usunąć wniosek wypłaty" #: www/views/includes/logOptions.html:3 msgid "Log options" -msgstr "" +msgstr "Opcje dziennika" #: www/views/modals/bitpay-card-confirmation.html:14 msgid "Log out" @@ -1741,8 +1762,8 @@ msgstr "Spoko - może być" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Notatka" @@ -1754,7 +1775,7 @@ msgstr "" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "" -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Wiadomość handlowa" @@ -1846,7 +1867,7 @@ msgstr "Brak kontaktów" #: www/views/preferencesLogs.html:16 msgid "No entries for this log level" -msgstr "" +msgstr "Brak wpisów dla tego poziomu dziennika" #: www/views/preferencesExternal.html:12 msgid "No hardware information available." @@ -1888,15 +1909,19 @@ msgstr "Nie wybrano portfela" msgid "No wallets available" msgstr "Brak dostępnych portfeli" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Brak portfeli do otrzymania środków" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "" @@ -1908,7 +1933,7 @@ msgstr "Zwykła" msgid "Not authorized" msgstr "Brak autoryzacji" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Brak środków na opłacenie prowizji" @@ -1929,6 +1954,10 @@ msgstr "Nie teraz" msgid "Note" msgstr "Notatka" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "" + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Uwaga: tylko 1-1 portfela (pojedynczy podpis) może być wykorzystywany do sprzedaży bitcoinów" @@ -1942,7 +1971,7 @@ msgstr "Powiadomienia" msgid "Notifications by email" msgstr "Powiadomienia e-mail" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Powiadom mnie, jeśli potwierdzono" @@ -1986,16 +2015,17 @@ 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." msgstr "Na tym ekranie można zobaczyć wszystkie swoje portfele, konta i środki." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Otwórz" @@ -2031,6 +2061,10 @@ msgstr "Otwórz stronę internetową" #: src/js/controllers/preferencesCash.js:32 msgid "Open bitcoincash.org?" +msgstr "Otworzyć bitcoincash.org?" + +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." msgstr "" #: www/views/tab-receive.html:27 @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Wypłata odrzucona" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Wypłata zaakceptowana. Będzie nadana przez Glidera. W przypadku wystą msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Szczegóły wypłaty" @@ -2144,7 +2178,7 @@ msgstr "Wniosek o płatność" #: www/views/mercadoLibreCards.html:22 #: www/views/modals/mercadolibre-card-details.html:39 msgid "Pending" -msgstr "" +msgstr "Oczekiwanie" #: www/views/proposals.html:4 msgid "Pending Proposals" @@ -2154,11 +2188,11 @@ msgstr "Rozpatrywane płatności" msgid "Permanently delete this wallet." msgstr "Trwale usuń portfel." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Portfel osobisty" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Proszę dokładnie zanotować tę kluczową frazę." @@ -2166,7 +2200,7 @@ msgstr "Proszę dokładnie zanotować tę kluczową frazę." msgid "Please connect a camera to get started." msgstr "Proszę podłączyć kamerę, aby zacząć." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Wpisz kluczową frazę" @@ -2179,7 +2213,7 @@ msgstr "Wpisz kluczową frazę portfela" msgid "Please enter your PIN" msgstr "Wprowadź kod PIN" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Proszę wpisać każde słowo we właściwej kolejności." @@ -2190,7 +2224,7 @@ msgstr "Proszę uaktualnić Copay, by móc wykonać tę operację" #: www/views/walletDetails.html:142 #: www/views/walletDetails.html:62 msgid "Please wait" -msgstr "" +msgstr "Czekaj" #: src/js/controllers/import.js:238 msgid "Please, select your backup file" @@ -2212,7 +2246,7 @@ msgstr "Przygotowywanie adresów..." msgid "Preparing backup..." msgstr "Przygotowywanie kopii zapasowej..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Naciśnij ponownie, aby wyjść" @@ -2238,7 +2272,7 @@ msgstr "Płatność przyjęta" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Płatność utworzona" @@ -2256,11 +2290,11 @@ msgstr "Proponowane płatności" #: src/js/controllers/buyAmazon.js:282 msgid "Purchase Amount is limited to {{limitPerDay}} {{currency}} per day" -msgstr "" +msgstr "Kwota zakupu jest ograniczona do {{limitPerDay}} {{currency}} dziennie" #: src/js/controllers/buyMercadoLibre.js:281 msgid "Purchase amount must be a value between 50 and 2000" -msgstr "" +msgstr "Kwota zakupu musi być wartością z przedziału od 50 do 2000" #: www/views/onboarding/notifications.html:3 msgid "Push Notifications" @@ -2298,6 +2332,10 @@ msgstr "Zobacz więcej" #: src/js/controllers/preferences.js:65 #: src/js/controllers/tx-details.js:54 msgid "Read more in our Wiki" +msgstr "Więcej informacji w naszej Wiki" + +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" msgstr "" #: www/views/tab-receive.html:3 @@ -2305,7 +2343,7 @@ msgstr "" msgid "Receive" msgstr "Otrzymaj" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "" @@ -2356,7 +2394,7 @@ msgstr "Przywracanie portfela..." #: www/views/modals/mercadolibre-card-details.html:22 msgid "Redeem now" -msgstr "" +msgstr "Zrealizuj teraz" #: src/js/controllers/modals/txpDetails.js:63 #: src/js/controllers/tx-details.js:80 @@ -2463,7 +2501,7 @@ msgstr "Skanuj ponownie" msgid "Scan your fingerprint please" msgstr "Proszę zeskanować linie papilarne" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "" @@ -2471,9 +2509,9 @@ msgstr "" msgid "Scanning Wallet funds..." msgstr "Skanowanie środków portfela..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." -msgstr "" +msgstr "Skanowanie środków portfela..." #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" @@ -2544,7 +2582,7 @@ msgstr "Wyślij adresy przez e-mail" msgid "Send by email" msgstr "Wyślij przez e-mail" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Wyślij z" @@ -2583,7 +2621,7 @@ msgstr "Wysyłanie całej kwoty" msgid "Sending transaction" msgstr "Wysyłanie transakcji" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Wysyłanie {{amountStr}} z twojego portfela {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Pojedynczy adres portfela" msgid "Skip" msgstr "Pomiń" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Przesuń, aby kupić" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "" +#: 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 "" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Ta aplikacja jest fantastyczna!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Ta aplikacja przechowuje Twoje bitcoiny z zaawansowanymi zabezpieczeniami." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Ten wniosek płatności wygasł." @@ -2944,15 +2985,15 @@ msgstr "Ten wniosek płatności wygasł." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "To hasło nie może zostać odzyskane. Jeśli je utracisz, nie będziesz mógł odzyskać swoich środków." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Ta kluczowa fraza został utworzona przy użyciu hasła. Aby odzyskać portfel potrzebna jest kluczowa fraza i hasło." -#: www/views/tx-details.html:93 +#: 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 "" -#: www/views/tx-details.html:89 +#: 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" msgstr "Potwierdzenie transakcja może trwać długo lub zostać przerwane z powodu niskiej prowizji ustalonej przez nadawcę" @@ -2961,14 +3002,14 @@ msgstr "Potwierdzenie transakcja może trwać długo lub zostać przerwane z pow msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Ten portfel nie jest zarejestrowany na Bitcore Wallet Service (BWS). Możesz go odtworzyć z lokalnego nośnika." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Historia" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Odczyt Touch ID nie powiódł się" msgid "Transaction" msgstr "Transakcja" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transakcja utworzona" @@ -3083,7 +3124,7 @@ msgstr "Wpisz kluczową frazę (zwyczajowo 12 słów)" msgid "Uh oh..." msgstr "Ups..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Niepotwierdzone" @@ -3157,7 +3198,7 @@ msgstr "Zobacz transakcje na Insight" msgid "View Update" msgstr "Zobacz aktualizacje" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Zobacz na blockchainie" @@ -3277,7 +3318,7 @@ msgstr "Rodzaj portfela" msgid "Wallet already exists" msgstr "Portfel już istnieje" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "" @@ -3319,8 +3360,8 @@ msgstr "Portfel nie ma kopii zapasowej" msgid "Wallet not found" msgstr "Nie znaleziono portfela" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Portfel nie jest zarejestrowany" @@ -3328,9 +3369,9 @@ msgstr "Portfel nie jest zarejestrowany" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Portfel nie jest zarejestrowany w Wallet Service. Odtwórz go używając polecenia \"Utwórz portfel\" z wykorzystaniem kluczowej frazy w ustawieniach zaawansowanych" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Kluczowa fraza niedostępna." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Nie znaleziono serwera" msgid "Wallets" msgstr "Portfele" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Portfele i integracja" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Uważaj!" msgid "We'd love to do better." msgstr "Chcielibyśmy zrobić to lepiej." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Potwierdzimy na następnym ekranie." @@ -3409,7 +3446,7 @@ msgstr "Czy zechciałbyś ocenić {{appName}} w app store?" msgid "Would you like to receive push notifications about payments?" msgstr "Czy chcesz otrzymywać wyskakujące powiadomienia o płatnościach?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Nieprawidłowa ilość słów frazy:" @@ -3445,7 +3482,7 @@ msgstr "Możesz zobaczyć postępy prac i przyczynić się do rozwoju tej aplika msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Bitcoiny możesz wydać w milionach sklepów i stron internetowych na całym świecie." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Nadal możesz go wyeksportować w Zaawansowane > Eksport." @@ -3523,10 +3560,10 @@ msgstr "Twój portfel nigdy nie jest przechowywany w chmurze lub na urządzeniac msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "Twój portfel będzie zaszyfrowany. Hasło wypłat nie będzie mogło być odzyskane. Pamiętaj, aby je zapisać." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "dodaj swoje karty BitPay Visa" msgid "locked by pending payments" msgstr "zablokowane przez oczekujące wypłaty" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "ja" @@ -3557,6 +3594,10 @@ msgstr "nazwa@przyklad.com" msgid "preparing..." msgstr "Przygotowywanie..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "" + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} dla karty upominkowej Amazon.com" @@ -3569,11 +3610,11 @@ msgstr "" 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)." msgstr "{{appName}} jest zależny od Bitcore Wallet Service (BWS) jeśli chodzi o informacje dotyczące blokcheina, sieci i synchronizacji współwłaścicieli portfela. Domyślnie jest to https://bws.bitpay.com (BitPay's public BWS instance)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} zostanie potrącone jako prowizja sieci bitcoin." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" @@ -3581,7 +3622,7 @@ msgstr "" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} transakcje pobrane" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/pt.po b/i18n/po/pt.po index 4e70bdfda..399157efd 100644 --- a/i18n/po/pt.po +++ b/i18n/po/pt.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-10 08:58-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Confiável)" msgid "(possible double spend)" msgstr "(Possível gasto duplo)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Uma proposta de pagamento pode ser apagada se 1) você é o criador e outro copayer não subscreveu, ou 2) Passaram-se 24 horas desde que a proposta foi criada." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "- {{btx.feeRateStr}} da transação" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "- {{tx.feeRateStr}} da transação" @@ -48,16 +48,16 @@ msgstr "Somente resgatável no Mercado Livre (Brasil)" msgid "A member of the team will review your feedback as soon as possible." msgstr "Um membro da equipa irá rever a sua avaliação assim que possível." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "O montante de {{amountAboveMaxSizeStr}} foi excluido. O valor máximo permitido para uma transação foi excedido." -#: src/js/controllers/confirm.js:374 +#: 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 "O montante de {{amountBelowFeeStr}} foi excluido. Estes fundos vieram de UTXOs menores que a taxa de rede fornecida." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "Sobre" @@ -102,7 +102,7 @@ msgstr "Adicionar contacto" msgid "Add Funds" msgstr "Adicionar fundos" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Adicionar nota" @@ -126,7 +126,7 @@ msgstr "Adicionar uma senha opcional para asegurar a frase de recuperação" msgid "Add as a contact" msgstr "Adicionar como um contato" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Adicionar descrição" @@ -161,7 +161,7 @@ msgstr "Tipo de Endereço" msgid "Addresses With Balance" msgstr "Endereços com valores" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Avançado" @@ -216,7 +216,7 @@ msgstr "Valor" msgid "Amount below minimum allowed" msgstr "Montante abaixo do mínimo permitido" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Montante muito grande" @@ -248,7 +248,7 @@ msgstr "Você está sendo observado? Qualquer pessoa com sua frase de recuperaç msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Tem certeza que deseja cancelar e eliminar esta carteira?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Tem certeza que deseja excluir este contato?" @@ -301,8 +301,8 @@ msgstr "Tempo de confirmação (em média)" msgid "BIP32 path for address derivation" msgstr "Pacote BIP32 para endereço de derivação" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "Carteiras BTC" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Cópia de segurança necessária" msgid "Backup all livenet wallets before using this function" msgstr "Faça backup de todas as carteiras do livenet antes de usar esta função" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Backup necessário" @@ -335,7 +336,7 @@ msgstr "Criar cópia da carteira" msgid "Backup your wallet before using this function" msgstr "Faça backup da sua carteira antes de usar esta função" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Convite para carteira inválido" @@ -365,12 +366,22 @@ msgstr "Saldos Bitcoin Cash (BCH)" msgid "Bitcoin Cash Support" msgstr "Suportar Bitcoin Cash" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "Carteiras Bitcoin Cash" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Política de taxa de rede Bitcoin" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "Carteiras Bitcoin" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "Pagamento Bitcoin Cash" @@ -428,7 +439,7 @@ msgstr "Comprar Bitcoin" #: www/views/mercadoLibre.html:22 #: www/views/mercadoLibre.html:50 msgid "Buy a Gift Card" -msgstr "Comprar um Vale-presente" +msgstr "Comprar um Vale-Presente" #: src/js/controllers/buyAmazon.js:334 msgid "Buy from" @@ -444,7 +455,7 @@ msgstr "A calcular taxa" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Cancelar convite" msgid "Cannot Create Wallet" msgstr "Não é possível criar a carteira" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Não pode juntar-se a mesma carteira mais que uma vez" @@ -497,7 +508,7 @@ msgstr "Escolha a sua carteira de destino" msgid "Choose your source wallet" msgstr "Escolha a sua carteira de origem" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Eliminar" @@ -505,16 +516,16 @@ msgstr "Eliminar" msgid "Clear cache" msgstr "Limpar cache" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Clique para aceitar" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Clique para pagar" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Clique para enviar" @@ -552,11 +563,11 @@ msgstr "Concluído" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Confirmar & Terminado" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Confirmar compra" @@ -580,7 +590,7 @@ msgstr "Confirme o seu PIN" msgid "Confirm your new spending password" msgstr "Confirme a nova senha de pagamento" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Confirmações" @@ -617,6 +627,10 @@ msgstr "Continuar" msgid "Contribute Translations" msgstr "Contribuir para a tradução" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "Copay apenas suporta Bitcoin Cash utilizando a nova versão de endereço" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer já está nesta carteira" @@ -657,7 +671,7 @@ msgstr "Copiar para área de transferência" #: src/js/controllers/buyMercadoLibre.js:102 msgid "Could not access Gift Card Service" -msgstr "Não foi possível acessar o serviço de vale-presente" +msgstr "Não foi possível acessar o serviço de Vale-Presente" #: www/views/tab-import-phrase.html:2 msgid "Could not access the wallet at the server. Please check:" @@ -667,11 +681,11 @@ msgstr "Não foi possível acessar a carteira no servidor. Por favor, verifique: msgid "Could not access to Amazon.com" msgstr "Não foi possível acessar a Amazon.com" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Impossível aceder à carteira" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Não foi possível adicionar mensagem à carteira importada sem chave de criptografia compartilhada" @@ -697,15 +711,15 @@ msgstr "Não foi possível criar a fatura" msgid "Could not create transaction" msgstr "Não foi possível criar a transação" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Não foi possível criar usando a chave privada estendida especificada" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Não foi possível criar usando a chave privada estendida especificada" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Não foi possível criar: Frase de recuperação de carteira inválida" @@ -717,7 +731,7 @@ msgstr "Não foi possível descriptografar o arquivo, verifique sua senha" msgid "Could not delete payment proposal" msgstr "Não foi possível excluir a proposta de pagamento" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "Não foi possível duplicar" @@ -743,17 +757,17 @@ msgstr "Não foi possível obter a fatura" msgid "Could not get transactions" msgstr "Não foi possível obter o histórico das transações" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Não foi possível importar" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Não foi possível importar. Verifique o arquivo de entrada e senha de compra" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Impossível juntar à carteira" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Criar carteira partilhada" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Criar carteira bitcoin" @@ -821,8 +835,8 @@ msgstr "Criar carteira partilhada" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Criar carteira de {{formData.requiredCopayers}}-de-{{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Criado por" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "Taxa personalizada" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Data" @@ -861,7 +875,7 @@ msgstr "Data" msgid "Delete" msgstr "Eliminar" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Excluir Proposta de Pagamento" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Detalhes" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Desativado" @@ -924,7 +938,7 @@ msgstr "Não vê o seu idioma no Crowdin? Contacte o Dono no Crowdin! Nós adora msgid "Download" msgstr "Download" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "Duplicado para BCH" @@ -1012,14 +1026,14 @@ msgstr "Digite a frase de recuperação (BIP39)" msgid "Enter your email" msgstr "Digite seu e-mail" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Digite sua senha" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Digite sua senha" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Digite sua senha" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Digite sua senha" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Digite sua senha" msgid "Error" msgstr "Erro" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Erro na confirmação" @@ -1108,11 +1122,11 @@ msgstr "Erro ao criar vale-presente" msgid "Error creating the invoice" msgstr "Erro ao criar a fatura" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Erro na criação da carteira" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "Erro ao obter informações de SendMax" @@ -1142,16 +1156,16 @@ msgstr "Erro na atualização dos Cartões de Débito" msgid "Exceeded daily limit of $500 per user" msgstr "Excedido limite diário de $500 por usuário" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Expirado" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "Expira" @@ -1194,7 +1208,7 @@ msgstr "Falha ao exportar" msgid "Family vacation funds" msgstr "Fundos de férias com a família" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Taxa" @@ -1206,8 +1220,8 @@ msgstr "Nível de taxa" msgid "Fee level is not defined" msgstr "Nível de taxa não está definido" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Taxa:" @@ -1281,7 +1295,7 @@ msgstr "Saldos encontrados:" msgid "Funds to be added" msgstr "Fundos a ser adicionado" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Saldos transferidos" @@ -1330,15 +1344,15 @@ msgstr "Comece adicionando o primeiro." msgid "Getting fee levels..." msgstr "Obtendo níveis de taxa..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "Vale-Presente" + #: 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 "Vale-presente não está mais disponível para uso" - -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Vale-presente" +msgstr "Vale-Presente não está mais disponível para uso" #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" @@ -1350,18 +1364,20 @@ msgstr "Vale-presente gerado e pronto para uso." #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Retroceder" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Ajuda e suporte" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Informações de Ajuda e Suporte estão disponíveis no site." @@ -1476,7 +1492,7 @@ msgstr "Eu entendi que se esse aplicativo for movido para outro dispositivo ou d msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Eu entendi que meu saldo são mantidos em segurança neste dispositivo e não por uma empresa." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Já escrevi isso" @@ -1525,7 +1541,7 @@ msgstr "Importar carteira" msgid "Importing Wallet..." msgstr "A importar a carteira..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "A fim de verificar o seu backup de carteira, por favor, digite sua senha." @@ -1534,10 +1550,10 @@ msgstr "A fim de verificar o seu backup de carteira, por favor, digite sua senha msgid "Inactive" msgstr "Inativo" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Incompleto" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "Endereço de rede incorreto" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Fundos insuficientes" @@ -1570,6 +1586,10 @@ msgstr "Fundos insuficientes" msgid "Insufficient funds for fee" msgstr "Fundos insuficientes para taxa" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "Integrações" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Inválido" @@ -1613,7 +1633,7 @@ msgstr "Fatura expirada" msgid "Is there anything we could do better?" msgstr "Há algo mais que podemos ajudar?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Isto está correto?" @@ -1663,13 +1683,14 @@ msgstr "Idioma" msgid "Last Month" msgstr "Mês anterior" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "Saiba mais" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Vamos verificar a sua frase de backup." @@ -1741,20 +1762,20 @@ msgstr "Meh - está tudo bem" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Nota" #: www/views/mercadoLibre.html:6 msgid "Mercado Livre Brazil Gift Cards" -msgstr "Vales-presente do Mercado Livre Brasil" +msgstr "Vales-Presente do Mercado Livre Brasil" #: src/js/controllers/buyMercadoLibre.js:98 msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "Serviço de Vale-Presente Mercado Livre não está disponível neste momento. Por favor, tente mais tarde." -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Mensagem Publicitária" @@ -1888,15 +1909,19 @@ msgstr "Sem carteira selecionada" msgid "No wallets available" msgstr "Não há carteiras disponíveis" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Nenhuma Carteira disponível para receber fundos" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "Sem carteiras elegíveis para suporte a Bitcoin Cash" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "Carteira sem BIP44" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "Carteiras BTC não elegíveis" @@ -1908,7 +1933,7 @@ msgstr "Normal" msgid "Not authorized" msgstr "Não autorizada" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Não há fundos para taxa" @@ -1929,6 +1954,10 @@ msgstr "Agora não" msgid "Note" msgstr "Nota" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "Nota: se esta carteira BCH foi duplicada de uma carteira BTC, elas compartilham a mesma frase de recuperação." + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Aviso: Apenas Carteiras 1-1 (de assinatura única) podem ser usadas para vender bitcoins" @@ -1942,7 +1971,7 @@ msgstr "Notificações" msgid "Notifications by email" msgstr "Notificações por e-mail" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "Me informe se confirmado" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "Nesta tela você pode ver todas as suas carteiras, contas e ativos." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Abrir" @@ -2033,6 +2063,10 @@ msgstr "Abrir Site" msgid "Open bitcoincash.org?" msgstr "Abrir bitcoincash.org?" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "Abrir ferramenta de recuperação." + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Abrir Carteira" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Pagamento Rejeitado" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Pagamento aceito. Ele será publicado por Glidera. Em caso de problema, msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "Endereço de pagamento foi traduzido para o novo formato de endereço Bitcoin Cash:" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Detalhes do pagamento" @@ -2154,11 +2188,11 @@ msgstr "Proposta pendente" msgid "Permanently delete this wallet." msgstr "Excluir permanentemente esta carteira." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Carteira Pessoal" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Por favor, anote esta frase com cuidado." @@ -2166,7 +2200,7 @@ msgstr "Por favor, anote esta frase com cuidado." msgid "Please connect a camera to get started." msgstr "Por favor conecte uma câmera para iniciar." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Por favor, digite a frase de recuperação" @@ -2179,7 +2213,7 @@ msgstr "Por favor, digite a frase de recuperação da carteira" msgid "Please enter your PIN" msgstr "Introduza o seu PIN" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Por favor escolhe cada palavra na ordem correta." @@ -2212,7 +2246,7 @@ msgstr "A preparar os endereços..." msgid "Preparing backup..." msgstr "A preparar o backup..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Pressione novamente para sair" @@ -2238,7 +2272,7 @@ msgstr "Proposta aceite" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Proposta criada" @@ -2300,12 +2334,16 @@ msgstr "Ler mais" msgid "Read more in our Wiki" msgstr "Leia mais em nosso Wiki" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "Carteira somente leitura" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Receber" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "Receber em" @@ -2463,7 +2501,7 @@ msgstr "Escanear novamente" msgid "Scan your fingerprint please" msgstr "Escaneie sua impressão digital, por favor" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "Pesquisar suas carteiras por Bitcoin Cash" @@ -2471,7 +2509,7 @@ msgstr "Pesquisar suas carteiras por Bitcoin Cash" msgid "Scanning Wallet funds..." msgstr "Pesquisando fundos de carteira…" -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "Pesquisando fundos..." @@ -2544,7 +2582,7 @@ msgstr "Enviar endereços por e-mail" msgid "Send by email" msgstr "Enviar por E-mail" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Enviar De" @@ -2583,7 +2621,7 @@ msgstr "Quantidade máxima de envio" msgid "Sending transaction" msgstr "Enviando transação" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Enviando {{amountStr}} de sua carteira {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Único endereço carteira" msgid "Skip" msgstr "Pular" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "Deslize para aceitar" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "Deslize para comprar" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "Deslize para pagar" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "Deslize para enviar" +#: 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 "Algumas das suas carteiras não são elegíveis para suportar Bitcoin Cash. Você pode tentar acessar fundos BCH destas carteiras usando a" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Esta aplicação é fantástica!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "Este aplicativo armazena seu bitcoin com segurança de ponta." -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Este bitcoin pagamento pedido expirou." @@ -2944,15 +2985,15 @@ msgstr "Este bitcoin pagamento pedido expirou." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "Esta senha não pode ser recuperada. Se a senha for perdida, não há nenhuma maneira que você poderia recuperar seus fundos." -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Esta frase de recuperação foi criada com uma senha. Para recuperar esta carteira, tanto a frase de recuperação como a senha são necessárias." -#: www/views/tx-details.html:93 +#: 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 "Este valor de transação é muito pequeno em comparação com as taxas de rede Bitcoin atuais. Gastar estes fundos terão uma taxa de rede Bitcoin maior do que o fundo em si." -#: www/views/tx-details.html:89 +#: 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" msgstr "Esta operação poderá demorar muito tempo para ser confirmada ou poderá ser descartada devido às baixas taxas definidas pelo remetente" @@ -2961,14 +3002,14 @@ msgstr "Esta operação poderá demorar muito tempo para ser confirmada ou poder msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Esta carteira não está registrada no dado serviço Wallet Service Bitcore (BWS) informado. Você pode recriá-la a partir da informação local." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Cronograma" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Falha no Touch ID" msgid "Transaction" msgstr "Transação" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "Transação Criada" @@ -3083,7 +3124,7 @@ msgstr "Digite a frase de recuperação (normalmente 12 palavras)" msgid "Uh oh..." msgstr "Uh oh..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Não confirmado" @@ -3157,7 +3198,7 @@ msgstr "Exibir Transação no Insight" msgid "View Update" msgstr "Ver atualizações" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Ver no blockchain" @@ -3277,7 +3318,7 @@ msgstr "Tipo da carteira" msgid "Wallet already exists" msgstr "A carteira já existe" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "Carteira já existente no {{appName}}" @@ -3319,8 +3360,8 @@ msgstr "Carteira sem backup" msgid "Wallet not found" msgstr "Carteira não encontrada" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Carteira não registrada" @@ -3328,9 +3369,9 @@ msgstr "Carteira não registrada" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Carteira não registrada no serviço de carteira. Recriá-la em \"Criar carteira\" usando \"Opções avançadas\" para definir a sua frase de recuperação" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Frase de recuperação da carteira não disponível." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "Frase de recuperação da carteira não disponível" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Serviço de carteira não encontrado" msgid "Wallets" msgstr "Carteiras" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Carteiras & Integrações" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Cuidado!" msgid "We'd love to do better." msgstr "Nós adoraríamos fazer melhor." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Confirmaremos na próxima tela." @@ -3409,7 +3446,7 @@ msgstr "Você estaria disposto a dar uma nota ao {{appName}} na app store?" msgid "Would you like to receive push notifications about payments?" msgstr "Gostaria de receber notificações push sobre pagamentos?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Número errado de palavras de recuperação:" @@ -3445,7 +3482,7 @@ msgstr "Você pode ver os mais recentes desenvolvimentos e contribuir para este msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "Você pode gastar bitcoins em milhões de sites e lojas em todo o mundo." -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Você ainda pode exportá-la em Avançado > Exportar." @@ -3476,7 +3513,7 @@ msgstr "Seu BitPay Card está pronto. Adicione fundos ao seu cartão para começ #: www/views/mercadoLibre.html:57 #: www/views/mercadoLibreCards.html:6 msgid "Your Gift Cards" -msgstr "Seus Vales-presente" +msgstr "Seus Vales-Presente" #: www/views/includes/confirmBackupPopup.html:6 msgid "Your bitcoin wallet is backed up!" @@ -3523,10 +3560,10 @@ msgstr "Sua carteira nunca foi salva num armazenamento em nuvem ou dispositivo p msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "Sua chave da carteira será criptografada. A senha de gastos não poderá ser recuperada. Não se esqueça de anotá-la." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "Adicionar seu(s) cartão(ões) BitPay Visa" msgid "locked by pending payments" msgstr "bloqueado por pagamentos pendentes" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "eu" @@ -3557,23 +3594,27 @@ msgstr "nome@exemplo.pt" msgid "preparing..." msgstr "a preparar..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "ferramenta de recuperação." + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" -msgstr "{{amountStr}} em Vale-presente da Amazon.com" +msgstr "{{amountStr}} em Vale-Presente da Amazon.com" #: src/js/controllers/buyMercadoLibre.js:237 msgid "{{amountStr}} for Mercado Livre Brazil Gift Card" -msgstr "{{amountStr}} em Vale-presente do Mercado Livre Brasil" +msgstr "{{amountStr}} em Vale-Presente do Mercado Livre Brasil" #: 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)." msgstr "{{appName}} depende do Bitcore Wallet Service (BWS) para informações sobre cadeias de blocos, rede e sincronização Copayer. A configuração padrão aponta para https://bws.bitpay.com (instância pública BWS do BitPay)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} será deduzido para taxas de rede bitcoins." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "{{tx.txp[wallet.id].feeRatePerStr}} da quantidade de envio" @@ -3581,7 +3622,7 @@ msgstr "{{tx.txp[wallet.id].feeRatePerStr}} da quantidade de envio" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "Transações de {{updatingTxHistoryProgress}} transferidas" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/ru.po b/i18n/po/ru.po index e1c5b3f7e..a66925501 100644 --- a/i18n/po/ru.po +++ b/i18n/po/ru.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Russian\n" "Language: ru\n" -"PO-Revision-Date: 2017-09-20 16:53-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(Доверенный)" msgid "(possible double spend)" msgstr "(возможна двойная трата)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* Предложенный платёж может быть удалён если 1) вы создали этот платёж и никто его еще не подписал, или 2) если прошло более 24 часов с момента его создания." -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "{{feeRateStr}} транзакции" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "" @@ -48,16 +48,16 @@ msgstr "" msgid "A member of the team will review your feedback as soon as possible." msgstr "Участник команды рассмотрит ваш отзыв при первой возможности." -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "Всего {{amountAboveMaxSizeStr}} было исключено. Превышен максимальный размер, разрешенный для транзакции." -#: src/js/controllers/confirm.js:374 +#: 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 "Примечание: в общей сложности {{amountBelowFeeStr}} было исключено. Эти средства входят поступившие в UTXOs меньше чем комиссия сети." #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "О проекте" @@ -102,7 +102,7 @@ msgstr "Добавить контакт" msgid "Add Funds" msgstr "Пополнить счёт" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "Добавить памятку" @@ -126,7 +126,7 @@ msgstr "Добавьте необязательный пароль для защ msgid "Add as a contact" msgstr "Добавить контакт" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "Добавить описание" @@ -161,7 +161,7 @@ msgstr "Тип адреса" msgid "Addresses With Balance" msgstr "Адреса с балансом" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "Дополнительные возможности" @@ -216,7 +216,7 @@ msgstr "Сумма" msgid "Amount below minimum allowed" msgstr "Сумма ниже допустимого минимума" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "Слишком большая сумма" @@ -248,7 +248,7 @@ msgstr "За вами подглядывают? Любой у кого есть msgid "Are you sure you want to cancel and delete this wallet?" msgstr "Вы точно хотите отменить и удалить этот кошелёк?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "Вы действительно хотите удалить этот контакт?" @@ -301,8 +301,8 @@ msgstr "Среднее время подтверждения" msgid "BIP32 path for address derivation" msgstr "Укажите BIP32 для генерации адресов" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" +#: www/views/cashScan.html:25 +msgid "BTC wallets" msgstr "" #: www/views/preferences.html:34 @@ -317,8 +317,9 @@ msgstr "Требуется резервное копирование" msgid "Backup all livenet wallets before using this function" msgstr "Сделайте резервную копию всех livenet кошельков перед использованием этой функции" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "Требуется резервное копирование" @@ -335,7 +336,7 @@ msgstr "Резервное копирование" msgid "Backup your wallet before using this function" msgstr "Сделайте резервную копию вашего кошелька перед использованием этой функции" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "Недействительное приглашение" @@ -365,12 +366,22 @@ msgstr "" msgid "Bitcoin Cash Support" msgstr "" +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" +msgstr "" + #: www/views/modals/chooseFeeLevel.html:4 #: www/views/preferencesFee.html:4 #: www/views/tab-settings.html:90 msgid "Bitcoin Network Fee Policy" msgstr "Политика комиссии сети Биткойн" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" msgstr "" @@ -444,7 +455,7 @@ msgstr "Вычисление комиссии" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "Отменить приглашение?" msgid "Cannot Create Wallet" msgstr "Не удаётся создать кошелёк" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "Нельзя присоединиться к одному и тому же кошельку более одного раза" @@ -497,7 +508,7 @@ msgstr "Выберите целевой кошелёк" msgid "Choose your source wallet" msgstr "Выберите исходный кошелёк" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "Очистить" @@ -505,16 +516,16 @@ msgstr "Очистить" msgid "Clear cache" msgstr "Очистить кэш" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" msgstr "Подтвердить" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" msgstr "Оплатить" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" msgstr "Отправить" @@ -552,11 +563,11 @@ msgstr "Завершено" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "Подтвердить & Завершить" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "Подтвердить покупку" @@ -580,7 +590,7 @@ msgstr "Подтвердите Ваш PIN-код" msgid "Confirm your new spending password" msgstr "Подтвердите ваш новый платёжный пароль" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "Подтверждения" @@ -617,6 +627,10 @@ msgstr "Продолжить" msgid "Contribute Translations" msgstr "Помочь в переводе" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Совладелец кошелька уже присоединился" @@ -667,11 +681,11 @@ msgstr "Не удалось получить доступ к кошельку н msgid "Could not access to Amazon.com" msgstr "" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "Не удалось получить доступ к кошельку" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "Не удалось добавить сообщение в импортированный кошелёк без общего ключа шифрования" @@ -697,15 +711,15 @@ msgstr "" msgid "Could not create transaction" msgstr "" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "Не удалось создать используя указанный расширенный закрытый ключ" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "Не удалось создать используя указанный расширенный открытый ключ" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "Не удалось создать: недействительное ключевое словосочетание" @@ -717,7 +731,7 @@ msgstr "Не удалось расшифровать файл, проверьт msgid "Could not delete payment proposal" msgstr "Не удалось удалить предложенный платёж" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" msgstr "" @@ -743,17 +757,17 @@ msgstr "" msgid "Could not get transactions" msgstr "Не удалось получить транзакции" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "Не удалось импортировать" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "Не удалось импортировать. Проверьте импортируемый файл и платёжный пароль" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "Не удалось присоединиться к кошельку" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "Создать общий кошелёк" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "Создать биткойн-кошелёк" @@ -821,8 +835,8 @@ msgstr "Создать общий кошелёк" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "Создать кошелёк {{formData.requiredCopayers}}-из-{{formData.totalCopayers}}" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "Создан" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "Дата" @@ -861,7 +875,7 @@ msgstr "Дата" msgid "Delete" msgstr "Удалить" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "Удалить предложенный платёж" @@ -901,7 +915,7 @@ msgid "Details" msgstr "Подробности" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "Отключено" @@ -924,7 +938,7 @@ msgstr "Не видите свой язык на Crowdin? Свяжитесь с msgid "Download" msgstr "Скачать" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" msgstr "" @@ -1012,14 +1026,14 @@ msgstr "Введите ключевое словосочетание (BIP39)" msgid "Enter your email" msgstr "Введите Ваш email" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "Введите пароль" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "Введите пароль" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "Введите пароль" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "Введите пароль" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,7 +1109,7 @@ msgstr "Введите пароль" msgid "Error" msgstr "Ошибка" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "Ошибка при подтверждении" @@ -1108,11 +1122,11 @@ msgstr "Ошибка создания Подарочной карты" msgid "Error creating the invoice" msgstr "" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "Ошибка создания кошелька" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "" @@ -1142,16 +1156,16 @@ msgstr "Ошибка обновления Дебетовых Карт" msgid "Exceeded daily limit of $500 per user" msgstr "Превышен дневной лимит в 500$ на пользователя" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "Истекла" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "истёк" @@ -1194,7 +1208,7 @@ msgstr "Не удалось экспортировать" msgid "Family vacation funds" msgstr "Отпускной бюджет" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "Комиссия" @@ -1206,8 +1220,8 @@ msgstr "" msgid "Fee level is not defined" msgstr "" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "Комиссия:" @@ -1281,7 +1295,7 @@ msgstr "Обнаружены средства:" msgid "Funds to be added" msgstr "" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "Средства переведены" @@ -1330,16 +1344,16 @@ msgstr "Начните, добавив первый контакт." msgid "Getting fee levels..." msgstr "Получение информации о комиссиях..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "Подарочная карта" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "" @@ -1350,18 +1364,20 @@ msgstr "" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "Вернуться" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1397,7 +1413,7 @@ msgid "Help & Support" msgstr "Помощь и поддержка" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." msgstr "Информация о помощи и поддержке доступна на сайте." @@ -1476,7 +1492,7 @@ msgstr "Я осознаю, что если {{appName}} будет перемещ msgid "I understand that my funds are held securely on this device, not by a company." msgstr "Я понимаю, что мои средства безопасно хранятся на устройстве, а не компанией." -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "Я записал" @@ -1525,7 +1541,7 @@ msgstr "Импортировать кошелёк" msgid "Importing Wallet..." msgstr "Импортирование кошелька..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "Для проверки резервной копии требуется ввести пароль." @@ -1534,10 +1550,10 @@ msgstr "Для проверки резервной копии требуется msgid "Inactive" msgstr "" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "Не все совладельцы присоединились" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "Недостаточно средств" @@ -1570,6 +1586,10 @@ msgstr "Недостаточно средств" msgid "Insufficient funds for fee" msgstr "Недостаточно средств на комиссию" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "Недействительно" @@ -1613,7 +1633,7 @@ msgstr "" msgid "Is there anything we could do better?" msgstr "Есть ли что-то, что мы могли бы сделать лучше?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "Правильно?" @@ -1663,13 +1683,14 @@ msgstr "Язык" msgid "Last Month" msgstr "Прошедший месяц" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" msgstr "" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "Давайте проверим ваше ключевое словосочетание." @@ -1741,8 +1762,8 @@ msgstr "Ну так, терпимо" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "Памятка" @@ -1754,7 +1775,7 @@ msgstr "" msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." msgstr "" -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "Сообщение от продавца" @@ -1888,15 +1909,19 @@ msgstr "Не выбран кошелёк" msgid "No wallets available" msgstr "" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "Некуда перевести средства" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" msgstr "" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" msgstr "" @@ -1908,7 +1933,7 @@ msgstr "Обычная" msgid "Not authorized" msgstr "Не авторизован" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "Недостаточно средств для уплаты комиссии" @@ -1929,6 +1954,10 @@ msgstr "Потом" msgid "Note" msgstr "Примечание" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "" + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "Внимание: только 1-1 кошельки (требующие одной подписи) могут быть использованы для продажи биткойн" @@ -1942,7 +1971,7 @@ msgstr "Уведомления" msgid "Notifications by email" msgstr "" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "На этой вкладке вы можете видеть все ваши кошельки, учетные записи и активы." #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "Открыть" @@ -2033,6 +2063,10 @@ msgstr "Перейти на сайт" msgid "Open bitcoincash.org?" msgstr "" +#: src/js/controllers/cashScan.js:18 +msgid "Open the recovery tool." +msgstr "" + #: www/views/tab-receive.html:27 msgid "Open wallet" msgstr "Открыть кошелёк" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "Платёж отклонён" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2133,7 +2167,7 @@ msgstr "Платёж принят и будет отправлен Glidera. В msgid "Payment address was translated to new Bitcoin Cash address format:" msgstr "" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "Детали платежа" @@ -2154,11 +2188,11 @@ msgstr "Рассматриваемые платежи" msgid "Permanently delete this wallet." msgstr "Навсегда удалить этот кошелёк." -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "Личный кошелёк" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "Внимательно запишите ключевое словосочетание." @@ -2166,7 +2200,7 @@ msgstr "Внимательно запишите ключевое словосо msgid "Please connect a camera to get started." msgstr "Чтобы начать, подключите камеру." -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "Введите ключевое словосочетание" @@ -2179,7 +2213,7 @@ msgstr "Введите ключевое словосочетание кошел msgid "Please enter your PIN" msgstr "Пожалуйста, введите Ваш PIN-код" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "Тапните каждое слово в правильном порядке." @@ -2212,7 +2246,7 @@ msgstr "Подготовка адресов..." msgid "Preparing backup..." msgstr "Подготовка резервной копии..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "Нажмите еще раз для выхода" @@ -2238,7 +2272,7 @@ msgstr "Платёж принят" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "Платёж создан" @@ -2300,12 +2334,16 @@ msgstr "Показать больше" msgid "Read more in our Wiki" msgstr "" +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "" + #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "Получить" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "" @@ -2463,7 +2501,7 @@ msgstr "" msgid "Scan your fingerprint please" msgstr "Пожалуйста, отсканируйте ваш отпечаток пальца" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" msgstr "" @@ -2471,7 +2509,7 @@ msgstr "" msgid "Scanning Wallet funds..." msgstr "Сканирование адресов кошелька..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." msgstr "" @@ -2544,7 +2582,7 @@ msgstr "Отправить адреса по email" msgid "Send by email" msgstr "Отправить на email" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "Отправить от" @@ -2583,7 +2621,7 @@ msgstr "Отправляю максимальную сумму" msgid "Sending transaction" msgstr "Отправка транзакции" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "Отправка {{amountStr}} из вашего кошелька {{name}}" @@ -2698,25 +2736,28 @@ msgstr "Кошелёк с одним адресом" msgid "Skip" msgstr "Пропустить" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" msgstr "" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" msgstr "" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" msgstr "" +#: 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 "" + #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 msgid "Specify Recovery Phrase..." @@ -2934,7 +2975,7 @@ msgstr "Замечательное приложение!" msgid "This app stores your bitcoin with cutting-edge security." msgstr "" -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "Этот запрос платежа истёк." @@ -2944,15 +2985,15 @@ msgstr "Этот запрос платежа истёк." msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "" -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "Это ключевое словосочетание было создано с паролем. Для восстановления кошелька необходимо ключевое словосочетание и его пароль." -#: www/views/tx-details.html:93 +#: 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 "" -#: www/views/tx-details.html:89 +#: 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" msgstr "" @@ -2961,14 +3002,14 @@ msgstr "" msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "Это кошелёк не зарегистрирован на данном сервере Bitcore. Вы можете воссоздать его из локальной информации." -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "Хронология" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "Ошибка Touch ID" msgid "Transaction" msgstr "Транзакция" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "" @@ -3083,7 +3124,7 @@ msgstr "Введите ключевое словосочетание (обычн msgid "Uh oh..." msgstr "Упс..." -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "Неподтверждено" @@ -3157,7 +3198,7 @@ msgstr "Просмотреть транзакцию на Insight" msgid "View Update" msgstr "Просмотреть обновление" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "Посмотреть в блокчейне" @@ -3277,7 +3318,7 @@ msgstr "Тип кошелька" msgid "Wallet already exists" msgstr "Кошелёк уже существует" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "" @@ -3319,8 +3360,8 @@ msgstr "Резервное копирование не выполнено" msgid "Wallet not found" msgstr "Кошелёк не найден" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "Кошелёк не зарегистрирован" @@ -3328,9 +3369,9 @@ msgstr "Кошелёк не зарегистрирован" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "Кошелёк не зарегистрирован на сервере Bitcore. Пересоздайте кошелёк воспользовавшись дополнительными параметрами, чтобы указать ключевое словосочетание" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "Ключевое словосочетание недоступно." +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "Сервер Bitcore не найден" msgid "Wallets" msgstr "Кошельки" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "Кошельки и интеграция" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "Осторожно!" msgid "We'd love to do better." msgstr "Мы хотели бы сделать лучше." -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "Проверим на следующем шаге." @@ -3409,7 +3446,7 @@ msgstr "" msgid "Would you like to receive push notifications about payments?" msgstr "Вы хотели бы получать push-уведомления о платежах?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "Неподходящее количество слов в ключевом словосочетании:" @@ -3445,7 +3482,7 @@ msgstr "" msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "" -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "Вы можете экспортировать её в Дополнительные параметры > Экспорт." @@ -3523,10 +3560,10 @@ msgstr "Ваш кошелёк никогда не сохраняется в об msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "Ваш кошелёк будет зашифрован. Платёжный пароль нельзя восстановить. Обязательно его запишите." -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3545,7 +3582,7 @@ msgstr "добавьте вашу BitPay Visa карту(ы)" msgid "locked by pending payments" msgstr "заблокировано неподтверждёнными платежами" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "мне" @@ -3557,6 +3594,10 @@ msgstr "name@example.com" msgid "preparing..." msgstr "Подготавливается..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "" + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "" @@ -3569,11 +3610,11 @@ msgstr "" 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)." msgstr "{{appName}} требует Bitcore для координации совладельцев и получения информации из блокчейна. По-умолчанию используется сервер https://bws.bitpay.com (публичный сервер Bitcore компании BitPay)." -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} будет использовано для оплаты комиссии." -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "" @@ -3581,7 +3622,7 @@ msgstr "" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "{{updatingTxHistoryProgress}} транзакций загружено" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" diff --git a/i18n/po/zh.po b/i18n/po/zh.po index 153c19706..180b2f1c8 100644 --- a/i18n/po/zh.po +++ b/i18n/po/zh.po @@ -11,7 +11,7 @@ msgstr "" "Last-Translator: cmgustavo83\n" "Language-Team: Chinese Simplified\n" "Language: zh\n" -"PO-Revision-Date: 2017-09-19 14:07-0400\n" +"PO-Revision-Date: 2017-10-09 10:33-0400\n" #: www/views/modals/paypro.html:34 msgid "(Trusted)" @@ -22,15 +22,15 @@ msgstr "(可信的)" msgid "(possible double spend)" msgstr "(重复支付)" -#: www/views/modals/txp-details.html:161 +#: www/views/modals/txp-details.html:159 msgid "* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created." msgstr "* 如果 1) 你是创造者,及没有其他 copayer 签名,或 2) 24 小时已经过去,支付提议将被删除。" -#: www/views/tx-details.html:84 +#: www/views/tx-details.html:82 msgid "- {{btx.feeRateStr}} of the transaction" msgstr "-{{btx.feeRateStr}} 的交易记录" -#: www/views/modals/txp-details.html:104 +#: www/views/modals/txp-details.html:102 msgid "- {{tx.feeRateStr}} of the transaction" msgstr "-{{tx.feeRateStr}} 的交易记录" @@ -41,23 +41,23 @@ msgstr "5 星评级帮助我们进入更多的人手, {{appName}} 和更多的 #: www/views/mercadoLibre.html:18 #: www/views/mercadoLibre.html:40 msgid "Only redeemable on Mercado Livre (Brazil)" -msgstr "Only 可随时取现的梅尔卡多里弗 (巴西)" +msgstr "Only可在悔尔卡多里弗(巴西) 兌換" #: src/js/controllers/feedback/send.js:27 #: www/views/feedback/complete.html:21 msgid "A member of the team will review your feedback as soon as possible." msgstr "团队的成员将尽快审查您的反馈意见。" -#: src/js/controllers/confirm.js:380 +#: src/js/controllers/confirm.js:401 msgid "A total of {{amountAboveMaxSizeStr}} were excluded. The maximum size allowed for a transaction was exceeded." msgstr "备注︰共有{{amountAboveMaxSizeStr}} 被排除了。超出了交易允许的最大体积" -#: src/js/controllers/confirm.js:374 +#: 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 "备注:共有{{amountBelowFeeStr}} 被排除了。这些来自 UTXOs 的资金小于提供的网络费用。" #: src/js/controllers/preferencesAbout.js:6 -#: www/views/tab-settings.html:161 +#: www/views/tab-settings.html:156 msgid "About" msgstr "关于" @@ -102,7 +102,7 @@ msgstr "添加联系人" msgid "Add Funds" msgstr "添加金额" -#: www/views/confirm.html:96 +#: www/views/confirm.html:94 msgid "Add Memo" msgstr "添加备注" @@ -126,7 +126,7 @@ msgstr "添加可选的密码,以保护恢复短语" msgid "Add as a contact" msgstr "添加到联系人" -#: src/js/controllers/confirm.js:403 +#: src/js/controllers/confirm.js:424 msgid "Add description" msgstr "添加描述" @@ -161,7 +161,7 @@ msgstr "地址类型" msgid "Addresses With Balance" msgstr "地址与余额" -#: www/views/tab-settings.html:154 +#: www/views/tab-settings.html:149 msgid "Advanced" msgstr "進階" @@ -204,7 +204,7 @@ msgstr "替代货币" #: src/js/controllers/buyAmazon.js:98 msgid "Amazon.com is not available at this moment. Please try back later." -msgstr "亚马逊服务器暂时不可用,请稍候再试。" +msgstr "亚马逊服务器暂时无法访问,请稍候再试。" #: www/views/amount.html:44 #: www/views/customAmount.html:34 @@ -216,13 +216,13 @@ msgstr "数额" msgid "Amount below minimum allowed" msgstr "数额低于最低允许值" -#: src/js/controllers/confirm.js:195 +#: src/js/controllers/confirm.js:216 msgid "Amount too big" msgstr "量太大" #: www/views/includes/walletHistory.html:31 msgid "Amount too low to spend" -msgstr "数量太少,无法发送。" +msgstr "數額低於可消費額" #: src/js/controllers/tab-home.js:147 msgid "An update to this app is available. For your security, please update to the latest version." @@ -248,7 +248,7 @@ msgstr "有旁观者么?只要有人知道了你的恢复短语,他就能访 msgid "Are you sure you want to cancel and delete this wallet?" msgstr "确定取消和删除这个钱包?" -#: src/js/controllers/addressbookView.js:24 +#: src/js/controllers/addressbookView.js:37 msgid "Are you sure you want to delete this contact?" msgstr "你确定你要删除此联系人?" @@ -301,9 +301,9 @@ msgstr "平均确认时间" msgid "BIP32 path for address derivation" msgstr "BIP32 路径的地址衍生" -#: www/views/cashScan.html:22 -msgid "BTC Wallets" -msgstr "" +#: www/views/cashScan.html:25 +msgid "BTC wallets" +msgstr "比特幣錢包" #: www/views/preferences.html:34 msgid "Backup" @@ -317,8 +317,9 @@ msgstr "需要备份" msgid "Backup all livenet wallets before using this function" msgstr "请在使用此功能之前备份你的钱包。" +#: src/js/controllers/cashScan.js:64 +#: www/views/includes/walletListSettings.html:12 #: www/views/preferences.html:36 -#: www/views/tab-settings.html:125 msgid "Backup needed" msgstr "需要备份" @@ -335,7 +336,7 @@ msgstr "备份钱包" msgid "Backup your wallet before using this function" msgstr "在使用此功能之前,请备份你的钱包。" -#: src/js/services/profileService.js:445 +#: src/js/services/profileService.js:446 msgid "Bad wallet invitation" msgstr "坏钱包邀请" @@ -358,11 +359,16 @@ msgstr "比特币地址" #: www/views/cashScan.html:4 msgid "Bitcoin Cash (BCH) Balances" -msgstr "" +msgstr "小比特幣(BCH) 結餘" #: www/views/preferencesCash.html:3 #: www/views/tab-settings.html:47 msgid "Bitcoin Cash Support" +msgstr "小比特幣支援" + +#: www/views/tab-home.html:98 +#: www/views/tab-settings.html:115 +msgid "Bitcoin Cash Wallets" msgstr "" #: www/views/modals/chooseFeeLevel.html:4 @@ -371,9 +377,14 @@ msgstr "" msgid "Bitcoin Network Fee Policy" msgstr "比特币网络手续费策略" +#: www/views/tab-home.html:83 +#: www/views/tab-settings.html:107 +msgid "Bitcoin Wallets" +msgstr "" + #: src/js/services/incomingData.js:151 msgid "Bitcoin cash Payment" -msgstr "" +msgstr "小比特幣支付" #: www/views/onboarding/tour.html:31 msgid "Bitcoin is a currency." @@ -444,7 +455,7 @@ msgstr "正在计算费用" #: src/js/controllers/buyAmazon.js:313 #: src/js/controllers/buyMercadoLibre.js:307 -#: src/js/controllers/confirm.js:529 +#: src/js/controllers/confirm.js:550 #: src/js/controllers/topup.js:287 #: src/js/services/incomingData.js:154 #: src/js/services/popupService.js:62 @@ -469,7 +480,7 @@ msgstr "取消邀请" msgid "Cannot Create Wallet" msgstr "不能创建钱包" -#: src/js/services/profileService.js:441 +#: src/js/services/profileService.js:442 msgid "Cannot join the same wallet more that once" msgstr "无法重复加入同一个钱包" @@ -497,7 +508,7 @@ msgstr "选择你的目的地钱包" msgid "Choose your source wallet" msgstr "选择源钱包" -#: www/views/backup.html:54 +#: www/views/backup.html:61 msgid "Clear" msgstr "清除" @@ -505,19 +516,19 @@ msgstr "清除" msgid "Clear cache" msgstr "清空缓存" -#: src/js/controllers/confirm.js:352 +#: src/js/controllers/confirm.js:373 #: src/js/controllers/modals/txpDetails.js:49 msgid "Click to accept" -msgstr "" +msgstr "在此點擊以接受" -#: src/js/controllers/confirm.js:346 +#: src/js/controllers/confirm.js:367 msgid "Click to pay" -msgstr "" +msgstr "在此點擊以支付" -#: src/js/controllers/confirm.js:358 +#: src/js/controllers/confirm.js:379 #: src/js/controllers/modals/txpDetails.js:42 msgid "Click to send" -msgstr "" +msgstr "點擊以寄出" #: www/views/customAmount.html:4 #: www/views/modals/mercadolibre-card-details.html:3 @@ -532,7 +543,7 @@ msgstr "关闭" #: www/views/includes/cash.html:2 #: www/views/preferencesInformation.html:17 msgid "Coin" -msgstr "" +msgstr "電子幣种" #: www/views/preferences.html:22 msgid "Color" @@ -552,11 +563,11 @@ msgstr "完成" #: src/js/controllers/buyAmazon.js:311 #: src/js/controllers/buyMercadoLibre.js:305 -#: src/js/controllers/confirm.js:528 +#: src/js/controllers/confirm.js:549 #: src/js/controllers/copayers.js:55 #: src/js/controllers/topup.js:285 -#: www/views/backup.html:53 -#: www/views/backup.html:72 +#: www/views/backup.html:60 +#: www/views/backup.html:79 #: www/views/confirm.html:4 #: www/views/onboarding/collectEmail.html:32 msgid "Confirm" @@ -568,7 +579,6 @@ msgid "Confirm & Finish" msgstr "确认并完成" #: www/views/buyAmazon.html:90 -#: www/views/buyMercadoLibre.html:77 msgid "Confirm purchase" msgstr "确认购买" @@ -580,7 +590,7 @@ msgstr "确认你的PIN码" msgid "Confirm your new spending password" msgstr "确认你的新支付密码" -#: www/views/tx-details.html:100 +#: www/views/tx-details.html:98 msgid "Confirmations" msgstr "确认" @@ -617,6 +627,10 @@ msgstr "继续" msgid "Contribute Translations" msgstr "参与翻译" +#: src/js/controllers/confirm.js:130 +msgid "Copay only supports Bitcoin Cash using new version numbers addresses" +msgstr "本公司Copay只支持用新版本數字地址的小比特幣" + #: src/js/services/bwcError.js:62 msgid "Copayer already in this wallet" msgstr "Copayer 已经在这个钱包里" @@ -667,11 +681,11 @@ msgstr "无法访问服务器上的钱包。请确认︰" msgid "Could not access to Amazon.com" msgstr "不能访问到亚马逊网站" -#: src/js/services/profileService.js:510 +#: src/js/services/profileService.js:511 msgid "Could not access wallet" msgstr "无法访问钱包" -#: src/js/controllers/confirm.js:189 +#: src/js/controllers/confirm.js:210 msgid "Could not add message to imported wallet without shared encrypting key" msgstr "无法将消息添加到进口钱包没有共享的加密密钥" @@ -697,15 +711,15 @@ msgstr "不能创建发票" msgid "Could not create transaction" msgstr "无法创建交易记录" -#: src/js/services/profileService.js:351 +#: src/js/services/profileService.js:350 msgid "Could not create using the specified extended private key" msgstr "无法使用指定的扩展私人密钥创建" -#: src/js/services/profileService.js:363 +#: src/js/services/profileService.js:362 msgid "Could not create using the specified extended public key" msgstr "无法使用指定的扩展的公钥创建" -#: src/js/services/profileService.js:339 +#: src/js/services/profileService.js:338 msgid "Could not create: Invalid wallet recovery phrase" msgstr "无法创建 ︰ 无效的钱包恢复短语" @@ -717,9 +731,9 @@ msgstr "无法解密文件,请检查你的密码" msgid "Could not delete payment proposal" msgstr "无法删除支付提议" -#: src/js/controllers/cashScan.js:101 +#: src/js/controllers/cashScan.js:117 msgid "Could not duplicate" -msgstr "" +msgstr "無法复制" #: src/js/services/feeService.js:73 msgid "Could not get dynamic fee" @@ -743,17 +757,17 @@ msgstr "不能拿到发票" msgid "Could not get transactions" msgstr "不能交易" -#: src/js/services/profileService.js:614 -#: src/js/services/profileService.js:649 -#: src/js/services/profileService.js:673 +#: src/js/services/profileService.js:615 +#: src/js/services/profileService.js:650 +#: src/js/services/profileService.js:674 msgid "Could not import" msgstr "无法导入" -#: src/js/services/profileService.js:583 +#: src/js/services/profileService.js:584 msgid "Could not import. Check input file and spending password" msgstr "无法导入。请检查输入文件和支付密码" -#: src/js/services/profileService.js:456 +#: src/js/services/profileService.js:457 msgid "Could not join wallet" msgstr "无法加入钱包" @@ -804,7 +818,7 @@ msgid "Create Shared Wallet" msgstr "创建自己的免费钱包" #: www/views/onboarding/tour.html:51 -#: www/views/tab-home.html:77 +#: www/views/tab-home.html:75 #: www/views/tab-send.html:36 msgid "Create bitcoin wallet" msgstr "创建比特币的钱包" @@ -821,8 +835,8 @@ msgstr "创建共享的钱包" msgid "Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet" msgstr "创建 {{formData.requiredCopayers}} 的{{formData.totalCopayers}} 钱包" -#: www/views/modals/txp-details.html:83 -#: www/views/tx-details.html:62 +#: www/views/modals/txp-details.html:81 +#: www/views/tx-details.html:60 msgid "Created by" msgstr "创建者:" @@ -852,8 +866,8 @@ msgid "Custom Fee" msgstr "使用自定义费率" #: www/views/modals/mercadolibre-card-details.html:56 -#: www/views/modals/txp-details.html:89 -#: www/views/tx-details.html:68 +#: www/views/modals/txp-details.html:87 +#: www/views/tx-details.html:66 msgid "Date" msgstr "日期" @@ -861,7 +875,7 @@ msgstr "日期" msgid "Delete" msgstr "删除" -#: www/views/modals/txp-details.html:166 +#: www/views/modals/txp-details.html:164 msgid "Delete Payment Proposal" msgstr "删除支付提议" @@ -901,7 +915,7 @@ msgid "Details" msgstr "详情" #: src/js/controllers/lockSetup.js:9 -#: src/js/controllers/tab-settings.js:64 +#: src/js/controllers/tab-settings.js:65 #: www/views/tab-settings.html:50 msgid "Disabled" msgstr "已经禁用" @@ -924,13 +938,13 @@ msgstr "在 Crowdin 找不到你的语言?请联系 Crowdin 的所有者!我 msgid "Download" msgstr "下载" -#: www/views/cashScan.html:36 +#: www/views/cashScan.html:37 msgid "Duplicate for BCH" -msgstr "" +msgstr "為小比特幣复制" #: src/js/services/onGoingProcess.js:49 msgid "Duplicating wallet..." -msgstr "" +msgstr "复制錢包進行中" #: 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." @@ -959,7 +973,7 @@ msgstr "已达到空地址限制。无法生成新的地址。" #: www/views/preferencesCash.html:17 msgid "Enable Bitcoin Cash wallet creation and operation within the App." -msgstr "" +msgstr "能在本應用程序中創建和啟用小比特幣錢包" #: www/views/tab-scan.html:19 msgid "Enable camera access in your device settings to get started." @@ -979,7 +993,7 @@ msgstr "使该摄像机开始。" #: www/views/tab-settings.html:49 msgid "Enabled" -msgstr "" +msgstr "巳啟用" #: src/js/services/walletService.js:1047 #: src/js/services/walletService.js:1062 @@ -1012,14 +1026,14 @@ msgstr "输入恢复短语 (BIP39)" msgid "Enter your email" msgstr "输入您的电子邮件" -#: www/views/backup.html:62 +#: www/views/backup.html:69 msgid "Enter your password" msgstr "请输入你的密码" #. Trying to import a malformed wallet export QR code #: src/js/controllers/activity.js:45 #: src/js/controllers/addressbookAdd.js:30 -#: src/js/controllers/addressbookView.js:29 +#: src/js/controllers/addressbookView.js:42 #: src/js/controllers/addresses.js:125 #: src/js/controllers/addresses.js:126 #: src/js/controllers/bitpayCard.js:66 @@ -1029,7 +1043,7 @@ msgstr "请输入你的密码" #: src/js/controllers/buyAmazon.js:35 #: src/js/controllers/buyMercadoLibre.js:24 #: src/js/controllers/buyMercadoLibre.js:35 -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 #: src/js/controllers/copayers.js:67 #: src/js/controllers/create.js:161 #: src/js/controllers/create.js:174 @@ -1055,8 +1069,8 @@ msgstr "请输入你的密码" #: src/js/controllers/import.js:238 #: src/js/controllers/import.js:254 #: src/js/controllers/import.js:266 -#: src/js/controllers/import.js:277 -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:278 +#: src/js/controllers/import.js:288 #: src/js/controllers/import.js:312 #: src/js/controllers/import.js:325 #: src/js/controllers/import.js:335 @@ -1081,7 +1095,7 @@ msgstr "请输入你的密码" #: src/js/controllers/preferencesDelete.js:36 #: src/js/controllers/preferencesExternal.js:20 #: src/js/controllers/tab-home.js:174 -#: src/js/controllers/tab-send.js:133 +#: src/js/controllers/tab-send.js:143 #: src/js/controllers/tabsController.js:36 #: src/js/controllers/tabsController.js:7 #: src/js/controllers/topup.js:21 @@ -1095,24 +1109,24 @@ msgstr "请输入你的密码" msgid "Error" msgstr "错误!" -#: src/js/controllers/confirm.js:481 +#: src/js/controllers/confirm.js:502 msgid "Error at confirm" msgstr "在确认错误" #: src/js/controllers/buyAmazon.js:179 msgid "Error creating gift card" -msgstr "错误创建礼品卡" +msgstr "创建礼品卡时出错。" #: src/js/controllers/buyAmazon.js:94 #: src/js/controllers/buyMercadoLibre.js:94 msgid "Error creating the invoice" msgstr "创建发票时出错" -#: src/js/services/profileService.js:411 +#: src/js/services/profileService.js:412 msgid "Error creating wallet" msgstr "创建钱包时出现错误" -#: src/js/controllers/confirm.js:275 +#: src/js/controllers/confirm.js:296 msgid "Error getting SendMax information" msgstr "获取SendMax信息时出错。" @@ -1142,16 +1156,16 @@ msgstr "更新借记卡时出错" msgid "Exceeded daily limit of $500 per user" msgstr "超过 500 美元,每个用户的每日限额" -#: src/js/controllers/confirm.js:440 +#: src/js/controllers/confirm.js:461 #: www/views/confirm.html:27 #: www/views/mercadoLibreCards.html:25 #: www/views/modals/mercadolibre-card-details.html:34 -#: www/views/modals/txp-details.html:121 +#: www/views/modals/txp-details.html:119 msgid "Expired" msgstr "已过期" #: www/views/modals/paypro.html:54 -#: www/views/modals/txp-details.html:127 +#: www/views/modals/txp-details.html:125 msgid "Expires" msgstr "到期" @@ -1194,7 +1208,7 @@ msgstr "导出失败" msgid "Family vacation funds" msgstr "家庭度假资金" -#: www/views/tx-details.html:81 +#: www/views/tx-details.html:79 msgid "Fee" msgstr "费用" @@ -1206,8 +1220,8 @@ msgstr "费用等级" msgid "Fee level is not defined" msgstr "未定义收费等级。。" -#: www/views/confirm.html:81 -#: www/views/modals/txp-details.html:101 +#: www/views/confirm.html:79 +#: www/views/modals/txp-details.html:99 msgid "Fee:" msgstr "手续费:" @@ -1281,13 +1295,13 @@ msgstr "找到资金" msgid "Funds to be added" msgstr "要添加的资金" -#: www/views/paperWallet.html:53 +#: www/views/paperWallet.html:51 msgid "Funds transferred" msgstr "资金转移" #: www/views/topup.html:103 msgid "Funds were added to debit card" -msgstr "增加了资金,以借记卡" +msgstr "資金已添加到借寄卡" #: www/views/paperWallet.html:22 msgid "Funds will be transferred to" @@ -1330,16 +1344,16 @@ msgstr "通过添加您的第一个开始。" msgid "Getting fee levels..." msgstr "正在获取收费水平..." +#: www/views/buyAmazon.html:43 +#: www/views/buyMercadoLibre.html:42 +msgid "Gift Card" +msgstr "" + #: 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 "礼品卡不可再使用" -#: www/views/buyAmazon.html:43 -#: www/views/buyMercadoLibre.html:42 -msgid "Gift card" -msgstr "礼品卡" - #: src/js/controllers/buyAmazon.js:204 msgid "Gift card expired" msgstr "礼品卡过期" @@ -1350,18 +1364,20 @@ msgstr "礼品卡生成并准备使用。" #: src/js/controllers/bitpayCard.js:114 #: src/js/controllers/bitpayCard.js:124 +#: src/js/controllers/cashScan.js:20 #: src/js/controllers/onboarding/terms.js:23 #: src/js/controllers/preferences.js:67 #: src/js/controllers/preferencesAbout.js:16 #: src/js/controllers/preferencesCash.js:34 #: src/js/controllers/preferencesLanguage.js:14 #: src/js/controllers/tab-home.js:149 -#: src/js/controllers/tab-settings.js:52 +#: src/js/controllers/tab-settings.js:53 #: src/js/controllers/tx-details.js:193 #: src/js/controllers/tx-details.js:56 msgid "Go Back" msgstr "返回 #" +#: src/js/controllers/confirm.js:131 #: src/js/controllers/onboarding/backupRequest.js:20 #: src/js/controllers/onboarding/backupRequest.js:26 #: src/js/services/bitpayAccountService.js:84 @@ -1390,16 +1406,16 @@ msgstr "硬件钱包" #: src/js/controllers/create.js:180 #: src/js/controllers/join.js:145 msgid "Hardware wallets are not yet supported with Bitcoin Cash" -msgstr "" +msgstr "硬體錢包不支持小比特幣" #: www/views/tab-settings.html:20 msgid "Help & Support" msgstr "帮助与支持" #: src/js/controllers/bitpayCard.js:112 -#: src/js/controllers/tab-settings.js:50 +#: src/js/controllers/tab-settings.js:51 msgid "Help and support information is available at the website." -msgstr "帮助&支持现在是可用的" +msgstr "此網站提供幫助及支援資訊" #: www/views/addresses.html:25 msgid "Hide" @@ -1476,7 +1492,7 @@ msgstr "我明白是否这个应用程序是搬到另一个设备或删除,我 msgid "I understand that my funds are held securely on this device, not by a company." msgstr "我明白,我的资金安全地在此设备上,不由公司举行。" -#: www/views/backup.html:29 +#: www/views/backup.html:36 msgid "I've written it down" msgstr "我已经把它写下来" @@ -1525,7 +1541,7 @@ msgstr "导入钱包" msgid "Importing Wallet..." msgstr "正在导入钱包..." -#: www/views/backup.html:65 +#: www/views/backup.html:72 msgid "In order to verify your wallet backup, please type your password." msgstr "为了验证您的钱包的备份,请键入您的密码。" @@ -1534,10 +1550,10 @@ msgstr "为了验证您的钱包的备份,请键入您的密码。" msgid "Inactive" msgstr "处于非活动状态" -#: www/views/includes/walletItem.html:11 -#: www/views/includes/walletSelector.html:18 -#: www/views/tab-home.html:90 -#: www/views/tab-settings.html:122 +#: www/views/includes/walletItem.html:9 +#: www/views/includes/walletList.html:6 +#: www/views/includes/walletListSettings.html:9 +#: www/views/includes/walletSelector.html:16 msgid "Incomplete" msgstr "不完整" @@ -1559,7 +1575,7 @@ msgid "Incorrect network address" msgstr "网络地址不正确" #: src/js/controllers/confirm.js:114 -#: src/js/controllers/confirm.js:285 +#: src/js/controllers/confirm.js:306 #: src/js/services/bwcError.js:44 msgid "Insufficient funds" msgstr "资金不足" @@ -1570,6 +1586,10 @@ msgstr "资金不足" msgid "Insufficient funds for fee" msgstr "费用的资金不足" +#: www/views/tab-settings.html:123 +msgid "Integrations" +msgstr "" + #: www/views/includes/walletHistory.html:49 msgid "Invalid" msgstr "无效" @@ -1613,7 +1633,7 @@ msgstr "发票过期" msgid "Is there anything we could do better?" msgstr "有什么我们可以做得更好吗?" -#: www/views/backup.html:47 +#: www/views/backup.html:54 msgid "Is this correct?" msgstr "这是正确的吗?" @@ -1663,13 +1683,14 @@ msgstr "语言" msgid "Last Month" msgstr "上个月" +#: src/js/controllers/confirm.js:132 #: www/views/preferences.html:48 #: www/views/preferencesCash.html:18 -#: www/views/tx-details.html:96 +#: www/views/tx-details.html:94 msgid "Learn more" -msgstr "" +msgstr "更多資訊" -#: www/views/backup.html:36 +#: www/views/backup.html:43 msgid "Let's verify your backup phrase." msgstr "让我们验证您备份的短语。" @@ -1741,8 +1762,8 @@ msgstr "咩-没关系" #: src/js/controllers/tx-details.js:165 #: www/views/modals/paypro.html:48 -#: www/views/modals/txp-details.html:95 -#: www/views/tx-details.html:74 +#: www/views/modals/txp-details.html:93 +#: www/views/tx-details.html:72 msgid "Memo" msgstr "便签" @@ -1752,9 +1773,9 @@ msgstr "梅尔卡多里弗巴西礼品卡" #: src/js/controllers/buyMercadoLibre.js:98 msgid "Mercadolibre Gift Card Service is not available at this moment. Please try back later." -msgstr "就在这时,自由市场礼品卡服务不可用。请稍后再试。" +msgstr "馬卡杜勒比禮品卡服務現時未能使用,請稍後再試" -#: www/views/modals/txp-details.html:133 +#: www/views/modals/txp-details.html:131 msgid "Merchant Message" msgstr "商人的消息" @@ -1762,7 +1783,7 @@ msgstr "商人的消息" #: www/views/buyMercadoLibre.html:54 #: www/views/topup.html:63 msgid "Miner Fee" -msgstr "" +msgstr "礦工費用" #: src/js/services/bwcError.js:134 msgid "Missing parameter" @@ -1805,7 +1826,7 @@ msgstr "名称" #: www/views/buyMercadoLibre.html:48 #: www/views/topup.html:56 msgid "Network Cost" -msgstr "" +msgstr "網路支援成本" #: src/js/services/bwcError.js:47 msgid "Network error" @@ -1888,17 +1909,21 @@ msgstr "没有选定的钱包" msgid "No wallets available" msgstr "没有可用的钱包" -#: www/views/paperWallet.html:47 +#: www/views/paperWallet.html:45 msgid "No wallets available to receive funds" msgstr "没有可用于接收资金的钱包" -#: www/views/cashScan.html:14 +#: www/views/cashScan.html:15 msgid "No wallets eligible for Bitcoin Cash support" -msgstr "" +msgstr "没有錢包合乎支持小比特幣資格" -#: www/views/cashScan.html:44 +#: src/js/controllers/cashScan.js:58 +msgid "Non BIP44 wallet" +msgstr "非BIP44錢包" + +#: www/views/cashScan.html:46 msgid "Non eligible BTC wallets" -msgstr "" +msgstr "非合格比特幣錢包" #: src/js/services/feeService.js:12 msgid "Normal" @@ -1908,7 +1933,7 @@ msgstr "常规" msgid "Not authorized" msgstr "尚未授权" -#: src/js/controllers/confirm.js:286 +#: src/js/controllers/confirm.js:307 msgid "Not enough funds for fee" msgstr "费用的资金不足" @@ -1929,6 +1954,10 @@ msgstr "不是现在" msgid "Note" msgstr "备注" +#: www/views/backup.html:19 +msgid "Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase." +msgstr "注意: 如此比特幣錢包由小比特幣复制,他們共享相同恢復短語" + #: www/views/modals/wallets.html:25 msgid "Notice: only 1-1 (single signature) wallets can be used for sell bitcoin" msgstr "注意︰ 只有 1-1 (单签名) 钱包可以用于卖比特币" @@ -1942,7 +1971,7 @@ msgstr "通知" msgid "Notifications by email" msgstr "用电子邮件通知" -#: www/views/tx-details.html:119 +#: www/views/tx-details.html:117 msgid "Notify me if confirmed" msgstr "确认完毕时通知我。" @@ -1993,9 +2022,10 @@ msgid "On this screen you can see all your wallets, accounts, and assets." msgstr "在此屏幕上您可以看到您的钱包、 帐户和资产。" #: src/js/controllers/bitpayCard.js:113 +#: src/js/controllers/cashScan.js:19 #: src/js/controllers/preferences.js:66 #: src/js/controllers/preferencesCash.js:33 -#: src/js/controllers/tab-settings.js:51 +#: src/js/controllers/tab-settings.js:52 #: src/js/controllers/tx-details.js:55 msgid "Open" msgstr "打开" @@ -2031,7 +2061,11 @@ 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." +msgstr "打開恢復工具" #: www/views/tab-receive.html:27 msgid "Open wallet" @@ -2115,7 +2149,7 @@ msgid "Payment Rejected" msgstr "支付被拒绝" #: src/js/controllers/modals/txpDetails.js:44 -#: www/views/confirm.html:126 +#: www/views/confirm.html:124 #: www/views/includes/walletActivity.html:11 #: www/views/modals/txp-details.html:42 msgid "Payment Sent" @@ -2131,9 +2165,9 @@ msgstr "支付以被接受。它将由 Glidera 广播。如果出现问题,它 #: src/js/services/incomingData.js:152 msgid "Payment address was translated to new Bitcoin Cash address format:" -msgstr "" +msgstr "付款地址转化为新的小比特幣地址格式" -#: www/views/modals/txp-details.html:109 +#: www/views/modals/txp-details.html:107 msgid "Payment details" msgstr "支付明细" @@ -2154,11 +2188,11 @@ msgstr "支付提议" msgid "Permanently delete this wallet." msgstr "永久删除这个钱包。" -#: src/js/services/profileService.js:401 +#: src/js/services/profileService.js:403 msgid "Personal Wallet" msgstr "个人钱包" -#: www/views/backup.html:18 +#: www/views/backup.html:25 msgid "Please carefully write down this phrase." msgstr "请仔细记下这句话。" @@ -2166,7 +2200,7 @@ msgstr "请仔细记下这句话。" msgid "Please connect a camera to get started." msgstr "请连接相机入门。" -#: src/js/controllers/import.js:277 +#: src/js/controllers/import.js:278 msgid "Please enter the recovery phrase" msgstr "请输入恢复短语" @@ -2179,7 +2213,7 @@ msgstr "请输入钱包恢复短语" msgid "Please enter your PIN" msgstr "请输入你的PIN码" -#: www/views/backup.html:46 +#: www/views/backup.html:53 msgid "Please tap each word in the correct order." msgstr "请点击每个单词按照正确的顺序。" @@ -2190,7 +2224,7 @@ msgstr "请升级 Copay 以执行此操作" #: www/views/walletDetails.html:142 #: www/views/walletDetails.html:62 msgid "Please wait" -msgstr "" +msgstr "請等等" #: src/js/controllers/import.js:238 msgid "Please, select your backup file" @@ -2212,7 +2246,7 @@ msgstr "正在准备地址..." msgid "Preparing backup..." msgstr "正在准备备份..." -#: src/js/routes.js:1261 +#: src/js/routes.js:1264 msgid "Press again to exit" msgstr "再按一次退出" @@ -2238,7 +2272,7 @@ msgstr "提案被接受" #: src/js/controllers/modals/txpDetails.js:61 #: src/js/controllers/tx-details.js:78 -#: www/views/confirm.html:127 +#: www/views/confirm.html:125 msgid "Proposal Created" msgstr "建议创建" @@ -2298,14 +2332,18 @@ msgstr "阅读更多" #: src/js/controllers/preferences.js:65 #: src/js/controllers/tx-details.js:54 msgid "Read more in our Wiki" -msgstr "" +msgstr "去我們的維基閱讀更多" + +#: src/js/controllers/cashScan.js:61 +msgid "Read only wallet" +msgstr "錢包只供唯讀" #: www/views/tab-receive.html:3 #: www/views/tabs.html:7 msgid "Receive" msgstr "接收" -#: www/views/customAmount.html:46 +#: www/views/customAmount.html:44 msgid "Receive in" msgstr "在接收" @@ -2463,17 +2501,17 @@ msgstr "重新扫描" msgid "Scan your fingerprint please" msgstr "请扫描你的指纹" -#: www/views/preferencesCash.html:22 +#: www/views/preferencesCash.html:23 msgid "Scan your wallets for Bitcoin Cash" -msgstr "" +msgstr "掃描你的錢包以存取小比特幣" #: src/js/services/onGoingProcess.js:30 msgid "Scanning Wallet funds..." msgstr "正在扫描钱包资金..." -#: www/views/tab-home.html:95 +#: www/views/includes/walletList.html:11 msgid "Scanning funds..." -msgstr "" +msgstr "掃描資金中....." #: www/views/includes/screenshotWarningModal.html:7 msgid "Screenshots are not secure" @@ -2544,7 +2582,7 @@ msgstr "通过电邮发送地址" msgid "Send by email" msgstr "通过电邮发送" -#: src/js/controllers/confirm.js:156 +#: src/js/controllers/confirm.js:177 msgid "Send from" msgstr "从发送" @@ -2583,7 +2621,7 @@ msgstr "发送的最大金额" msgid "Sending transaction" msgstr "正在发送交易" -#: src/js/controllers/confirm.js:524 +#: src/js/controllers/confirm.js:545 msgid "Sending {{amountStr}} from your {{name}} wallet" msgstr "从你的 {{name}} 钱包发送 {{amountStr}}" @@ -2698,24 +2736,27 @@ msgstr "单一地址钱包" msgid "Skip" msgstr "跳过" -#: src/js/controllers/confirm.js:350 +#: src/js/controllers/confirm.js:371 #: src/js/controllers/modals/txpDetails.js:47 msgid "Slide to accept" -msgstr "" +msgstr "在此點擊掃描以接受" #: www/views/buyAmazon.html:96 -#: www/views/buyMercadoLibre.html:83 msgid "Slide to buy" msgstr "滑动购买" -#: src/js/controllers/confirm.js:344 +#: src/js/controllers/confirm.js:365 msgid "Slide to pay" -msgstr "" +msgstr "在此點擊掃描以付款" -#: src/js/controllers/confirm.js:356 +#: src/js/controllers/confirm.js:377 #: src/js/controllers/modals/txpDetails.js:40 msgid "Slide to send" -msgstr "" +msgstr "在此點擊滑動以發送" + +#: 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 "你有些錢包不合資格得到小比特幣的支持可嘗試連結這些錢包至BCH基金" #: src/js/controllers/create.js:88 #: src/js/controllers/join.js:71 @@ -2761,7 +2802,7 @@ msgstr "超级经济" #: www/views/preferencesCash.html:11 msgid "Support Bitcoin Cash" -msgstr "" +msgstr "支持小比特幣" #: www/views/paperWallet.html:7 msgid "Sweep" @@ -2791,7 +2832,7 @@ msgstr "点击并按住以显示" #: www/views/includes/walletInfo.html:3 msgid "Tap to recreate" -msgstr "" +msgstr "點擊此以重新創建" #: www/views/includes/walletInfo.html:4 msgid "Tap to retry" @@ -2934,7 +2975,7 @@ msgstr "这个应用程序太棒了 !" msgid "This app stores your bitcoin with cutting-edge security." msgstr "此应用程序商店你比特币与尖端的安全。" -#: src/js/controllers/confirm.js:502 +#: src/js/controllers/confirm.js:523 msgid "This bitcoin payment request has expired." msgstr "这比特币付款请求已过期。" @@ -2944,15 +2985,15 @@ msgstr "这比特币付款请求已过期。" msgid "This password cannot be recovered. If the password is lost, there is no way you could recover your funds." msgstr "此密码将无法恢复。如果密码丢失,有是没有办法,你可以恢复您的资金。" -#: www/views/backup.html:24 +#: www/views/backup.html:31 msgid "This recovery phrase was created with a password. To recover this wallet both the recovery phrase and password are needed." msgstr "此恢复短语是用密码创建。为了恢复此钱包,需要恢复短语和密码。" -#: www/views/tx-details.html:93 +#: 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 "相对于当前比特币网络费,这笔交易金额太小。手续费相当于这笔交易金额本身。" -#: www/views/tx-details.html:89 +#: 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" msgstr "这笔交易可能需要很长的时间来确认或可能受到由发件人设置的低费用下降" @@ -2961,14 +3002,14 @@ msgstr "这笔交易可能需要很长的时间来确认或可能受到由发件 msgid "This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information." msgstr "此钱包不在给定的 Bitcore Wallet Service (BWS) 注册。你可以从本地信息重新创建它。" -#: www/views/modals/txp-details.html:138 -#: www/views/tx-details.html:123 +#: www/views/modals/txp-details.html:136 +#: www/views/tx-details.html:121 msgid "Timeline" msgstr "时间轴" #: www/views/confirm.html:31 #: www/views/includes/output.html:2 -#: www/views/modals/txp-details.html:111 +#: www/views/modals/txp-details.html:109 #: www/views/modals/txp-details.html:53 #: www/views/tx-details.html:41 #: www/views/tx-details.html:53 @@ -3023,7 +3064,7 @@ msgstr "触摸 ID 失败" msgid "Transaction" msgstr "交易" -#: www/views/confirm.html:128 +#: www/views/confirm.html:126 msgid "Transaction Created" msgstr "交易记录已创建" @@ -3083,7 +3124,7 @@ msgstr "键入恢复短语 (通常 12 个字)" msgid "Uh oh..." msgstr "哦哦......" -#: www/views/tx-details.html:102 +#: www/views/tx-details.html:100 msgid "Unconfirmed" msgstr "未确认" @@ -3157,7 +3198,7 @@ msgstr "查看交易记录的洞察" msgid "View Update" msgstr "查看更新" -#: www/views/tx-details.html:149 +#: www/views/tx-details.html:147 msgid "View on blockchain" msgstr "在 blockchain 上查看" @@ -3277,7 +3318,7 @@ msgstr "钱包类型" msgid "Wallet already exists" msgstr "钱包已存在" -#: src/js/services/profileService.js:515 +#: src/js/services/profileService.js:516 msgid "Wallet already in {{appName}}" msgstr "已经在 {{appName}} 的钱包" @@ -3319,8 +3360,8 @@ msgstr "未备份的钱包" msgid "Wallet not found" msgstr "找不到钱包" -#: src/js/controllers/cashScan.js:65 -#: src/js/controllers/tab-home.js:220 +#: src/js/controllers/cashScan.js:81 +#: src/js/controllers/tab-home.js:230 msgid "Wallet not registered" msgstr "未注册的钱包" @@ -3328,9 +3369,9 @@ msgstr "未注册的钱包" msgid "Wallet not registered at the wallet service. Recreate it from \"Create Wallet\" using \"Advanced Options\" to set your recovery phrase" msgstr "钱包不在 Wallet Service 注册。使用“创建钱包\"的\"高级选项\"设置你的恢复短语以重新创建它" -#: www/views/backup.html:11 -msgid "Wallet recovery phrase not available." -msgstr "钱包恢复短语不可用。" +#: www/views/backup.html:12 +msgid "Wallet recovery phrase not available" +msgstr "錢包恢復短語不存在" #: src/js/services/bwcError.js:50 msgid "Wallet service not found" @@ -3340,11 +3381,7 @@ msgstr "找不到 Wallet Service" msgid "Wallets" msgstr "钱包" -#: www/views/tab-settings.html:107 -msgid "Wallets & Integrations" -msgstr "钱包 & 集成" - -#: src/js/controllers/addressbookView.js:23 +#: src/js/controllers/addressbookView.js:36 #: src/js/controllers/modals/txpDetails.js:153 #: src/js/controllers/modals/txpDetails.js:170 #: src/js/controllers/preferencesDelete.js:24 @@ -3365,7 +3402,7 @@ msgstr "小心 !" msgid "We'd love to do better." msgstr "我们很乐意做得更好。" -#: www/views/backup.html:28 +#: www/views/backup.html:35 msgid "We'll confirm on the next screen." msgstr "我们会在下一个屏幕上确认。" @@ -3409,7 +3446,7 @@ msgstr "你会愿意率 {{appName}} app store 中的吗?" msgid "Would you like to receive push notifications about payments?" msgstr "你想收到推式通知有关付款吗?" -#: src/js/controllers/import.js:287 +#: src/js/controllers/import.js:288 msgid "Wrong number of recovery words:" msgstr "恢复词句数不正确:" @@ -3445,7 +3482,7 @@ msgstr "你可以看到最新的事态发展和贡献这个开放源码应用程 msgid "You can spend bitcoin at millions of websites and stores worldwide." msgstr "你可以花比特币在数以百万计的网站和世界各地的商店。" -#: www/views/backup.html:12 +#: www/views/backup.html:15 msgid "You can still export it from Advanced > Export." msgstr "你仍然可以将其导出从高级 > 出口。" @@ -3523,10 +3560,10 @@ msgstr "你的钱包是永远不会保存到云存储或标准设备备份。" msgid "Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down." msgstr "你的钱包钥匙将被加密。支付密码不能恢复。必须把它抄写下来" -#: www/views/includes/walletSelector.html:23 -#: www/views/paperWallet.html:35 -#: www/views/tab-home.html:97 -#: www/views/tab-receive.html:74 +#: www/views/includes/walletList.html:13 +#: www/views/includes/walletSelector.html:21 +#: www/views/paperWallet.html:33 +#: www/views/tab-receive.html:72 #: www/views/walletDetails.html:131 #: www/views/walletDetails.html:51 msgid "[Balance Hidden]" @@ -3535,7 +3572,7 @@ msgstr "[隐藏余额]" #: www/views/walletDetails.html:141 #: www/views/walletDetails.html:61 msgid "[Scanning Funds]" -msgstr "" +msgstr "[正在掃描資金]" #: src/js/controllers/bitpayCardIntro.js:11 msgid "add your BitPay Visa card(s)" @@ -3545,7 +3582,7 @@ msgstr "添加您的 BitPay 签证卡" msgid "locked by pending payments" msgstr "被未决支付锁定" -#: src/js/services/profileService.js:402 +#: src/js/services/profileService.js:404 msgid "me" msgstr "我" @@ -3557,6 +3594,10 @@ msgstr "name@example.com" msgid "preparing..." msgstr "准备中..." +#: www/views/cashScan.html:57 +msgid "recovery tool." +msgstr "恢復工具" + #: src/js/controllers/buyAmazon.js:239 msgid "{{amountStr}} for Amazon.com Gift Card" msgstr "{{amountStr}} 为亚马逊礼品卡的" @@ -3569,11 +3610,11 @@ msgstr "梅尔卡多里弗巴西礼品卡 {{amountStr}}" 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)." msgstr "{{appName}} 中的区块链信息依赖于 Bitcore Wallet Service (BWS)、网络和 Copayer synchronization。默认配置指向 https://bws.bitpay.com (BitPay 的公共 BWS 实例)。" -#: src/js/controllers/confirm.js:387 +#: src/js/controllers/confirm.js:408 msgid "{{fee}} will be deducted for bitcoin networking fees." msgstr "{{fee}} 将比特币网络费用中扣除。" -#: www/views/confirm.html:87 +#: www/views/confirm.html:85 msgid "{{tx.txp[wallet.id].feeRatePerStr}} of the sending amount" msgstr "发送量 {{tx.txp[wallet.id].feeRatePerStr}}" @@ -3581,7 +3622,7 @@ msgstr "发送量 {{tx.txp[wallet.id].feeRatePerStr}}" msgid "{{updatingTxHistoryProgress}} transactions downloaded" msgstr "下载的 {{updatingTxHistoryProgress}} 交易" -#: www/views/cashScan.html:32 +#: www/views/cashScan.html:33 #: www/views/copayers.html:46 #: www/views/includes/walletInfo.html:18 msgid "{{wallet.m}}-of-{{wallet.n}}" From 2bef3033b1aa2214c25c10bd9a2dbe40195f93eb Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Wed, 11 Oct 2017 17:22:10 -0300 Subject: [PATCH 157/157] Fix: missing variable in wallet service --- src/js/services/walletService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 15be5ecc0..118c138bb 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -104,7 +104,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim root.getStatus = function(wallet, opts, cb) { opts = opts || {}; - + var walletId = wallet.id; function processPendingTxps(status) { var txps = status.pendingTxps;