diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qt/bitcoin.cpp | 4 | ||||
-rw-r--r-- | src/qt/guiconstants.h | 3 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_de.ts | 16 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_el_GR.ts | 536 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_es.ts | 76 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_it.ts | 145 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_ja.ts | 116 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_kk_KZ.ts | 222 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_nl.ts | 362 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_ro_RO.ts | 4 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_ru.ts | 40 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_sr.ts | 22 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_uk.ts | 120 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_zh_TW.ts | 238 | ||||
-rw-r--r-- | src/qt/paymentrequestplus.cpp | 4 | ||||
-rw-r--r-- | src/qt/paymentrequestplus.h | 4 | ||||
-rw-r--r-- | src/qt/paymentserver.cpp | 91 | ||||
-rw-r--r-- | src/qt/paymentserver.h | 13 | ||||
-rw-r--r-- | src/qt/test/paymentservertests.cpp | 12 | ||||
-rw-r--r-- | src/rest.cpp | 26 | ||||
-rw-r--r-- | src/rpcblockchain.cpp | 14 | ||||
-rw-r--r-- | src/rpcwallet.cpp | 44 | ||||
-rw-r--r-- | src/test/data/script_invalid.json | 22 | ||||
-rw-r--r-- | src/test/data/script_valid.json | 32 | ||||
-rw-r--r-- | src/wallet.cpp | 40 | ||||
-rw-r--r-- | src/wallet.h | 1 |
26 files changed, 2053 insertions, 154 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 9872ebc1f6..123777a71b 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -570,9 +570,9 @@ int main(int argc, char *argv[]) } #ifdef ENABLE_WALLET // Parse URIs on command line -- this can affect Params() - if (!PaymentServer::ipcParseCommandLine(argc, argv)) - exit(0); + PaymentServer::ipcParseCommandLine(argc, argv); #endif + QScopedPointer<const NetworkStyle> networkStyle(NetworkStyle::instantiate(QString::fromStdString(Params().NetworkIDString()))); assert(!networkStyle.isNull()); // Allow for separate UI settings for testnets diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index f23175049a..8f3e476fd9 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -38,9 +38,6 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80; /* Maximum allowed URI length */ static const int MAX_URI_LENGTH = 255; -/* Maximum somewhat-sane size of a payment request file */ -static const int MAX_PAYMENT_REQUEST_SIZE = 50000; // bytes - /* QRCodeDialog -- size of exported QR Code image */ #define EXPORT_IMAGE_SIZE 256 diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 9462f668d3..2804d2d665 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -1856,14 +1856,26 @@ Adresse: %4</translation> <translation>Minimieren</translation> </message> <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Wenn die benutzerdefinierte Gebühr 1000 Satoshis beträgt und die Transaktion nur 250 Byte groß ist, wird bei Auswahl von "pro Kilobyte" eine Gebühr in Höhe von 250 Satoshis, bei Auswahl von "Mindestbetrag" eine Gebühr in Höhe von 1000 Satoshis bezahlt. Bei Transaktionen die Größer als ein Kilobyte sind, werden bei beiden Optionen die Gebühren pro Kilobyte bezahlt.</translation> + </message> + <message> <source>per kilobyte</source> <translation>pro Kilobyte</translation> </message> <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Wenn die benutzerdefinierte Gebühr 1000 Satoshis beträgt und die Transaktion nur 250 Byte groß ist, wird bei Auswahl von "pro Kilobyte" eine Gebühr in Höhe von 250 Satoshis, bei Auswahl von "Mindestbetrag" eine Gebühr in Höhe von 1000 Satoshis bezahlt. Bei Transaktionen die Größer als ein Kilobyte sind, werden bei beiden Optionen die Gebühren pro Kilobyte bezahlt.</translation> + </message> + <message> <source>total at least</source> <translation>Mindestbetrag</translation> </message> <message> + <source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Nur die minimale Gebühr zu bezahlen ist so lange in Ordnung, wie weniger Transaktionsvolumen als Platz in den Blöcken vorhanden ist. Aber Vorsicht, diese Option kann dazu führen, dass Transaktionen nicht bestätigt werden, wenn mehr Bedarf an Bitcoin-Transaktionen besteht als das Netzwerk verarbeiten kann.</translation> + </message> + <message> <source>(read the tooltip)</source> <translation>(den Hinweistext lesen)</translation> </message> @@ -2822,6 +2834,10 @@ zum Beispiel: alertnotify=echo %%s | mail -s \"Bitcoin Alert\" admin@foo.com <translation>Alle Wallet-Transaktionen löschen und nur diese Teilbereiche der Blockkette durch -rescan beim Starten wiederherstellen</translation> </message> <message> + <source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source> + <translation>Veröffentlicht unter der MIT-Softwarelizenz, siehe beiligende Datei COPYING oder <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> <translation>Regressionstest-Modus aktivieren, der eine spezielle Blockkette nutzt, in der Blöcke sofort gelöst werden können.</translation> </message> diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index 1a1c918c5b..cf29c222ed 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -7,7 +7,7 @@ </message> <message> <source>Create a new address</source> - <translation>Δημιούργησε νέα διεύθυνση</translation> + <translation>Δημιουργία νέας διεύθυνσης</translation> </message> <message> <source>&New</source> @@ -54,6 +54,10 @@ <translation>Επιλογή διεύθυνσης απ' όπου θα ληφθούν νομίσματα</translation> </message> <message> + <source>C&hoose</source> + <translation>Ε&πιλογή</translation> + </message> + <message> <source>Sending addresses</source> <translation>Διευθύνσεις αποστολής</translation> </message> @@ -66,6 +70,10 @@ <translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source> + <translation>Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Δίνοντας μία ξεχωριστή διεύθυνση σε κάθε αποστολέα, θα μπορείτε να ελέγχετε ποιος σας πληρώνει.</translation> + </message> + <message> <source>Copy &Label</source> <translation>Αντιγραφή &επιγραφής</translation> </message> @@ -85,7 +93,11 @@ <source>Exporting Failed</source> <translation>Η εξαγωγή απέτυχε</translation> </message> - </context> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>Παρουσιάστηκε σφάλμα κατά την αποθήκευση της λίστας πορτοφολιών στο %1. Παρακαλώ δοκιμάστε ξανά</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> @@ -113,7 +125,7 @@ </message> <message> <source>New passphrase</source> - <translation>Νέος κωδικός πρόσβασης</translation> + <translation>&Αλλαγή κωδικού</translation> </message> <message> <source>Repeat new passphrase</source> @@ -121,7 +133,7 @@ </message> <message> <source>Encrypt wallet</source> - <translation>Κρυπτογράφησε το πορτοφόλι</translation> + <translation>&Κρυπτογράφηση πορτοφολιού</translation> </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> @@ -173,6 +185,10 @@ <translation>Κρυπτογραφημενο πορτοφολι</translation> </message> <message> + <source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Εισάγετε τον νέο κωδικό πρόσβασης στον πορτοφόλι <br/> Παρακαλώ χρησιμοποιείστε ένα κωδικό με <b> 10 ή περισσότερους τυχαίους χαρακτήρες</b> ή <b> οχτώ ή παραπάνω λέξεις</b>.</translation> + </message> + <message> <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> <translation>Το Bitcoin θα κλεισει τώρα για να τελειώσει την διαδικασία κρυπτογραφησης. Θυμησου ότι κρυπτογραφώντας το πορτοφολι σου δεν μπορείς να προστατέψεις πλήρως τα bitcoins σου από κλοπή στην περίπτωση όπου μολυνθεί ο υπολογιστής σου με κακόβουλο λογισμικό.</translation> </message> @@ -220,6 +236,10 @@ <translation>&Επισκόπηση</translation> </message> <message> + <source>Node</source> + <translation>Κόμβος</translation> + </message> + <message> <source>Show general overview of wallet</source> <translation>Εμφάνισε τη γενική εικόνα του πορτοφολιού</translation> </message> @@ -264,6 +284,22 @@ <translation>&Άλλαξε κωδικο πρόσβασης</translation> </message> <message> + <source>&Sending addresses...</source> + <translation>Διευθύνσεις αποστολής</translation> + </message> + <message> + <source>&Receiving addresses...</source> + <translation>Διευθύνσεις λήψης</translation> + </message> + <message> + <source>Open &URI...</source> + <translation>'Ανοιγμα &URI</translation> + </message> + <message> + <source>Bitcoin Core client</source> + <translation>Εφαρμογή Bitcoin Core</translation> + </message> + <message> <source>Importing blocks from disk...</source> <translation>Εισαγωγή μπλοκ από τον σκληρο δίσκο ... </translation> </message> @@ -316,6 +352,10 @@ <translation>&Παραλαβή </translation> </message> <message> + <source>Show information about Bitcoin Core</source> + <translation>Σχετικά με το Bitcoin Core</translation> + </message> + <message> <source>&Show / Hide</source> <translation>&Εμφάνισε/Κρύψε</translation> </message> @@ -371,6 +411,18 @@ <source>Show the list of used receiving addresses and labels</source> <translation>Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως</translation> </message> + <message> + <source>Open a bitcoin: URI or payment request</source> + <translation>Άνοιγμα bitcoin: URI αίτησης πληρωμής</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>&Επιλογές γραμμής εντολών</translation> + </message> + <message> + <source>Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options</source> + <translation>Εμφανιση του Bitcoin-Qt μήνυματος βοήθειας για να πάρετε μια λίστα με τις πιθανές επιλογές Bitcoin γραμμής εντολών.</translation> + </message> <message numerus="yes"> <source>%n active connection(s) to Bitcoin network</source> <translation><numerusform>%n ενεργή σύνδεση στο δίκτυο Bitcoin</numerusform><numerusform>%n ενεργές συνδέσεις στο δίκτυο Βitcoin</numerusform></translation> @@ -470,6 +522,10 @@ Address: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Επιλογή κερμάτων</translation> + </message> + <message> <source>Quantity:</source> <translation>Ποσότητα:</translation> </message> @@ -486,6 +542,18 @@ Address: %4 <translation>Προτεραιότητα:</translation> </message> <message> + <source>Fee:</source> + <translation>Ταρίφα</translation> + </message> + <message> + <source>Dust:</source> + <translation>Σκόνη</translation> + </message> + <message> + <source>After Fee:</source> + <translation>Ταρίφα αλλαγής</translation> + </message> + <message> <source>Change:</source> <translation>Ρέστα:</translation> </message> @@ -494,10 +562,26 @@ Address: %4 <translation>(από)επιλογή όλων</translation> </message> <message> + <source>Tree mode</source> + <translation>Εμφάνιση τύπου δέντρο</translation> + </message> + <message> + <source>List mode</source> + <translation>Λίστα εντολών</translation> + </message> + <message> <source>Amount</source> <translation>Ποσό</translation> </message> <message> + <source>Received with label</source> + <translation>Παραλήφθηκε με επιγραφή</translation> + </message> + <message> + <source>Received with address</source> + <translation>Παραλείφθηκε με την εξής διεύθυνση</translation> + </message> + <message> <source>Date</source> <translation>Ημερομηνία</translation> </message> @@ -530,10 +614,26 @@ Address: %4 <translation>Αντιγραφη του ID Συναλλαγής</translation> </message> <message> + <source>Lock unspent</source> + <translation>Κλείδωμα αξόδευτων</translation> + </message> + <message> + <source>Unlock unspent</source> + <translation>Ξεκλείδωμα αξόδευτων</translation> + </message> + <message> <source>Copy quantity</source> <translation>Αντιγραφή ποσότητας</translation> </message> <message> + <source>Copy fee</source> + <translation>Αντιγραφή ταρίφας</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Αντιγραφή ταρίφας</translation> + </message> + <message> <source>Copy bytes</source> <translation>Αντιγραφή των byte</translation> </message> @@ -542,6 +642,10 @@ Address: %4 <translation>Αντιγραφή προτεραιότητας</translation> </message> <message> + <source>Copy dust</source> + <translation>Αντιγραφή 'σκόνης'</translation> + </message> + <message> <source>Copy change</source> <translation>Αντιγραφή των ρέστων</translation> </message> @@ -602,6 +706,22 @@ Address: %4 <translation>Η ετικετα γινετε κοκκινη , αν το μεγεθος της συναλαγης ειναι μεγαλητερο απο 1000 bytes.</translation> </message> <message> + <source>This means a fee of at least %1 per kB is required.</source> + <translation>Ελάχιστο χρεώσιμο ποσό τουλάχιστο %1 ανα kB</translation> + </message> + <message> + <source>Transactions with higher priority are more likely to get included into a block.</source> + <translation>Συναλλαγές με υψηλότερη προτεραιότητα είναι πιο πιθανό να περιλαμβάνονται σε ένα μπλοκ.</translation> + </message> + <message> + <source>This label turns red, if the priority is smaller than "medium".</source> + <translation>Η ετικέτα γίνεται κόκκινη , αν το μέγεθος της συναλαγής είναι μεγαλύτερο απο το ",μεσαίο",</translation> + </message> + <message> + <source>This label turns red, if any recipient receives an amount smaller than %1.</source> + <translation>Η ετικέτα γίνεται κόκκινη , αν ο παραλήπτης παραλάβει ένα ποσό μικρότερο απο %1.</translation> + </message> + <message> <source>(no label)</source> <translation>(χωρίς ετικέτα)</translation> </message> @@ -630,6 +750,10 @@ Address: %4 <translation>Η ετικέτα που συνδέεται με αυτήν την καταχώρηση στο βιβλίο διευθύνσεων</translation> </message> <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>Η διεύθυνση σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων. Μπορεί να τροποποιηθεί μόνο για τις διευθύνσεις αποστολής.</translation> + </message> + <message> <source>&Address</source> <translation>&Διεύθυνση</translation> </message> @@ -677,6 +801,14 @@ Address: %4 <translation>όνομα</translation> </message> <message> + <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> + <translation>Κατάλογος ήδη υπάρχει. Προσθήκη %1, αν σκοπεύετε να δημιουργήσετε έναν νέο κατάλογο εδώ.</translation> + </message> + <message> + <source>Path already exists, and is not a directory.</source> + <translation>Η διαδρομή υπάρχει ήδη αλλά δεν είναι φάκελος</translation> + </message> + <message> <source>Cannot create data directory here.</source> <translation>Δεν μπορεί να δημιουργηθεί φάκελος δεδομένων εδώ.</translation> </message> @@ -724,10 +856,18 @@ Address: %4 <translation>Έναρξη ελαχιστοποιημένο</translation> </message> <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Ορίστε SSL root certificates για αίτηση πληρωμής (default: -system-)</translation> + </message> + <message> <source>Show splash screen on startup (default: 1)</source> <translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation> </message> - </context> + <message> + <source>Choose data directory on startup (default: 0)</source> + <translation>Επιλογή καταλόγου</translation> + </message> +</context> <context> <name>Intro</name> <message> @@ -743,6 +883,10 @@ Address: %4 <translation>Καθώς αυτή είναι η πρώτη φορά που εκκινείται το πρόγραμμα, μπορείτε να διαλέξετε πού θα αποθηκεύει το Bitcoin Core τα δεδομένα του.</translation> </message> <message> + <source>Bitcoin Core will download and store a copy of the Bitcoin block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory.</source> + <translation>O πυρήνας Bitcoin θα κατεβάσει και να αποθηκεύσει ένα αντίγραφο της αλυσίδας μπλοκ Bitcoin. Τουλάχιστον %1GB δεδομένων θα αποθηκευτούν σε αυτόν τον κατάλογο, και θα αυξηθεί με την πάροδο του χρόνου. Το πορτοφόλι θα αποθηκευτεί σε αυτόν τον κατάλογο.</translation> + </message> + <message> <source>Use the default data directory</source> <translation>Χρήση του προεπιλεγμένου φακέλου δεδομένων</translation> </message> @@ -755,13 +899,37 @@ Address: %4 <translation>Bitcoin Core</translation> </message> <message> + <source>Error: Specified data directory "%1" cannot be created.</source> + <translation>Σφάλμα: Ο καθορισμένος φάκελος δεδομένων "%1" δεν μπορεί να δημιουργηθεί.</translation> + </message> + <message> <source>Error</source> <translation>Σφάλμα</translation> </message> </context> <context> <name>OpenURIDialog</name> - </context> + <message> + <source>Open URI</source> + <translation>'Ανοιγμα &URI</translation> + </message> + <message> + <source>Open payment request from URI or file</source> + <translation>Ανοιχτό αίτημα πληρωμής από URI ή απο αρχείο</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> + <message> + <source>Select payment request file</source> + <translation>Επιλέξτε πληρωμή αρχείου αίτησης</translation> + </message> + <message> + <source>Select payment request file to open</source> + <translation>Επιλέξτε αρχείο πληρωμής για άνοιγμα.</translation> + </message> +</context> <context> <name>OptionsDialog</name> <message> @@ -781,10 +949,34 @@ Address: %4 <translation>&Έναρξη του Βιtcoin κατά την εκκίνηση του συστήματος</translation> </message> <message> + <source>Size of &database cache</source> + <translation>Μέγεθος κρυφής μνήμης βάσης δεδομένων.</translation> + </message> + <message> <source>MB</source> <translation>MB</translation> </message> <message> + <source>Number of script &verification threads</source> + <translation>Αριθμός script και γραμμές επαλήθευσης </translation> + </message> + <message> + <source>Accept connections from outside</source> + <translation>Αποδοχή συνδέσεων απο έξω</translation> + </message> + <message> + <source>Allow incoming connections</source> + <translation>Αποδοχή εισερχόμενων συναλλαγών</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>Διεύθυνση IP του διαμεσολαβητή (π.χ. 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>Third party transaction URLs</source> + <translation>Διευθύνσεις τρίτων συναλλαγών.</translation> + </message> + <message> <source>Reset all client options to default.</source> <translation>Επαναφορα όλων των επιλογων του πελάτη σε default.</translation> </message> @@ -797,10 +989,18 @@ Address: %4 <translation>&Δίκτυο</translation> </message> <message> + <source>W&allet</source> + <translation>Π&ορτοφόλι</translation> + </message> + <message> <source>Expert</source> <translation>Έμπειρος</translation> </message> <message> + <source>Enable coin &control features</source> + <translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation> + </message> + <message> <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> <translation>Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP.</translation> </message> @@ -809,6 +1009,14 @@ Address: %4 <translation>Απόδοση θυρών με χρήστη &UPnP</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Σύνδεση στο Bitcoin δίκτυο μέσω διαμεσολαβητή SOCKS5 (π.χ. για σύνδεση μέσω Tor)</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Σύνδεση μέσω διαμεσολαβητή SOCKS5 (προεπιλεγμένος)</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>&IP διαμεσολαβητή:</translation> </message> @@ -861,6 +1069,10 @@ Address: %4 <translation>Διαλέξτε την προεπιλεγμένη υποδιαίρεση που θα εμφανίζεται όταν στέλνετε νομίσματα.</translation> </message> <message> + <source>Whether to show coin control features or not.</source> + <translation>Επιλογή κατα πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων.</translation> + </message> + <message> <source>&OK</source> <translation>&ΟΚ</translation> </message> @@ -885,6 +1097,14 @@ Address: %4 <translation>Χρειάζεται επανεκκίνηση του προγράμματος για να ενεργοποιηθούν οι αλλαγές.</translation> </message> <message> + <source>Client will be shutdown, do you want to proceed?</source> + <translation>Η εφαρμογή θα τερματιστεί. Θέλετε να προχωρήσετε;</translation> + </message> + <message> + <source>This change would require a client restart.</source> + <translation>Η αλλαγή αυτή θα χρειαστεί επανεκκίνηση του προγράμματος</translation> + </message> + <message> <source>The supplied proxy address is invalid.</source> <translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή</translation> </message> @@ -900,6 +1120,10 @@ Address: %4 <translation>Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. </translation> </message> <message> + <source>Watch-only:</source> + <translation>Επίβλεψη μόνο:</translation> + </message> + <message> <source>Available:</source> <translation>Διαθέσιμο:</translation> </message> @@ -908,6 +1132,10 @@ Address: %4 <translation>Το τρέχον διαθέσιμο υπόλοιπο</translation> </message> <message> + <source>Pending:</source> + <translation>Εκκρεμούν:</translation> + </message> + <message> <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> <translation>Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον διαθέσιμο υπόλοιπό σας</translation> </message> @@ -920,6 +1148,10 @@ Address: %4 <translation>Εξορυγμενο υπόλοιπο που δεν έχει ακόμα ωριμάσει </translation> </message> <message> + <source>Balances</source> + <translation>Υπόλοιπο:</translation> + </message> + <message> <source>Total:</source> <translation>Σύνολο:</translation> </message> @@ -928,6 +1160,14 @@ Address: %4 <translation>Το τρέχον συνολικό υπόλοιπο</translation> </message> <message> + <source>Spendable:</source> + <translation>Ξοδεμένα:</translation> + </message> + <message> + <source>Recent transactions</source> + <translation>Πρόσφατες συναλλαγές</translation> + </message> + <message> <source>out of sync</source> <translation>εκτός συγχρονισμού</translation> </message> @@ -943,6 +1183,18 @@ Address: %4 <translation>Μη έγκυρη διεύθυνση πληρωμής %1</translation> </message> <message> + <source>Payment request rejected</source> + <translation>Η αίτηση πληρωμής έχει αρνηθεί.</translation> + </message> + <message> + <source>Payment request has expired.</source> + <translation>Η αίτηση πληρωμής έχει λήξει.</translation> + </message> + <message> + <source>Payment request is not initialized.</source> + <translation>Η αίτηση πληρωμής δεν έχει αρχίζει ακόμα.</translation> + </message> + <message> <source>Payment request error</source> <translation>Σφάλμα αιτήματος πληρωμής</translation> </message> @@ -951,6 +1203,18 @@ Address: %4 <translation>Δεν είναι δυνατή η εκκίνηση του Bitcoin: click-to-pay handler</translation> </message> <message> + <source>Payment request fetch URL is invalid: %1</source> + <translation>Η διεύθυνση πληρωμής (URL) δεν είναι έγκυρη: %1</translation> + </message> + <message> + <source>Payment request file handling</source> + <translation>Επιλέξτε αρχείο πληρωμής για άνοιγμα.</translation> + </message> + <message> + <source>Refund from %1</source> + <translation>Επιστροφή ποσού από %1</translation> + </message> + <message> <source>Payment acknowledged</source> <translation>Πληρωμή αναγνωρίστηκε</translation> </message> @@ -961,7 +1225,15 @@ Address: %4 </context> <context> <name>PeerTableModel</name> - </context> + <message> + <source>Address/Hostname</source> + <translation>Διεύθυθνση/Όνομα υπολογιστή</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Χρόνος καθυστέρησης</translation> + </message> +</context> <context> <name>QObject</name> <message> @@ -969,6 +1241,14 @@ Address: %4 <translation>Ποσό</translation> </message> <message> + <source>Enter a Bitcoin address (e.g. %1)</source> + <translation>Εισάγετε μια διεύθυνση Bitcoin (π.χ. %1)</translation> + </message> + <message> + <source>%1 d</source> + <translation>%1 d</translation> + </message> + <message> <source>%1 h</source> <translation>%1 ώ</translation> </message> @@ -977,10 +1257,30 @@ Address: %4 <translation>%1 λ</translation> </message> <message> + <source>%1 s</source> + <translation>%1 s</translation> + </message> + <message> + <source>NETWORK</source> + <translation>Δίκτυο</translation> + </message> + <message> + <source>UNKNOWN</source> + <translation>Άγνωστο(α)</translation> + </message> + <message> + <source>None</source> + <translation>Κανένα</translation> + </message> + <message> <source>N/A</source> <translation>Μη διαθέσιμο</translation> </message> - </context> + <message> + <source>%1 ms</source> + <translation>%1 ms</translation> + </message> +</context> <context> <name>QRImageWidget</name> <message> @@ -1055,6 +1355,22 @@ Address: %4 <translation>Τρέχον αριθμός μπλοκ</translation> </message> <message> + <source>Received</source> + <translation>Παραλήφθησαν</translation> + </message> + <message> + <source>Version</source> + <translation>Έκδοση</translation> + </message> + <message> + <source>Services</source> + <translation>Υπηρεσίες</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Χρόνος καθυστέρησης</translation> + </message> + <message> <source>Last block time</source> <translation>Χρόνος τελευταίου μπλοκ</translation> </message> @@ -1130,6 +1446,26 @@ Address: %4 <source>%1 GB</source> <translation>%1 GB</translation> </message> + <message> + <source>via %1</source> + <translation>μέσω %1</translation> + </message> + <message> + <source>never</source> + <translation>ποτέ</translation> + </message> + <message> + <source>Inbound</source> + <translation>Εισερχόμενα</translation> + </message> + <message> + <source>Outbound</source> + <translation>Εξερχόμενα</translation> + </message> + <message> + <source>Unknown</source> + <translation>Άγνωστο(α)</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> @@ -1185,6 +1521,10 @@ Address: %4 <translation>Κώδικας QR</translation> </message> <message> + <source>Copy &URI</source> + <translation>Αντιγραφη της επιλεγμενης διεύθυνσης στο πρόχειρο του συστηματος</translation> + </message> + <message> <source>&Save Image...</source> <translation>&Αποθήκευση εικόνας...</translation> </message> @@ -1193,6 +1533,10 @@ Address: %4 <translation>Πληροφορίες πληρωμής</translation> </message> <message> + <source>URI</source> + <translation>URI:</translation> + </message> + <message> <source>Address</source> <translation>Διεύθυνση</translation> </message> @@ -1255,6 +1599,10 @@ Address: %4 <translation>Αποστολή νομισμάτων</translation> </message> <message> + <source>Coin Control Features</source> + <translation>Χαρακτηρηστικά επιλογής κερμάτων</translation> + </message> + <message> <source>automatically selected</source> <translation>επιλεγμένο αυτόματα</translation> </message> @@ -1279,10 +1627,34 @@ Address: %4 <translation>Προτεραιότητα:</translation> </message> <message> + <source>Fee:</source> + <translation>Ταρίφα</translation> + </message> + <message> + <source>After Fee:</source> + <translation>Ταρίφα αλλαγής</translation> + </message> + <message> <source>Change:</source> <translation>Ρέστα:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Τέλος συναλλαγής:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Επιλογή...</translation> + </message> + <message> + <source>Minimize</source> + <translation>Ελαχιστοποίηση</translation> + </message> + <message> + <source>fast</source> + <translation>Γρήγορο</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Αποστολή σε πολλούς αποδέκτες ταυτόχρονα</translation> </message> @@ -1295,6 +1667,10 @@ Address: %4 <translation>Καθαρισμός όλων των πεδίων της φόρμας.</translation> </message> <message> + <source>Dust:</source> + <translation>Σκόνη</translation> + </message> + <message> <source>Clear &All</source> <translation>Καθαρισμός &Όλων</translation> </message> @@ -1327,6 +1703,14 @@ Address: %4 <translation>Αντιγραφή ποσού</translation> </message> <message> + <source>Copy fee</source> + <translation>Αντιγραφή ταρίφας</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Αντιγραφή μετα-ταρίφας</translation> + </message> + <message> <source>Copy bytes</source> <translation>Αντιγραφή των byte</translation> </message> @@ -1379,6 +1763,10 @@ Address: %4 <translation>(χωρίς ετικέτα)</translation> </message> <message> + <source>Copy dust</source> + <translation>Αντιγραφή 'σκόνης'</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Είστε βέβαιοι για την αποστολή;</translation> </message> @@ -1464,6 +1852,10 @@ Address: %4 <translation>Μπορείτε να υπογράφετε μηνύματα με τις διευθύνσεις σας, ώστε ν' αποδεικνύετε πως αυτές σας ανήκουν. Αποφεύγετε να υπογράφετε κάτι αόριστο καθώς ενδέχεται να εξαπατηθείτε. Υπογράφετε μόνο πλήρης δηλώσεις με τις οποίες συμφωνείτε.</translation> </message> <message> + <source>The Bitcoin address to sign the message with</source> + <translation>Διεύθυνση Bitcoin που θα σταλεί το μήνυμα</translation> + </message> + <message> <source>Choose previously used address</source> <translation>Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί</translation> </message> @@ -1516,6 +1908,10 @@ Address: %4 <translation>Πληκτρολογήστε την υπογραφή διεύθυνσης, μήνυμα (βεβαιωθείτε ότι έχετε αντιγράψει τις αλλαγές γραμμής, κενά, tabs, κ.λπ. ακριβώς) και την υπογραφή παρακάτω, για να ελέγξει το μήνυμα. Να είστε προσεκτικοί για να μην διαβάσετε περισσότερα στην υπογραφή ό, τι είναι στην υπογραφή ίδιο το μήνυμα , για να μην εξαπατηθούν από έναν άνθρωπο -in - the-middle επίθεση.</translation> </message> <message> + <source>The Bitcoin address the message was signed with</source> + <translation>Διεύθυνση Bitcoin η οποία το μήνυμα έχει υπογραφεί</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως υπογραφθηκε απο μια συγκεκριμένη διεύθυνση Bitcoin</translation> </message> @@ -1609,6 +2005,10 @@ Address: %4 <translation>Ανοιχτό μέχρι %1</translation> </message> <message> + <source>conflicted</source> + <translation>σύγκρουση</translation> + </message> + <message> <source>%1/offline</source> <translation>%1/χωρίς σύνδεση;</translation> </message> @@ -1653,6 +2053,10 @@ Address: %4 <translation> δική σας διεύθυνση </translation> </message> <message> + <source>watch-only</source> + <translation>Επίβλεψη μόνο:</translation> + </message> + <message> <source>label</source> <translation>eπιγραφή</translation> </message> @@ -1673,6 +2077,14 @@ Address: %4 <translation>Debit</translation> </message> <message> + <source>Total debit</source> + <translation>Σύνολο χρέωσης</translation> + </message> + <message> + <source>Total credit</source> + <translation>Συνολική πίστωση</translation> + </message> + <message> <source>Transaction fee</source> <translation>Τέλος συναλλαγής </translation> </message> @@ -1697,6 +2109,10 @@ Address: %4 <translation>Έμπορος</translation> </message> <message> + <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> + <translation>Πρέπει να περιμένετε %1 μπλοκ πριν μπορέσετε να χρησιμοποιήσετε τα νομίσματα που έχετε δημιουργήσει. Το μπλοκ που δημιουργήσατε μεταδόθηκε στο δίκτυο για να συμπεριληφθεί στην αλυσίδα των μπλοκ. Αν δεν μπει σε αυτή θα μετατραπεί σε "μη αποδεκτό" και δε θα μπορεί να καταναλωθεί. Αυτό συμβαίνει σπάνια όταν κάποιος άλλος κόμβος δημιουργήσει ένα μπλοκ λίγα δευτερόλεπτα πριν από εσάς.</translation> + </message> + <message> <source>Debug information</source> <translation>Πληροφορίες αποσφαλμάτωσης</translation> </message> @@ -1787,6 +2203,10 @@ Address: %4 <translation>Ανεπιβεβαίωτες</translation> </message> <message> + <source>Conflicted</source> + <translation>Σύγκρουση</translation> + </message> + <message> <source>Received with</source> <translation>Παραλαβή με</translation> </message> @@ -1807,6 +2227,10 @@ Address: %4 <translation>Εξόρυξη</translation> </message> <message> + <source>watch-only</source> + <translation>Επίβλεψη μόνο:</translation> + </message> + <message> <source>(n/a)</source> <translation>(δ/α)</translation> </message> @@ -1918,6 +2342,10 @@ Address: %4 <translation>Εξαγωγή Ιστορικού Συναλλαγών</translation> </message> <message> + <source>Watch-only</source> + <translation>Επίβλεψη μόνο:</translation> + </message> + <message> <source>Exporting Failed</source> <translation>Η Εξαγωγή Απέτυχε</translation> </message> @@ -2154,6 +2582,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Σφάλμα φορτωσης της βασης δεδομενων των μπλοκ</translation> </message> <message> + <source>Error: A fatal internal error occured, see debug.log for details</source> + <translation>Σφάλμα: Παρουσιάστηκε ανεπανόρθωτο εσωτερικό σφάλμα, δείτε debug.log για λεπτομέρειες</translation> + </message> + <message> <source>Error: Disk space is low!</source> <translation>Προειδοποίηση: Χαμηλός χώρος στο δίσκο </translation> </message> @@ -2166,6 +2598,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>ταλαιπωρηθειτε για να ακούσετε σε οποιαδήποτε θύρα. Χρήση - ακούστε = 0 , αν θέλετε αυτό.</translation> </message> <message> + <source>Importing...</source> + <translation>ΕΙσαγωγή...</translation> + </message> + <message> <source>Invalid -onion address: '%s'</source> <translation>Άκυρη διεύθυνση -onion : '%s'</translation> </message> @@ -2178,6 +2614,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation> </message> <message> + <source>Specify wallet file (within data directory)</source> + <translation>Επιλέξτε αρχείο πορτοφολιού (μέσα απο κατάλογο δεδομένων)</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Επαλήθευση των μπλοκ... </translation> </message> @@ -2194,6 +2634,26 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Εισαγωγή μπλοκ από εξωτερικό αρχείο blk000?.dat</translation> </message> <message> + <source>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</source> + <translation>Αδυναμία κλειδώματος του φακέλου δεδομένων %s. Πιθανώς το Bitcoin να είναι ήδη ενεργό.</translation> + </message> + <message> + <source>Connect through SOCKS5 proxy</source> + <translation>Σύνδεση μέσω διαμεσολαβητή SOCKS5</translation> + </message> + <message> + <source>Could not parse -rpcbind value %s as network address</source> + <translation>Δεν μπόρεσε να αναλυθεί η παράμετρος -rpcbind value %s ως διεύθυνση δικτύου</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source> + <translation>Σφάλμα φόρτωσης wallet.dat: Το Πορτοφόλι απαιτεί μια νεότερη έκδοση του Bitcoin</translation> + </message> + <message> + <source>Error: Unsupported argument -tor found, use -onion.</source> + <translation>Σφάλμα: Μη συμβατή παράμετρος -tor. Χρησιμοποιήσε την παράμετρο -onion</translation> + </message> + <message> <source>Information</source> <translation>Πληροφορία</translation> </message> @@ -2206,6 +2666,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s'</translation> </message> <message> + <source>RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source> + <translation>Ρυθμίσεις SSL: (ανατρέξτε στο Bitcoin Wiki για οδηγίες ρυθμίσεων SSL)</translation> + </message> + <message> <source>Send trace/debug info to console instead of debug.log file</source> <translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log</translation> </message> @@ -2218,6 +2682,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Η υπογραφή συναλλαγής απέτυχε </translation> </message> <message> + <source>This is experimental software.</source> + <translation>Η εφαρμογή είναι σε πειραματικό στάδιο.</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Το ποσό της συναλλαγής είναι πολύ μικρο </translation> </message> @@ -2246,6 +2714,10 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Προειδοποίηση: Αυτή η έκδοση είναι ξεπερασμένη, απαιτείται αναβάθμιση </translation> </message> <message> + <source>Zapping all transactions from wallet...</source> + <translation>Μεταφορά όλων των συναλλαγών απο το πορτοφόλι</translation> + </message> + <message> <source>on startup</source> <translation>κατά την εκκίνηση</translation> </message> @@ -2290,14 +2762,62 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Σφάλμα φόρτωσης wallet.dat: Κατεστραμμένο Πορτοφόλι</translation> </message> <message> + <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> + <translation>Πόσο εξονυχιστική να είναι η επιβεβαίωση του μπλοκ (0-4, προεπιλογή: %u)</translation> + </message> + <message> + <source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source> + <translation>Διατηρήση ένος πλήρες ευρετήριου συναλλαγών (προεπιλογή: %u) </translation> + </message> + <message> + <source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source> + <translation>Δευτερόλεπτα πριν επιτραπεί ξανά η σύνδεση των προβληματικών peers (προεπιλογή: %u)</translation> + </message> + <message> <source>Error loading wallet.dat</source> <translation>Σφάλμα φόρτωσης αρχείου wallet.dat</translation> </message> <message> + <source>Force safe mode (default: %u)</source> + <translation>Επιβολή ασφαλής λειτουργίας (προεπιλογή: %u)</translation> + </message> + <message> + <source>Generate coins (default: %u)</source> + <translation>Δημιουργία νομισμάτων (προκαθορισμος: %u)</translation> + </message> + <message> + <source>How many blocks to check at startup (default: %u, 0 = all)</source> + <translation>Πόσα μπλοκ να ελέγχθουν κατά την εκκίνηση (προεπιλογή: %u, 0 = όλα)</translation> + </message> + <message> + <source>Include IP addresses in debug output (default: %u)</source> + <translation>Να συμπεριληφθεί η διεύθυνση IP στην αναφορά? (προεπιλογή: %u)</translation> + </message> + <message> <source>Invalid -proxy address: '%s'</source> <translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s'</translation> </message> <message> + <source>Print block tree on startup (default: %u)</source> + <translation>Εκτύπωση μπλοκ δέντρου κατά την εκκίνηση (προεπιλογή: %u)</translation> + </message> + <message> + <source>Server certificate file (default: %s)</source> + <translation>Αρχείο πιστοποιητικού του διακομιστή (προεπιλογή: %s)</translation> + </message> + <message> + <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> + <translation>Ορισμός λήξης χρονικού ορίου σε χιλιοστά του δευτερολέπτου(προεπιλογή: %d)</translation> + </message> + <message> + <source>Specify pid file (default: %s)</source> + <translation>Ορίστε αρχείο pid (προεπιλογή: %s)</translation> + </message> + <message> + <source>Threshold for disconnecting misbehaving peers (default: %u)</source> + <translation>Όριο αποσύνδεσης προβληματικών peers (προεπιλογή: %u)</translation> + </message> + <message> <source>Unknown network specified in -onlynet: '%s'</source> <translation>Άγνωστo δίκτυο ορίζεται σε onlynet: '%s'</translation> </message> diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index 71f7e9f4c9..b701366706 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -525,6 +525,10 @@ Dirección: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Selección de la moneda</translation> + </message> + <message> <source>Quantity:</source> <translation>Cantidad:</translation> </message> @@ -573,6 +577,14 @@ Dirección: %4 <translation>Cantidad</translation> </message> <message> + <source>Received with label</source> + <translation>Recibido con etiqueta</translation> + </message> + <message> + <source>Received with address</source> + <translation>Recibido con dirección</translation> + </message> + <message> <source>Date</source> <translation>Fecha</translation> </message> @@ -1035,6 +1047,14 @@ Dirección: %4 <translation>Mapear el puerto mediante &UPnP</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Conectarse a la red Bitcoin a través de un proxy SOCKS5.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Conectarse a través de proxy SOCKS5 (proxy predeterminado):</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>Dirección &IP del proxy:</translation> </message> @@ -1825,6 +1845,50 @@ Dirección: %4 <translation>Dirección propia</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Comisión de Transacción:</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimizar</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>por kilobyte</translation> + </message> + <message> + <source>total at least</source> + <translation>total por lo menos</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Recomendado:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Personalizado:</translation> + </message> + <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Tarifa inteligente no inicializado aún. Esto generalmente lleva a pocos bloques...)</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>Tiempo de confirmación:</translation> + </message> + <message> + <source>normal</source> + <translation>normal</translation> + </message> + <message> + <source>fast</source> + <translation>rápido</translation> + </message> + <message> + <source>(confirmation may take longer)</source> + <translation>(confirmación puede tardar más tiempo)</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples destinatarios de una vez</translation> </message> @@ -1929,6 +1993,14 @@ Dirección: %4 <translation>¡La transacción fue rechazada! Esto puede haber ocurrido si alguno de los bitcoins de su monedero ya estaba gastado o si ha usado una copia de wallet.dat y los bitcoins estaban gastados en la copia pero no se habían marcado como gastados aqui.</translation> </message> <message> + <source>Pay only the minimum fee of %1</source> + <translation>Paga sólo la cuota mínima de %1</translation> + </message> + <message> + <source>Estimated to begin confirmation within %1 block(s).</source> + <translation>Estimado para comenzar confirmación dentro de %1 bloque(s)</translation> + </message> + <message> <source>Warning: Invalid Bitcoin address</source> <translation>Alerta: Dirección de Bitcoin inválida</translation> </message> @@ -2739,6 +2811,10 @@ Por ejemplo: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com <translation>Borrar todas las transacciones del monedero y sólo recuperar aquellas partes de la cadena de bloques por medio de -rescan on startup.</translation> </message> <message> + <source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source> + <translation>Distribuido bajo la licencia de software MIT, vea la copia del archivo adjunto o <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> <translation>Ingresar en el modo de prueba de regresión, que utiliza una cadena especial en la que los bloques se pueden resolver instantáneamente.</translation> </message> diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 5dbe98b0f8..06cf0e0162 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -478,6 +478,10 @@ <source>Up to date</source> <translation>Aggiornato</translation> </message> + <message numerus="yes"> + <source>Processed %n blocks of transaction history.</source> + <translation><numerusform>Processati %n blocchi dello storico transazioni.</numerusform><numerusform>Processati %n blocchi dello storico delle transazioni.</numerusform></translation> + </message> <message> <source>Catching up...</source> <translation>In aggiornamento...</translation> @@ -522,6 +526,11 @@ Indirizzo: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Seleziona Moneta +</translation> + </message> + <message> <source>Quantity:</source> <translation>Quantità:</translation> </message> @@ -570,6 +579,14 @@ Indirizzo: %4 <translation>Importo</translation> </message> <message> + <source>Received with label</source> + <translation>Ricevuto con etichetta</translation> + </message> + <message> + <source>Received with address</source> + <translation>Ricevuto con l'indirizzo</translation> + </message> + <message> <source>Date</source> <translation>Data</translation> </message> @@ -1025,6 +1042,14 @@ Più URL vengono separati da una barra verticale |.</translation> <translation>Mappa le porte tramite &UPnP</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Connessione alla rete Bitcoin attraverso un proxy SOCKS5.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Connessione attraverso proxy SOCKS5 (proxy predefinito):</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>&IP del proxy:</translation> </message> @@ -1188,6 +1213,10 @@ Più URL vengono separati da una barra verticale |.</translation> <translation>l'equilibrio estratto solo nello sguardo degli indirizzi non è ancora maturo </translation> </message> <message> + <source>Current total balance in watch-only addresses</source> + <translation>Saldo corrente totale negli indirizzi watch-only</translation> + </message> + <message> <source>out of sync</source> <translation>non sincronizzato</translation> </message> @@ -1811,6 +1840,50 @@ Più URL vengono separati da una barra verticale |.</translation> <translation>Personalizza indirizzo di resto</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Tasse di Transazione</translation> + </message> + <message> + <source>Choose...</source> + <translation>Scegli...</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimizza</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>per kilobyte</translation> + </message> + <message> + <source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Pagando solo la tariffa minima è bene finché c'è meno volume di transazioni di spazio nei blocchi. Ma essere consapevoli che questo può finire in una transazione non confermando ancora una volta non vi è più richiesta per le transazioni Bitcoin di rete in grado di elaborare.</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Raccomandati:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Personalizza:</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>Tempo di conferma:</translation> + </message> + <message> + <source>normal</source> + <translation>normale</translation> + </message> + <message> + <source>fast</source> + <translation>veloce</translation> + </message> + <message> + <source>Send as zero-fee transaction if possible</source> + <translation>Invia una transazione a zero commissioni se possibile</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Invia a diversi beneficiari in una volta sola</translation> </message> @@ -2941,6 +3014,22 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com <translation>Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinita: %d)</translation> </message> <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Impossibile risolvere -whitebind address: '%s'</translation> + </message> + <message> + <source>Connect through SOCKS5 proxy</source> + <translation>Connetti attraverso SOCKS5 proxy</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source> + <translation>Errore caricamento wallet.dat: il wallet richiede una versione nuova di Bitcoin Core</translation> + </message> + <message> + <source>Fee (in BTC/kB) to add to transactions you send (default: %s)</source> + <translation>Commissione (in BTC/kB) da aggiungere alla transazione che invii (default: %s)</translation> + </message> + <message> <source>Information</source> <translation>Informazioni</translation> </message> @@ -2981,6 +3070,10 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com <translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation> </message> <message> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Invia transazioni a zero commissioni se possibile (default: %u)</translation> + </message> + <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Mostra tutte le opzioni di debug (utilizzo: --help -help-debug)</translation> </message> @@ -3086,10 +3179,62 @@ ad esempio: alertnotify=echo %%s | mail -s "Allarme Bitcoin" admin@foo.com <translation>Errore caricamento wallet.dat</translation> </message> <message> + <source>Force safe mode (default: %u)</source> + <translation>Forza modalità provvisoria (dafault: %u)</translation> + </message> + <message> + <source>Generate coins (default: %u)</source> + <translation>Genera coins (default: %u)</translation> + </message> + <message> + <source>How many blocks to check at startup (default: %u, 0 = all)</source> + <translation>Quanti blocchi da controllare all'avvio (dafault: %u, 0 = tutti)</translation> + </message> + <message> <source>Invalid -proxy address: '%s'</source> <translation>Indirizzo -proxy non valido: '%s'</translation> </message> <message> + <source>Maintain at most <n> connections to peers (default: %u)</source> + <translation>Mantieni al massimo <n> connessioni ai peers (default: %u)</translation> + </message> + <message> + <source>Prepend debug output with timestamp (default: %u)</source> + <translation>Pretendi output di debug con timestamp (default: %u)</translation> + </message> + <message> + <source>Print block tree on startup (default: %u)</source> + <translation>Stampa l'albero dei blocchi all'avvio (default: %u)</translation> + </message> + <message> + <source>Server certificate file (default: %s)</source> + <translation>File certificato del server (default: %s)</translation> + </message> + <message> + <source>Server private key (default: %s)</source> + <translation>Chiave privata del server (default: %s)</translation> + </message> + <message> + <source>Specify configuration file (default: %s)</source> + <translation>Specifica il file di configurazione (default: %s)</translation> + </message> + <message> + <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> + <translation>Specifica il timeout di connessione in millisecondi (minimo:1, default: %d)</translation> + </message> + <message> + <source>Specify pid file (default: %s)</source> + <translation>Specifica il file pid (default: %s)</translation> + </message> + <message> + <source>Spend unconfirmed change when sending transactions (default: %u)</source> + <translation>Spendi il resto non confermato quando si inviano transazioni (default: %u)</translation> + </message> + <message> + <source>Stop running after importing blocks from disk (default: %u)</source> + <translation>Interrompi dopo aver importato i blocchi dal disco (default: %u)</translation> + </message> + <message> <source>Unknown network specified in -onlynet: '%s'</source> <translation>Rete sconosciuta specificata in -onlynet: '%s'</translation> </message> diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index dd2d8c8c72..0c9805de8f 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -70,6 +70,10 @@ <translation>これらは支払いを送信するためのあなたの Bitcoin アドレスです。コインを送信する前に、常に額と受信アドレスを確認してください。</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source> + <translation>これらは支払いを受け取るためのビットコインアドレスです。トランザクションごとに新しい受け取り用アドレスを作成することが推奨されます。</translation> + </message> + <message> <source>Copy &Label</source> <translation>ラベルをコピー (&L)</translation> </message> @@ -89,7 +93,11 @@ <source>Exporting Failed</source> <translation>エクスポート失敗</translation> </message> - </context> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>トランザクション履歴を %1 へ保存する際にエラーが発生しました。再試行してください。</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> @@ -176,6 +184,10 @@ <translation>ウォレットは暗号化されました</translation> </message> <message> + <source>Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>ウォレットの新しいパスフレーズを入力してください。<br/><b>10文字以上のランダムな文字</b>で構成されたものか、<b>8単語以上の単語</b>で構成されたパスフレーズを使用してください。</translation> + </message> + <message> <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> <translation>Bitcoin は暗号化プロセスを終了するために今すぐ終了します。あなたのコンピュータがマルウェアに感染してコインを盗まれることもあるので、暗号化してもあなたのウォレットを完全に保護できないことを覚えていてください。</translation> </message> @@ -283,6 +295,10 @@ <translation>URI を開く (&U)...</translation> </message> <message> + <source>Bitcoin Core client</source> + <translation>Bitcoinコア クライアント</translation> + </message> + <message> <source>Importing blocks from disk...</source> <translation>ディスクからブロックをインポートしています...</translation> </message> @@ -335,6 +351,10 @@ <translation>受信 (&R)</translation> </message> <message> + <source>Show information about Bitcoin Core</source> + <translation>Bitcoinコアに関する情報を表示</translation> + </message> + <message> <source>&Show / Hide</source> <translation>見る/隠す (&S)</translation> </message> @@ -375,10 +395,18 @@ <translation>Bitcoin のコア</translation> </message> <message> + <source>Request payments (generates QR codes and bitcoin: URIs)</source> + <translation>支払いを要求する (QRコードとbitcoin:ではじまるURIを生成する)</translation> + </message> + <message> <source>&About Bitcoin Core</source> <translation>ビットコインコアについて (&A)</translation> </message> <message> + <source>Show the list of used sending addresses and labels</source> + <translation>使用済みの送金用アドレスとラベルの一覧を表示する</translation> + </message> + <message> <source>Show the list of used receiving addresses and labels</source> <translation>支払いを受け取るアドレスとラベルのリストを表示する</translation> </message> @@ -484,6 +512,10 @@ Address: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>コイン選択</translation> + </message> + <message> <source>Quantity:</source> <translation>数量:</translation> </message> @@ -556,6 +588,14 @@ Address: %4 <translation>取引 ID をコピー</translation> </message> <message> + <source>Lock unspent</source> + <translation>未使用トランザクションをロックする</translation> + </message> + <message> + <source>Unlock unspent</source> + <translation>未使用トランザクションをアンロックする</translation> + </message> + <message> <source>Copy quantity</source> <translation>数量をコピーする</translation> </message> @@ -677,6 +717,10 @@ Address: %4 <translation>バージョン</translation> </message> <message> + <source>About Bitcoin Core</source> + <translation>Bitcoinコアについて</translation> + </message> + <message> <source>Command-line options</source> <translation>コマンドライン オプション</translation> </message> @@ -735,7 +779,15 @@ Address: %4 <source>Error</source> <translation>エラー</translation> </message> - </context> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>%n GBの空き容量が利用可能</numerusform></translation> + </message> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(%n GB必要)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -786,6 +838,14 @@ Address: %4 <translation>MB</translation> </message> <message> + <source>Number of script &verification threads</source> + <translation>スクリプト検証用スレッド数 (&V)</translation> + </message> + <message> + <source>Accept connections from outside</source> + <translation>外部からの接続を許可する</translation> + </message> + <message> <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> <translation>プロキシのIPアドレス (例えば IPv4: 127.0.0.1 / IPv6: ::1)</translation> </message> @@ -933,6 +993,14 @@ Address: %4 <translation>あなたの現在の残高</translation> </message> <message> + <source>Recent transactions</source> + <translation>最近のトランザクション</translation> + </message> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>ウォッチオンリーアドレスの採掘された残高のうち、成熟していないもの</translation> + </message> + <message> <source>out of sync</source> <translation>同期していない</translation> </message> @@ -948,6 +1016,14 @@ Address: %4 <translation>支払いのアドレス「%1」は無効です</translation> </message> <message> + <source>Payment request rejected</source> + <translation>支払い要求は拒否されました</translation> + </message> + <message> + <source>Payment request has expired.</source> + <translation>支払いのリクエストは期限切れです</translation> + </message> + <message> <source>Payment request error</source> <translation>支払いのリクエストのエラーです</translation> </message> @@ -974,6 +1050,10 @@ Address: %4 </context> <context> <name>PeerTableModel</name> + <message> + <source>User Agent</source> + <translation>ユーザエージェント</translation> + </message> </context> <context> <name>QObject</name> @@ -1064,6 +1144,10 @@ Address: %4 <translation>現在のブロック数</translation> </message> <message> + <source>User Agent</source> + <translation>ユーザエージェント</translation> + </message> + <message> <source>Last block time</source> <translation>最終ブロックの日時</translation> </message> @@ -1155,6 +1239,10 @@ Address: %4 <translation>メッセージ (&M):</translation> </message> <message> + <source>Clear all fields of the form.</source> + <translation>全ての入力項目をクリア</translation> + </message> + <message> <source>Clear</source> <translation>クリア</translation> </message> @@ -1163,6 +1251,10 @@ Address: %4 <translation>表示</translation> </message> <message> + <source>Remove the selected entries from the list</source> + <translation>リストから選択項目を削除</translation> + </message> + <message> <source>Copy label</source> <translation>ラベルをコピーする</translation> </message> @@ -1308,6 +1400,10 @@ Address: %4 <translation>受取人を追加 (&R)</translation> </message> <message> + <source>Clear all fields of the form.</source> + <translation>全ての入力項目をクリア</translation> + </message> + <message> <source>Clear &All</source> <translation>すべてクリア (&A)</translation> </message> @@ -1433,7 +1529,15 @@ Address: %4 </context> <context> <name>ShutdownWindow</name> - </context> + <message> + <source>Bitcoin Core is shutting down...</source> + <translation>Bitcoin Coreをシャットダウンしています。</translation> + </message> + <message> + <source>Do not shut down the computer until this window disappears.</source> + <translation>このウィンドウが消えるまでコンピュータをシャットダウンしないで下さい。</translation> + </message> +</context> <context> <name>SignVerifyMessageDialog</name> <message> @@ -1956,7 +2060,11 @@ Address: %4 </context> <context> <name>WalletFrame</name> - </context> + <message> + <source>No wallet has been loaded.</source> + <translation>ウォレットがロードされていません</translation> + </message> +</context> <context> <name>WalletModel</name> <message> diff --git a/src/qt/locale/bitcoin_kk_KZ.ts b/src/qt/locale/bitcoin_kk_KZ.ts index 3d38b00217..5a39417a7a 100644 --- a/src/qt/locale/bitcoin_kk_KZ.ts +++ b/src/qt/locale/bitcoin_kk_KZ.ts @@ -10,10 +10,22 @@ <translation>Жаңа адрес енгізу</translation> </message> <message> + <source>&New</source> + <translation>Жаңа</translation> + </message> + <message> <source>Copy the currently selected address to the system clipboard</source> <translation>Таңдаған адресті тізімнен жою</translation> </message> <message> + <source>C&lose</source> + <translation>Жабу</translation> + </message> + <message> + <source>&Export</source> + <translation>Экспорт</translation> + </message> + <message> <source>&Delete</source> <translation>Жою</translation> </message> @@ -78,6 +90,90 @@ </context> <context> <name>BitcoinGUI</name> + <message> + <source>&Transactions</source> + <translation>&Транзакциялар</translation> + </message> + <message> + <source>E&xit</source> + <translation>Шығу</translation> + </message> + <message> + <source>&Options...</source> + <translation>Параметрлері</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>Әмиянды жасыру</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>Құпия сөзді өзгерту</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Биткоин</translation> + </message> + <message> + <source>Wallet</source> + <translation>Әмиян</translation> + </message> + <message> + <source>&Send</source> + <translation>Жіберу</translation> + </message> + <message> + <source>&Receive</source> + <translation>Алу</translation> + </message> + <message> + <source>&File</source> + <translation>Файл</translation> + </message> + <message> + <source>&Help</source> + <translation>Көмек</translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n сағат</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n күн</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n апта</numerusform></translation> + </message> + <message> + <source>%1 and %2</source> + <translation>%1 немесе %2</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n жыл</numerusform></translation> + </message> + <message> + <source>%1 behind</source> + <translation>%1 қалмады</translation> + </message> + <message> + <source>Error</source> + <translation>қате</translation> + </message> + <message> + <source>Warning</source> + <translation>Ескерту</translation> + </message> + <message> + <source>Information</source> + <translation>Информация</translation> + </message> + <message> + <source>Up to date</source> + <translation>Жаңартылған</translation> + </message> </context> <context> <name>ClientModel</name> @@ -85,12 +181,60 @@ <context> <name>CoinControlDialog</name> <message> + <source>Amount:</source> + <translation>Саны</translation> + </message> + <message> + <source>Priority:</source> + <translation>Басымдық</translation> + </message> + <message> + <source>Fee:</source> + <translation>Комиссия</translation> + </message> + <message> + <source>Dust:</source> + <translation>Шаң</translation> + </message> + <message> + <source>After Fee:</source> + <translation>Комиссия алу кейін</translation> + </message> + <message> + <source>Amount</source> + <translation>Саны</translation> + </message> + <message> + <source>Date</source> + <translation>Күні</translation> + </message> + <message> + <source>Confirmations</source> + <translation>Растау саны</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Растық</translation> + </message> + <message> + <source>Priority</source> + <translation>Басымдық</translation> + </message> + <message> + <source>no</source> + <translation>жоқ</translation> + </message> + <message> <source>(no label)</source> <translation>(таңбасыз)</translation> </message> </context> <context> <name>EditAddressDialog</name> + <message> + <source>&Address</source> + <translation>Адрес</translation> + </message> </context> <context> <name>FreespaceChecker</name> @@ -100,6 +244,10 @@ </context> <context> <name>Intro</name> + <message> + <source>Error</source> + <translation>қате</translation> + </message> </context> <context> <name>OpenURIDialog</name> @@ -118,6 +266,10 @@ </context> <context> <name>QObject</name> + <message> + <source>Amount</source> + <translation>Саны</translation> + </message> </context> <context> <name>QRImageWidget</name> @@ -135,6 +287,10 @@ <translation>Адрес</translation> </message> <message> + <source>Amount</source> + <translation>Саны</translation> + </message> + <message> <source>Label</source> <translation>таңба</translation> </message> @@ -142,10 +298,18 @@ <context> <name>RecentRequestsTableModel</name> <message> + <source>Date</source> + <translation>Күні</translation> + </message> + <message> <source>Label</source> <translation>таңба</translation> </message> <message> + <source>Amount</source> + <translation>Саны</translation> + </message> + <message> <source>(no label)</source> <translation>(таңбасыз)</translation> </message> @@ -153,6 +317,26 @@ <context> <name>SendCoinsDialog</name> <message> + <source>Amount:</source> + <translation>Саны</translation> + </message> + <message> + <source>Priority:</source> + <translation>Басымдық</translation> + </message> + <message> + <source>Fee:</source> + <translation>Комиссия:</translation> + </message> + <message> + <source>After Fee:</source> + <translation>Комиссия алу кейін:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Шаң</translation> + </message> + <message> <source>(no label)</source> <translation>(таңбасыз)</translation> </message> @@ -174,6 +358,14 @@ </context> <context> <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>Күні</translation> + </message> + <message> + <source>Amount</source> + <translation>Саны</translation> + </message> </context> <context> <name>TransactionDescDialog</name> @@ -181,6 +373,10 @@ <context> <name>TransactionTableModel</name> <message> + <source>Date</source> + <translation>Күні</translation> + </message> + <message> <source>Address</source> <translation>Адрес</translation> </message> @@ -192,6 +388,14 @@ <translation>Үтірмен бөлінген файл (*.csv)</translation> </message> <message> + <source>Confirmed</source> + <translation>Растық</translation> + </message> + <message> + <source>Date</source> + <translation>Күні</translation> + </message> + <message> <source>Label</source> <translation>таңба</translation> </message> @@ -211,10 +415,18 @@ </context> <context> <name>WalletView</name> + <message> + <source>&Export</source> + <translation>Экспорт</translation> + </message> </context> <context> <name>bitcoin-core</name> <message> + <source>Information</source> + <translation>Информация</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Транзакция өте кішкентай</translation> </message> @@ -222,5 +434,13 @@ <source>Transaction too large</source> <translation>Транзакция өте үлкен</translation> </message> - </context> + <message> + <source>Warning</source> + <translation>Ескерту</translation> + </message> + <message> + <source>Error</source> + <translation>қате</translation> + </message> +</context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index e57362d7fd..258c7f109f 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -67,7 +67,7 @@ </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Check altijd het bedrag en het ontvangende adres voordat u uw bitcoins verzendt.</translation> + <translation>Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangende adres voordat u uw bitcoins verzendt.</translation> </message> <message> <source>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</source> @@ -478,6 +478,10 @@ <source>Up to date</source> <translation>Bijgewerkt</translation> </message> + <message numerus="yes"> + <source>Processed %n blocks of transaction history.</source> + <translation><numerusform>%n Blok verwerkt van transactie geschiedenis.</numerusform><numerusform>%n Blokken verwerkt van transactie geschiedenis.</numerusform></translation> + </message> <message> <source>Catching up...</source> <translation>Aan het bijwerken...</translation> @@ -521,6 +525,10 @@ Adres: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Munt Selectie</translation> + </message> + <message> <source>Quantity:</source> <translation>Kwantiteit</translation> </message> @@ -569,6 +577,14 @@ Adres: %4 <translation>Bedrag</translation> </message> <message> + <source>Received with label</source> + <translation>Ontvangen met label</translation> + </message> + <message> + <source>Received with address</source> + <translation>Ontvangen met adres</translation> + </message> + <message> <source>Date</source> <translation>Datum</translation> </message> @@ -904,7 +920,11 @@ Adres: %4 <source>%n GB of free space available</source> <translation><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform><numerusform>%n GB aan vrije oplsagruimte beschikbaar</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(van %n GB nodig)</numerusform><numerusform>(van %n GB nodig)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -1027,6 +1047,14 @@ Adres: %4 <translation>Portmapping via &UPnP</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Verbind met het Bitcoin netwerk via een SOCKS5 proxy.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Verbind via een SOCKS5-proxy (standaardproxy):</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>Proxy &IP:</translation> </message> @@ -1158,6 +1186,10 @@ Adres: %4 <translation>Gedolven saldo dat nog niet tot wasdom is gekomen</translation> </message> <message> + <source>Balances</source> + <translation>Saldi</translation> + </message> + <message> <source>Total:</source> <translation>Totaal:</translation> </message> @@ -1166,10 +1198,30 @@ Adres: %4 <translation>Uw totale saldo</translation> </message> <message> + <source>Your current balance in watch-only addresses</source> + <translation>Uw huidige balans in alleen-bekijkbare adressen</translation> + </message> + <message> + <source>Spendable:</source> + <translation>Besteedbaar:</translation> + </message> + <message> <source>Recent transactions</source> <translation>Recente transacties</translation> </message> <message> + <source>Unconfirmed transactions to watch-only addresses</source> + <translation>Onbevestigde transacties naar alleen-bekijkbare adressen</translation> + </message> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>Ontgonnen saldo dat nog niet tot wasdom is gekomen</translation> + </message> + <message> + <source>Current total balance in watch-only addresses</source> + <translation>Huidige balans in alleen-bekijkbare adressen.</translation> + </message> + <message> <source>out of sync</source> <translation>niet gesynchroniseerd</translation> </message> @@ -1189,10 +1241,18 @@ Adres: %4 <translation>Betalingsverzoek geweigerd</translation> </message> <message> + <source>Payment request network doesn't match client network.</source> + <translation>Betalingsaanvraagnetwerk komt niet overeen met klantennetwerk.</translation> + </message> + <message> <source>Payment request has expired.</source> <translation>Betalingsverzoek is verlopen.</translation> </message> <message> + <source>Payment request is not initialized.</source> + <translation>Betalingsaanvraag is niet geïnitialiseerd.</translation> + </message> + <message> <source>Requested payment amount of %1 is too small (considered dust).</source> <translation>Het gevraagde betalingsbedrag van %1 is te weinig (beschouwd als stof).</translation> </message> @@ -1209,10 +1269,18 @@ Adres: %4 <translation>URL om betalingsverzoek te verkrijgen is ongeldig: %1</translation> </message> <message> + <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source> + <translation>URI kan niet verwerkt worden! Dit kan het gevolg zijn van een ongeldig Bitcoin adres of misvormde URI parameters.</translation> + </message> + <message> <source>Payment request file handling</source> <translation>Betalingsverzoek bestandsafhandeling</translation> </message> <message> + <source>Payment request file cannot be read! This can be caused by an invalid payment request file.</source> + <translation>Betalingsverzoek-bestand kan niet gelezen of verwerkt worden! Dit kan veroorzaakt worden door een ongeldig betalingsverzoek-bestand.</translation> + </message> + <message> <source>Unverified payment requests to custom payment scripts are unsupported.</source> <translation>Niet-geverifieerde betalingsverzoeken naar aangepaste betaling scripts worden niet ondersteund.</translation> </message> @@ -1225,6 +1293,10 @@ Adres: %4 <translation>Fout bij communiceren met %1: %2</translation> </message> <message> + <source>Payment request cannot be parsed!</source> + <translation>Betalingsverzoek kan niet juist worden ontleed of verwerkt!</translation> + </message> + <message> <source>Bad response from server %1</source> <translation>Ongeldige respons van server %1</translation> </message> @@ -1243,7 +1315,15 @@ Adres: %4 <source>User Agent</source> <translation>User Agent</translation> </message> - </context> + <message> + <source>Address/Hostname</source> + <translation>Adres/Hostnaam</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Ping tijd</translation> + </message> +</context> <context> <name>QObject</name> <message> @@ -1341,6 +1421,10 @@ Adres: %4 <translation>Gebruikt OpenSSL versie</translation> </message> <message> + <source>Using BerkeleyDB version</source> + <translation>Gebruikt BerkeleyDB versie</translation> + </message> + <message> <source>Startup time</source> <translation>Opstarttijd</translation> </message> @@ -1373,6 +1457,14 @@ Adres: %4 <translation>Verstuurd</translation> </message> <message> + <source>&Peers</source> + <translation>&Peers</translation> + </message> + <message> + <source>Select a peer to view detailed information.</source> + <translation>Selecteer een peer om gedetailleerde informatie te bekijken.</translation> + </message> + <message> <source>Direction</source> <translation>Directie</translation> </message> @@ -1389,6 +1481,18 @@ Adres: %4 <translation>Services</translation> </message> <message> + <source>Starting Height</source> + <translation>Aanvangshoogte</translation> + </message> + <message> + <source>Sync Height</source> + <translation>Synchronisatiehoogte</translation> + </message> + <message> + <source>Ban Score</source> + <translation>Ban score</translation> + </message> + <message> <source>Connection Time</source> <translation>Connectie tijd</translation> </message> @@ -1409,6 +1513,10 @@ Adres: %4 <translation>Bytes Ontvangen</translation> </message> <message> + <source>Ping Time</source> + <translation>Ping Tijd</translation> + </message> + <message> <source>Last block time</source> <translation>Tijd laatste blok</translation> </message> @@ -1493,10 +1601,22 @@ Adres: %4 <translation>nooit</translation> </message> <message> + <source>Inbound</source> + <translation>Inkomend</translation> + </message> + <message> + <source>Outbound</source> + <translation>Uitgaand</translation> + </message> + <message> <source>Unknown</source> <translation>Onbekend</translation> </message> - </context> + <message> + <source>Fetching...</source> + <translation>Ophalen...</translation> + </message> +</context> <context> <name>ReceiveCoinsDialog</name> <message> @@ -1725,6 +1845,50 @@ Adres: %4 <translation>Aangepast wisselgeldadres</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Transactiekosten:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Kies...</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimaliseer</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>per kilobyte</translation> + </message> + <message> + <source>total at least</source> + <translation>totaal ten minste</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Aanbevolen:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Handmatig:</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>Bevestigings tijd:</translation> + </message> + <message> + <source>normal</source> + <translation>normaal</translation> + </message> + <message> + <source>fast</source> + <translation>snel</translation> + </message> + <message> + <source>(confirmation may take longer)</source> + <translation>(bevestiging kan langer duren)</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Verstuur aan verschillende ontvangers ineens</translation> </message> @@ -1829,6 +1993,18 @@ Adres: %4 <translation>De transactie was afgewezen. Dit kan gebeuren als u eerder uitgegeven munten opnieuw wilt versturen, zoals wanneer u een kopie van uw wallet.dat heeft gebruikt en in de kopie deze munten zijn gemarkeerd als uitgegeven, maar in de huidige nog niet.</translation> </message> <message> + <source>A fee higher than %1 is considered an insanely high fee.</source> + <translation>Transactiekosten hoger dan %1 worden gezien als waanzinnig hoog.</translation> + </message> + <message> + <source>Pay only the minimum fee of %1</source> + <translation>Betaal alleen de minimale transactiekosten van %1</translation> + </message> + <message> + <source>Estimated to begin confirmation within %1 block(s).</source> + <translation>Beginnen van bevesting geschat binnen %1 blok(ken).</translation> + </message> + <message> <source>Warning: Invalid Bitcoin address</source> <translation>Waarschuwing: Ongeldig Bitcoin adres</translation> </message> @@ -1880,6 +2056,10 @@ Adres: %4 <translation>Dit is een normale betaling.</translation> </message> <message> + <source>The Bitcoin address to send the payment to</source> + <translation>Het Bitcoin adres om betaling aan te voldoen</translation> + </message> + <message> <source>Alt+A</source> <translation>Alt+A</translation> </message> @@ -1950,6 +2130,10 @@ Adres: %4 <translation>U kunt berichten ondertekenen met een van uw adressen om te bewijzen dat u dit adres bezit. Pas op dat u geen onduidelijke dingen ondertekent, want phishingaanvallen zouden u kunnen misleiden om zo uw identiteit te stelen. Onderteken alleen berichten waarmee u het volledig eens bent.</translation> </message> <message> + <source>The Bitcoin address to sign the message with</source> + <translation>Het Bitcoin adres om bericht mee te ondertekenen</translation> + </message> + <message> <source>Choose previously used address</source> <translation>Kies een eerder gebruikt adres</translation> </message> @@ -2002,6 +2186,10 @@ Adres: %4 <translation>Voer het ondertekenende adres, bericht en handtekening hieronder in (let erop dat u nieuwe regels, spaties en tabs juist overneemt) om de handtekening te verifiëren. Let erop dat u niet meer uit het bericht interpreteert dan er daadwerkelijk staat, om te voorkomen dat u wordt misleid in een man-in-the-middle-aanval.</translation> </message> <message> + <source>The Bitcoin address the message was signed with</source> + <translation>Het Bitcoin adres waarmee het bericht ondertekend is</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Controleer een bericht om te verifiëren dat het gespecificeerde Bitcoinadres het bericht heeft ondertekend.</translation> </message> @@ -2143,6 +2331,10 @@ Adres: %4 <translation>eigen adres</translation> </message> <message> + <source>watch-only</source> + <translation>alleen-bekijkbaar</translation> + </message> + <message> <source>label</source> <translation>label</translation> </message> @@ -2163,6 +2355,14 @@ Adres: %4 <translation>Debet</translation> </message> <message> + <source>Total debit</source> + <translation>Totaal debit</translation> + </message> + <message> + <source>Total credit</source> + <translation>Totaal credit</translation> + </message> + <message> <source>Transaction fee</source> <translation>Transactiekosten</translation> </message> @@ -2313,6 +2513,10 @@ Adres: %4 <translation>Gedolven</translation> </message> <message> + <source>watch-only</source> + <translation>alleen-bekijkbaar</translation> + </message> + <message> <source>(n/a)</source> <translation>(nvt)</translation> </message> @@ -2424,6 +2628,10 @@ Adres: %4 <translation>Exporteer Transactieverleden</translation> </message> <message> + <source>Watch-only</source> + <translation>Alleen-bekijkbaar</translation> + </message> + <message> <source>Exporting Failed</source> <translation>Export Mislukt</translation> </message> @@ -2478,7 +2686,11 @@ Adres: %4 </context> <context> <name>UnitDisplayStatusBarControl</name> - </context> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Eenheid om bedragen uit te drukken. Klik om een andere eenheid te selecteren.</translation> + </message> +</context> <context> <name>WalletFrame</name> <message> @@ -2753,6 +2965,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran <translation>Dit is bedoeld voor regressie test toepassingen en applicatie onwikkeling.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: %u)</source> + <translation>Gebruik UPnP om de luisterende poort te mappen (standaard: %u)</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Blokken aan het controleren...</translation> </message> @@ -2789,6 +3005,10 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran <translation>Stel maximumgrootte in bytes in voor hoge-prioriteits-/lage-transactiekosten-transacties (standaard: %d)</translation> </message> <message> + <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source> + <translation>Fout bij laden wallet.dat: Portemonnee vereist een nieuwere versie van Bitcoin Core</translation> + </message> + <message> <source>Information</source> <translation>Informatie</translation> </message> @@ -2801,6 +3021,18 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran <translation>Ongeldig bedrag voor -mintxfee=<bedrag>: '%s'</translation> </message> <message> + <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> + <translation>Ongeldig bedrag voor -paytxfee=<bedrag>: '%s' (Minimum %s)</translation> + </message> + <message> + <source>Keep at most <n> unconnectable blocks in memory (default: %u)</source> + <translation>Houd maximaal <n> onverbonden blokken in geheugen (standaard: %u)</translation> + </message> + <message> + <source>Keep at most <n> unconnectable transactions in memory (default: %u)</source> + <translation>Houd maximaal <n> onverbonden transacties in geheugen (standaard: %u)</translation> + </message> + <message> <source>Print block on startup, if found in block index</source> <translation>Toon block bij opstarten, wanneer gevonden in block index</translation> </message> @@ -2917,14 +3149,134 @@ bijvoorbeeld: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</tran <translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation> </message> <message> + <source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source> + <translation>Onderhoud een volledige transactieindex, gebruikt door de getrawtransaction rpc call (standaard: %u)</translation> + </message> + <message> + <source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source> + <translation>Aantal seconden dat zich misdragende peers niet opnieuw kunnen verbinden (standaard: %u)</translation> + </message> + <message> + <source>Output debugging information (default: %u, supplying <category> is optional)</source> + <translation>Output extra debugginginformatie (standaard: %u, het leveren van <category> is optioneel)</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> + <translation>Gebruik een aparte SOCKS5 proxy om 'Tor hidden services' te bereiken (standaard: %s)</translation> + </message> + <message> + <source>Always query for peer addresses via DNS lookup (default: %u)</source> + <translation>Vind anderen door middel van een DNS-naslag (standaard: %u)</translation> + </message> + <message> + <source>Disable safemode, override a real safe mode event (default: %u)</source> + <translation>Veilige modus uitschakelen, hef een echte veilige modus gebeurtenis uit (default: %u)</translation> + </message> + <message> <source>Error loading wallet.dat</source> <translation>Fout bij laden wallet.dat</translation> </message> <message> + <source>Force safe mode (default: %u)</source> + <translation>Forceer veilige modus (default: %u)</translation> + </message> + <message> + <source>Generate coins (default: %u)</source> + <translation>Genereer munten (standaard: %u)</translation> + </message> + <message> + <source>How many blocks to check at startup (default: %u, 0 = all)</source> + <translation>Aantal te checken blokken bij het opstarten (standaard: %u, 0 = allemaal)</translation> + </message> + <message> <source>Invalid -proxy address: '%s'</source> <translation>Ongeldig -proxy adres: '%s'</translation> </message> <message> + <source>Limit size of signature cache to <n> entries (default: %u)</source> + <translation>Limiteer grootte van de handtekening cache tot <n> entries (default: %u)</translation> + </message> + <message> + <source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source> + <translation>Luister naar JSON-RPC-verbindingen op poort <port> (standaard: %u of testnet: %u)</translation> + </message> + <message> + <source>Listen for connections on <port> (default: %u or testnet: %u)</source> + <translation>Luister naar verbindingen op <poort> (standaard: %u of testnet: %u)</translation> + </message> + <message> + <source>Maintain at most <n> connections to peers (default: %u)</source> + <translation>Onderhoud maximaal <n> verbindingen naar peers (standaard: %u)</translation> + </message> + <message> + <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maximum per-connectie ontvangstbuffer, <n>*1000 bytes (standaard: %u)</translation> + </message> + <message> + <source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maximum per-connectie zendbuffer, <n>*1000 bytes (standaard: %u)</translation> + </message> + <message> + <source>Only accept block chain matching built-in checkpoints (default: %u)</source> + <translation>Accepteer alleen blokkenketen die overeenkomt met de ingebouwde checkpoints (standaard: %u)</translation> + </message> + <message> + <source>Prepend debug output with timestamp (default: %u)</source> + <translation>Prepend debug output met tijdstempel (standaard: %u)</translation> + </message> + <message> + <source>Print block tree on startup (default: %u)</source> + <translation>Toon block structuur bij opstarten (default: %u)</translation> + </message> + <message> + <source>Run a thread to flush wallet periodically (default: %u)</source> + <translation>Draai een proces om de wallet periodiek te flushen (default: %u)</translation> + </message> + <message> + <source>Server certificate file (default: %s)</source> + <translation>Certificaat-bestand voor server (standaard: %s)</translation> + </message> + <message> + <source>Server private key (default: %s)</source> + <translation>Geheime sleutel voor server (standaard: %s)</translation> + </message> + <message> + <source>Set key pool size to <n> (default: %u)</source> + <translation>Stel sleutelpoelgrootte in op <&> (standaard: %u)</translation> + </message> + <message> + <source>Set minimum block size in bytes (default: %u)</source> + <translation>Stel minimum blokgrootte in in bytes (standaard: %u)</translation> + </message> + <message> + <source>Set the number of threads to service RPC calls (default: %d)</source> + <translation>Stel het aantal threads in om RPC-aanvragen mee te bedienen (standaard: %d)</translation> + </message> + <message> + <source>Sets the DB_PRIVATE flag in the wallet db environment (default: %u)</source> + <translation>Plaatst de DB_PRIVATE vlag in de wallet db omgeving (default: %u)</translation> + </message> + <message> + <source>Specify configuration file (default: %s)</source> + <translation>Specificeer configuratie bestand (standaard: %s)</translation> + </message> + <message> + <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> + <translation>Specificeer de time-out tijd in milliseconden (minimum: 1, standaard: %d)</translation> + </message> + <message> + <source>Specify pid file (default: %s)</source> + <translation>Specificeer pid-bestand (standaard: %s)</translation> + </message> + <message> + <source>Spend unconfirmed change when sending transactions (default: %u)</source> + <translation>Besteed onbevestigd wisselgeld bij het versturen van transacties (standaard: %u)</translation> + </message> + <message> + <source>Threshold for disconnecting misbehaving peers (default: %u)</source> + <translation>Drempel om verbinding te verbreken naar zich misdragende peers (standaard: %u)</translation> + </message> + <message> <source>Unknown network specified in -onlynet: '%s'</source> <translation>Onbekend netwerk gespecificeerd in -onlynet: '%s'</translation> </message> diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index ccae9482da..81342c5dbc 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -774,6 +774,10 @@ Adresa: %4 <translation>versiunea</translation> </message> <message> + <source>(%1-bit)</source> + <translation>(%1-bit)</translation> + </message> + <message> <source>About Bitcoin Core</source> <translation>Despre Nucleul Bitcoin</translation> </message> diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index fa66297779..55986d4092 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -521,6 +521,10 @@ Address: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Выбор монет</translation> + </message> + <message> <source>Quantity:</source> <translation>Количество:</translation> </message> @@ -1845,16 +1849,36 @@ Address: %4 <translation>Выберите...</translation> </message> <message> + <source>collapse fee-settings</source> + <translation>Свернуть настройки комиссии</translation> + </message> + <message> <source>Minimize</source> <translation>Сворачивать</translation> </message> <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт".</translation> + </message> + <message> <source>per kilobyte</source> <translation>за килобайт</translation> </message> <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Если комиссия установлена в 1000 сатоши, а транзакция составляет лишь 250 байт, тогда комиссия "на килобайт" составит 250 сатоши, а "всего как минимум" — 1000 сатоши. Для транзакций крупнее килобайта в обоих случаях будет использоваться платёж "на килобайт".</translation> + </message> + <message> <source>total at least</source> - <translation>Итого</translation> + <translation>Итого как минимум</translation> + </message> + <message> + <source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Уплата минимальной комиссии — не проблема, пока объём транзакций меньше, чем свободное место в блоках. Учтите, однако, что такая транзакция может никогда не подтвердиться, если спрос на транзакции превышает возможности сети по их обработке.</translation> + </message> + <message> + <source>(read the tooltip)</source> + <translation>(прочтите подсказку)</translation> </message> <message> <source>Recommended:</source> @@ -1865,6 +1889,10 @@ Address: %4 <translation>Выборочно:</translation> </message> <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Умная комиссия пока не инициализирована. Обычно для этого требуется несколько блоков...)</translation> + </message> + <message> <source>Confirmation time:</source> <translation>Время подтверждения:</translation> </message> @@ -1994,7 +2022,7 @@ Address: %4 </message> <message> <source>Estimated to begin confirmation within %1 block(s).</source> - <translation>Ожидается начать подтверждение через %1 блок(ов).</translation> + <translation>Начало подтверждения ожидается через %1 блок(ов).</translation> </message> <message> <source>Warning: Invalid Bitcoin address</source> @@ -2799,6 +2827,10 @@ rpcpassword=%s <translation>Удалить все транзакции бумажника с возможностью восстановить эти части цепи блоков с помощью -rescan при запуске</translation> </message> <message> + <source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source> + <translation>Распространяется под лицензией MIT, см. приложенный файл COPYING или <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> <translation>Войти в режим тестирования на регрессии, в котором используется специальная цепь, где блоки находятся мгновенно.</translation> </message> @@ -3064,7 +3096,7 @@ rpcpassword=%s </message> <message> <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> - <translation>Задать число потоков генерации монет, если включена (-1 = число ядер процессора, по умолчанию: %d)</translation> + <translation>Задать число потоков генерации монет, если она включена (-1 = все ядра процессора, по умолчанию: %d)</translation> </message> <message> <source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source> @@ -3332,7 +3364,7 @@ rpcpassword=%s </message> <message> <source>Disable safemode, override a real safe mode event (default: %u)</source> - <translation>Отключить безопасный режим, отклонить реальное событие безопасного режима (по умолчанию: %u)</translation> + <translation>Отключить безопасный режим, перекрыть реальное событие безопасного режима (по умолчанию: %u)</translation> </message> <message> <source>Error loading wallet.dat</source> diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index 64c68a2226..b005ce23ad 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -3,15 +3,31 @@ <name>AddressBookPage</name> <message> <source>Double-click to edit address or label</source> - <translation>Кликните два пута да промените адресу и/или етикету</translation> + <translation>Kliknite dva puta da izmenite adresu ili etiketu</translation> </message> <message> <source>Create a new address</source> - <translation>Прави нову адресу</translation> + <translation>Napravite novu adresu</translation> + </message> + <message> + <source>&New</source> + <translation>Novo</translation> </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>Копира изабрану адресу на системски клипборд</translation> + <translation>Kopirajte trenutno izabranu adresu</translation> + </message> + <message> + <source>&Copy</source> + <translation>Kopirajte</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>Kopirajte adresu</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Izbrisite trenutno izabranu adresu sa liste</translation> </message> <message> <source>&Delete</source> diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index b6ba507e9b..9b5f4c9f4e 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -525,6 +525,10 @@ Address: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Вибір Монет</translation> + </message> + <message> <source>Quantity:</source> <translation>Кількість:</translation> </message> @@ -573,6 +577,14 @@ Address: %4 <translation>Кількість</translation> </message> <message> + <source>Received with label</source> + <translation>Отримано з позначкою</translation> + </message> + <message> + <source>Received with address</source> + <translation>Отримано з адресою</translation> + </message> + <message> <source>Date</source> <translation>Дата</translation> </message> @@ -1035,6 +1047,14 @@ Address: %4 <translation>Відображення порту через &UPnP</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Підключення до мережі Bitcoin через SOCKS5 проксі.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Підключення через SOCKS5 проксі (проксі за замовчуванням):</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>&IP проксі:</translation> </message> @@ -1825,6 +1845,78 @@ Address: %4 <translation>Вказати адресу для решти</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Комісія за передачу:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Виберіть...</translation> + </message> + <message> + <source>collapse fee-settings</source> + <translation>згорнути налаштування оплат</translation> + </message> + <message> + <source>Minimize</source> + <translation>Мінімізувати</translation> + </message> + <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт.</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>за кілобайт</translation> + </message> + <message> + <source>If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte.</source> + <translation>Якщо оплата користувача встановлюється в 1000 Satoshi і розмір передачі всього 250 байт, то "за кілобайт" платить тільки 250 Satoshi, в той час як "всього щонайменше" платить 1000 satoshis. Для передач більших, ніж кілобайт обоє платять за кілобайт.</translation> + </message> + <message> + <source>total at least</source> + <translation>всього щонайменше</translation> + </message> + <message> + <source>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Оплата тільки мінімальних зборів є прийнятною до тих пір, як обсяг транзакцій там є меншим аніж простору в блоках. Але майте на увазі, що це може анулювати транзакцію, якщо попит на Bitcoin транзакції стане значно більшим, ніж мережа зможе обробити.</translation> + </message> + <message> + <source>(read the tooltip)</source> + <translation>(читати підказки)</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Рекомендовано:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Змінено:</translation> + </message> + <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Розумна оплата ще не ініціалізована. Це звичайно займає кілька блоків...)</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>Час підтвердження:</translation> + </message> + <message> + <source>normal</source> + <translation>звичайний</translation> + </message> + <message> + <source>fast</source> + <translation>швидкий</translation> + </message> + <message> + <source>Send as zero-fee transaction if possible</source> + <translation>Надіслати як нульовий плата за передачу, якщо це можливо</translation> + </message> + <message> + <source>(confirmation may take longer)</source> + <translation>(підтвердження може зайняти більше часу)</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Відправити на декілька адрес</translation> </message> @@ -1929,6 +2021,18 @@ Address: %4 <translation>Транзакцію відхилено! Це може статись, якщо декілька монет з вашого гаманця вже використані, наприклад, якщо ви використовуєте одну копію гаманця (wallet.dat), а монети були використані з іншої копії, але не позначені як використані в цій.</translation> </message> <message> + <source>A fee higher than %1 is considered an insanely high fee.</source> + <translation>Плата вища, ніж %1 вважається шалено високою.</translation> + </message> + <message> + <source>Pay only the minimum fee of %1</source> + <translation>Платити тільки мінімальний збір у розмірі %1</translation> + </message> + <message> + <source>Estimated to begin confirmation within %1 block(s).</source> + <translation>Розрахунковий початок підтвердження протягом %1 блоку(ів).</translation> + </message> + <message> <source>Warning: Invalid Bitcoin address</source> <translation>Увага: Неправильна Bitcoin-адреса</translation> </message> @@ -2735,6 +2839,10 @@ rpcpassword=%s <translation>Видалити всі транзакції гаманця та відновити ті, що будуть знайдені під час запуску за допомогою -rescan</translation> </message> <message> + <source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source> + <translation>Поширюється за ліцензією MIT, додаткова інформація міститься у файлі COPYING та за адресою <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> <translation>Ввійти в режим регресивного тестування, що використовує спеціальний ланцюг з миттєвим знаходженням блоків.</translation> </message> @@ -2987,6 +3095,10 @@ rpcpassword=%s <translation>Комісії (в BTC/КБ), що менші за вказану, вважатимуться нульовими (для створення транзакції) (типово: %s)</translation> </message> <message> + <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> + <translation>Максимальний розмір даних в транзакціях носіїв даних, що ми передаємо і добуваємо (за замовчуванням: %u)</translation> + </message> + <message> <source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source> <translation>Дізнаватися адреси учасників через DNS при замалій кількості відомих адрес (типово: 1 за відсутності -connect)</translation> </message> @@ -2995,6 +3107,10 @@ rpcpassword=%s <translation>Встановити максимальний розмір транзакцій з високим пріоритетом та низькою комісією (в байтах) (типово: %d)</translation> </message> <message> + <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> + <translation>Встановити кількість потоків для генерації монет (-1 = кількості ядер, типово: %d)</translation> + </message> + <message> <source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source> <translation>Цей продукт включає в себе програмне забезпечення, розроблене в рамках проекту OpenSSL <https://www.openssl.org/>, криптографічне програмне забезпечення, написане Еріком Янгом, та функції для роботи з UPnP, написані Томасом Бернардом.</translation> </message> @@ -3099,6 +3215,10 @@ rpcpassword=%s <translation>Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log</translation> </message> <message> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Встановити операцію надсилання, як неоплатну операцію, якщо це можливо (за замовчуванням: %u)</translation> + </message> + <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Показати всі налагоджувальні параметри (використання: --help -help-debug)</translation> </message> diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index b70596d83a..56d598fc64 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -478,6 +478,10 @@ <source>Up to date</source> <translation>最新狀態</translation> </message> + <message numerus="yes"> + <source>Processed %n blocks of transaction history.</source> + <translation><numerusform>已經處理了 %n 個區塊的交易紀錄。</numerusform></translation> + </message> <message> <source>Catching up...</source> <translation>正在趕進度...</translation> @@ -521,6 +525,10 @@ Address: %4 <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>選擇錢幣</translation> + </message> + <message> <source>Quantity:</source> <translation>數目:</translation> </message> @@ -1031,6 +1039,14 @@ Address: %4 <translation>用 &UPnP 設定通訊埠對應</translation> </message> <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>透過 SOCKS5 代理伺服器來連線到位元幣網路。</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>透過 SOCKS5 代理伺服器連線(預設代理伺服器):</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>代理位址:</translation> </message> @@ -1821,6 +1837,38 @@ Address: %4 <translation>自定找零位址</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>交易手續費:</translation> + </message> + <message> + <source>Choose...</source> + <translation>選擇...</translation> + </message> + <message> + <source>collapse fee-settings</source> + <translation>展開手續費設定</translation> + </message> + <message> + <source>Minimize</source> + <translation>最小化</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>每千位元組</translation> + </message> + <message> + <source>(read the tooltip)</source> + <translation>(請看提示)</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>確認時間:</translation> + </message> + <message> + <source>Send as zero-fee transaction if possible</source> + <translation>盡可能送不用付手續費的交易</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>一次付給多個收款人</translation> </message> @@ -2732,6 +2780,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>清掉錢包裡的所有交易,並且在下次啟動時,使用 -rescan 來從區塊鏈中復原回來。</translation> </message> <message> + <source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source> + <translation>這套軟體是依據 MIT 軟體授權條款散布,詳情請見附帶的 COPYING 檔案,或是以下網站: <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> <translation>進入回歸測試模式,使用可以立即解出區塊的特殊區塊鏈。</translation> </message> @@ -2784,6 +2836,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>警告: 錢包檔 wallet.dat 壞掉,但資料被拯救回來了!原來的 wallet.dat 會改儲存在 %s, 檔名是 wallet.{timestamp}.bak. 如果餘額或交易資料有誤,你應該要用備份資料復原回來。</translation> </message> <message> + <source>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</source> + <translation>把來自指定網域或位址的節點放進白名單。這個選項可以設定多次。</translation> + </message> + <message> <source>(default: 1)</source> <translation>(預設值: 1)</translation> </message> @@ -2821,7 +2877,7 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> </message> <message> <source>Do not load the wallet and disable wallet RPC calls</source> - <translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能呼叫。</translation> + <translation>不要載入錢包,並且拿掉錢包相關的 RPC 功能請求。</translation> </message> <message> <source>Do you want to rebuild the block database now?</source> @@ -2948,6 +3004,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>沒辦法鎖定資料目錄 %s。位元幣核心可能已經在執行了。</translation> </message> <message> + <source>Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u)</source> + <translation>對沒付手續費的交易持續限制每分鐘內最多只能有 <n>*1000 個位元組(預設值: %u)</translation> + </message> + <message> <source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source> <translation>用系統預設權限來造出新的檔案,而不是用使用者權限罩遮(umask)值 077 (只有在關掉錢包功能時才有作用)。</translation> </message> @@ -2972,6 +3032,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>當製造交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation> </message> <message> + <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> + <translation>轉發和開採時,對只帶資料的交易的大小上限(預設值: %u)</translation> + </message> + <message> <source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source> <translation>是否允許在節點位址數目不足時,使用域名查詢來搜尋節點 (預設值: 當沒用 -connect 時為 1)</translation> </message> @@ -2980,6 +3044,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d)</translation> </message> <message> + <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> + <translation>設定產生錢幣的執行緒數目(-1 表示處理器核心數,預設值: %d)</translation> + </message> + <message> <source>This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.</source> <translation>此產品也包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit 軟體 <https://www.openssl.org/>, 和由 Eric Young 撰寫的加解密軟體,以及由 Thomas Bernard 所撰寫的 UPnP 軟體。</translation> </message> @@ -3084,6 +3152,10 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>在終端機顯示追蹤或除錯資訊,而不是寫到檔案 debug.log 中</translation> </message> <message> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>盡可能送出不用付手續費的交易(預設值: %u)</translation> + </message> + <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>顯示所有的除錯選項 (用法: --help --help-debug)</translation> </message> @@ -3192,14 +3264,178 @@ alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo.com</translation> <translation>載入檔案 wallet.dat 時發生錯誤: 錢包損毀了</translation> </message> <message> + <source>(1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)</source> + <translation>(1 表示保留交易描述資料,像是帳戶使用者和付款請求資訊;2 表示丟掉交易描述資料)</translation> + </message> + <message> + <source>Flush database activity from memory pool to disk log every <n> megabytes (default: %u)</source> + <translation>每當累積到 <n> 百萬位元組(MB)時,才將資料庫的變動從記憶體暫存池中寫進磁碟紀錄檔(預設值: %u)</translation> + </message> + <message> + <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> + <translation>使用 -checkblocks 檢查區塊的仔細程度(0 到 4,預設值: %u)</translation> + </message> + <message> + <source>If paytxfee is not set, include enough fee so transactions are confirmed on average within n blocks (default: %u)</source> + <translation>當沒有設定 paytxfee 時,自動包含可以讓交易能在平均 n 個區塊內確認的手續費(預設值: %u)</translation> + </message> + <message> + <source>Log transaction priority and fee per kB when mining blocks (default: %u)</source> + <translation>開採區塊的時候,紀錄交易的優先度以及每千位元組(kB)的手續費(預設值: %u)</translation> + </message> + <message> + <source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source> + <translation>維護全部交易的索引,用在 getrawtransaction 這個 RPC 請求(預設值: %u)</translation> + </message> + <message> + <source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source> + <translation>避免與亂搞的節點連線的秒數(預設: %u)</translation> + </message> + <message> + <source>Output debugging information (default: %u, supplying <category> is optional)</source> + <translation>輸出除錯資訊(預設值: %u, 不一定要指定 <category>)</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> + <translation>使用另外的 SOCK5 代理伺服器,來透過 Tor 隱藏服務跟節點聯繫(預設值: %s)</translation> + </message> + <message> + <source>(default: %s)</source> + <translation>(預設值: %s)</translation> + </message> + <message> + <source>Acceptable ciphers (default: %s)</source> + <translation>可以接受的加密演算法(預設值: %s)</translation> + </message> + <message> + <source>Always query for peer addresses via DNS lookup (default: %u)</source> + <translation>是否一定要用域名查詢來搜尋節點(預設值: %u)</translation> + </message> + <message> + <source>Disable safemode, override a real safe mode event (default: %u)</source> + <translation>不進入安全模式,用在真的發生需要進入安全模式的事件時,強制不進入(預設值: %u)</translation> + </message> + <message> <source>Error loading wallet.dat</source> <translation>載入錢包檔 wallet.dat 時發生錯誤</translation> </message> <message> + <source>Force safe mode (default: %u)</source> + <translation>強制進入安全模式(預設值: %u)</translation> + </message> + <message> + <source>Generate coins (default: %u)</source> + <translation>生產位元幣(預設值: %u)</translation> + </message> + <message> + <source>How many blocks to check at startup (default: %u, 0 = all)</source> + <translation>啓動時檢查的區塊數(預設值: %u, 指定 0 表示全部)</translation> + </message> + <message> + <source>Include IP addresses in debug output (default: %u)</source> + <translation>在除錯輸出內容中包含網際網路位址(預設值: %u)</translation> + </message> + <message> <source>Invalid -proxy address: '%s'</source> <translation>無效的 -proxy 位址: '%s'</translation> </message> <message> + <source>Limit size of signature cache to <n> entries (default: %u)</source> + <translation>限制簽章快取大小為 <n> 筆(預設值: %u)</translation> + </message> + <message> + <source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source> + <translation>在通訊埠 <port> 聽候 JSON-RPC 連線(預設值: %u, 或若為測試網路: %u)</translation> + </message> + <message> + <source>Listen for connections on <port> (default: %u or testnet: %u)</source> + <translation>在通訊埠 <port> 聽候連線(預設值: %u, 或若為測試網路: %u)</translation> + </message> + <message> + <source>Maintain at most <n> connections to peers (default: %u)</source> + <translation>維持與節點連線數的上限為 <n> 個(預設值: %u)</translation> + </message> + <message> + <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source> + <translation>每個連線的接收緩衝區大小上限為 <n>*1000 個位元組(預設值: %u)</translation> + </message> + <message> + <source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source> + <translation>每個連線的傳送緩衝區大小上限為 <n>*1000 個位元組(預設值: %u)</translation> + </message> + <message> + <source>Only accept block chain matching built-in checkpoints (default: %u)</source> + <translation>只接受與內建的檢查段點吻合的區塊鎖鏈(預設值: %u)</translation> + </message> + <message> + <source>Prepend debug output with timestamp (default: %u)</source> + <translation>在除錯輸出內容前附加時間(預設值: %u)</translation> + </message> + <message> + <source>Print block tree on startup (default: %u)</source> + <translation>啟動時輸出區塊樹(預設值: %u)</translation> + </message> + <message> + <source>Relay and mine data carrier transactions (default: %u)</source> + <translation>允許轉發和開採只帶資料的交易(預設值: %u)</translation> + </message> + <message> + <source>Relay non-P2SH multisig (default: %u)</source> + <translation>允許轉發非 P2SH 的多簽章交易(預設值: %u)</translation> + </message> + <message> + <source>Run a thread to flush wallet periodically (default: %u)</source> + <translation>啟用定期將變動寫入錢包檔的執行緒(預設值: %u)</translation> + </message> + <message> + <source>Server certificate file (default: %s)</source> + <translation>伺服器憑證檔(預設值: %s)</translation> + </message> + <message> + <source>Server private key (default: %s)</source> + <translation>伺服器密鑰檔(預設值: %s)</translation> + </message> + <message> + <source>Set key pool size to <n> (default: %u)</source> + <translation>設定密鑰池大小為 <n> (預設值: %u)</translation> + </message> + <message> + <source>Set minimum block size in bytes (default: %u)</source> + <translation>設定區塊大小下限為多少位元組(預設值: %u)</translation> + </message> + <message> + <source>Set the number of threads to service RPC calls (default: %d)</source> + <translation>設定處理 RPC 服務請求的執行緒數目(預設值: %d)</translation> + </message> + <message> + <source>Sets the DB_PRIVATE flag in the wallet db environment (default: %u)</source> + <translation>在錢包資料庫環境變數設定 DB_PRIVATE 旗標(預設值: %u)</translation> + </message> + <message> + <source>Specify configuration file (default: %s)</source> + <translation>指定設定檔(預設值: %s)</translation> + </message> + <message> + <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> + <translation>指定連線在幾毫秒後逾時 (最少值: 1, 預設值: %d)</translation> + </message> + <message> + <source>Specify pid file (default: %s)</source> + <translation>指定行程識別碼檔案(預設值: %s)</translation> + </message> + <message> + <source>Spend unconfirmed change when sending transactions (default: %u)</source> + <translation>傳送交易時可以花還沒確認的零錢(預設值: %u)</translation> + </message> + <message> + <source>Stop running after importing blocks from disk (default: %u)</source> + <translation>從磁碟匯入區塊資料後停止執行(預設值: %u)</translation> + </message> + <message> + <source>Threshold for disconnecting misbehaving peers (default: %u)</source> + <translation>與亂搞的節點斷線的臨界值 (預設: %u)</translation> + </message> + <message> <source>Unknown network specified in -onlynet: '%s'</source> <translation>在 -onlynet 指定了不明的網路別: '%s'</translation> </message> diff --git a/src/qt/paymentrequestplus.cpp b/src/qt/paymentrequestplus.cpp index 7aefffe24a..a40b5bbcd8 100644 --- a/src/qt/paymentrequestplus.cpp +++ b/src/qt/paymentrequestplus.cpp @@ -1,5 +1,5 @@ -// Copyright (c) 2011-2013 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2011-2014 The Bitcoin developers +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. // diff --git a/src/qt/paymentrequestplus.h b/src/qt/paymentrequestplus.h index 91c704c520..fbc3a09265 100644 --- a/src/qt/paymentrequestplus.h +++ b/src/qt/paymentrequestplus.h @@ -1,5 +1,5 @@ -// Copyright (c) 2011-2013 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2011-2014 The Bitcoin developers +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_QT_PAYMENTREQUESTPLUS_H diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 707de55290..bd3dab41a8 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -1,11 +1,10 @@ -// Copyright (c) 2011-2013 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2011-2014 The Bitcoin developers +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "paymentserver.h" #include "bitcoinunits.h" -#include "guiconstants.h" #include "guiutil.h" #include "optionsmodel.h" @@ -19,6 +18,7 @@ #include <openssl/x509.h> #include <openssl/x509_vfy.h> + #include <QApplication> #include <QByteArray> #include <QDataStream> @@ -46,14 +46,20 @@ #include <QUrlQuery> #endif -using namespace std; using namespace boost; +using namespace std; const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds const QString BITCOIN_IPC_PREFIX("bitcoin:"); -const char* BITCOIN_REQUEST_MIMETYPE = "application/bitcoin-paymentrequest"; -const char* BITCOIN_PAYMENTACK_MIMETYPE = "application/bitcoin-paymentack"; -const char* BITCOIN_PAYMENTACK_CONTENTTYPE = "application/bitcoin-payment"; +// BIP70 payment protocol messages +const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK"; +const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest"; +// BIP71 payment protocol media types +const char* BIP71_MIMETYPE_PAYMENT = "application/bitcoin-payment"; +const char* BIP71_MIMETYPE_PAYMENTACK = "application/bitcoin-paymentack"; +const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/bitcoin-paymentrequest"; +// BIP70 max payment request size in bytes (DoS protection) +const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE = 50000; X509_STORE* PaymentServer::certStore = NULL; void PaymentServer::freeCertStore() @@ -184,7 +190,7 @@ void PaymentServer::LoadRootCAs(X509_STORE* _store) // Warning: ipcSendCommandLine() is called early in init, // so don't use "emit message()", but "QMessageBox::"! // -bool PaymentServer::ipcParseCommandLine(int argc, char* argv[]) +void PaymentServer::ipcParseCommandLine(int argc, char* argv[]) { for (int i = 1; i < argc; i++) { @@ -192,6 +198,10 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[]) if (arg.startsWith("-")) continue; + // If the bitcoin: URI contains a payment request, we are not able to detect the + // network as that would require fetching and parsing the payment request. + // That means clicking such an URI which contains a testnet payment request + // will start a mainnet instance and throw a "wrong network" error. if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI { savedPaymentRequests.append(arg); @@ -216,7 +226,7 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[]) savedPaymentRequests.append(arg); PaymentRequestPlus request; - if (readPaymentRequest(arg, request)) + if (readPaymentRequestFromFile(arg, request)) { if (request.getDetails().network() == "main") { @@ -235,7 +245,6 @@ bool PaymentServer::ipcParseCommandLine(int argc, char* argv[]) qWarning() << "PaymentServer::ipcSendCommandLine : Payment request file does not exist: " << arg; } } - return true; } // @@ -254,6 +263,7 @@ bool PaymentServer::ipcSendCommandLine() if (!socket->waitForConnected(BITCOIN_IPC_CONNECT_TIMEOUT)) { delete socket; + socket = NULL; return false; } @@ -262,12 +272,14 @@ bool PaymentServer::ipcSendCommandLine() out.setVersion(QDataStream::Qt_4_0); out << r; out.device()->seek(0); + socket->write(block); socket->flush(); - socket->waitForBytesWritten(BITCOIN_IPC_CONNECT_TIMEOUT); socket->disconnectFromServer(); + delete socket; + socket = NULL; fResult = true; } @@ -440,7 +452,7 @@ void PaymentServer::handleURIOrFile(const QString& s) { PaymentRequestPlus request; SendCoinsRecipient recipient; - if (!readPaymentRequest(s, request)) + if (!readPaymentRequestFromFile(s, request)) { emit message(tr("Payment request file handling"), tr("Payment request file cannot be read! This can be caused by an invalid payment request file."), @@ -474,18 +486,25 @@ void PaymentServer::handleURIConnection() handleURIOrFile(msg); } -bool PaymentServer::readPaymentRequest(const QString& filename, PaymentRequestPlus& request) +// +// Warning: readPaymentRequestFromFile() is used in ipcSendCommandLine() +// so don't use "emit message()", but "QMessageBox::"! +// +bool PaymentServer::readPaymentRequestFromFile(const QString& filename, PaymentRequestPlus& request) { QFile f(filename); - if (!f.open(QIODevice::ReadOnly)) - { - qWarning() << "PaymentServer::readPaymentRequest : Failed to open " << filename; + if (!f.open(QIODevice::ReadOnly)) { + qWarning() << QString("PaymentServer::%1: Failed to open %2").arg(__func__).arg(filename); return false; } - if (f.size() > MAX_PAYMENT_REQUEST_SIZE) - { - qWarning() << "PaymentServer::readPaymentRequest : " << filename << " too large"; + // BIP70 DoS protection + if (f.size() > BIP70_MAX_PAYMENTREQUEST_SIZE) { + qWarning() << QString("PaymentServer::%1: Payment request %2 is too large (%3 bytes, allowed %4 bytes).") + .arg(__func__) + .arg(filename) + .arg(f.size()) + .arg(BIP70_MAX_PAYMENTREQUEST_SIZE); return false; } @@ -580,10 +599,10 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins void PaymentServer::fetchRequest(const QUrl& url) { QNetworkRequest netRequest; - netRequest.setAttribute(QNetworkRequest::User, "PaymentRequest"); + netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTREQUEST); netRequest.setUrl(url); netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str()); - netRequest.setRawHeader("Accept", BITCOIN_REQUEST_MIMETYPE); + netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTREQUEST); netManager->get(netRequest); } @@ -594,11 +613,11 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien return; QNetworkRequest netRequest; - netRequest.setAttribute(QNetworkRequest::User, "PaymentACK"); + netRequest.setAttribute(QNetworkRequest::User, BIP70_MESSAGE_PAYMENTACK); netRequest.setUrl(QString::fromStdString(details.payment_url())); - netRequest.setHeader(QNetworkRequest::ContentTypeHeader, BITCOIN_PAYMENTACK_CONTENTTYPE); + netRequest.setHeader(QNetworkRequest::ContentTypeHeader, BIP71_MIMETYPE_PAYMENT); netRequest.setRawHeader("User-Agent", CLIENT_NAME.c_str()); - netRequest.setRawHeader("Accept", BITCOIN_PAYMENTACK_MIMETYPE); + netRequest.setRawHeader("Accept", BIP71_MIMETYPE_PAYMENTACK); payments::Payment payment; payment.set_merchant_data(details.merchant_data()); @@ -616,7 +635,6 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien else { CPubKey newKey; if (wallet->GetKeyFromPool(newKey)) { - LOCK(wallet->cs_wallet); // SetAddressBook CKeyID keyID = newKey.GetID(); wallet->SetAddressBook(keyID, strAccount, "refund"); @@ -646,13 +664,26 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipien void PaymentServer::netRequestFinished(QNetworkReply* reply) { reply->deleteLater(); - if (reply->error() != QNetworkReply::NoError) - { + + // BIP70 DoS protection + if (reply->size() > BIP70_MAX_PAYMENTREQUEST_SIZE) { + QString msg = tr("Payment request %2 is too large (%3 bytes, allowed %4 bytes).") + .arg(__func__) + .arg(reply->request().url().toString()) + .arg(reply->size()) + .arg(BIP70_MAX_PAYMENTREQUEST_SIZE); + + qWarning() << QString("PaymentServer::%1:").arg(__func__) << msg; + emit message(tr("Payment request DoS protection"), msg, CClientUIInterface::MSG_ERROR); + return; + } + + if (reply->error() != QNetworkReply::NoError) { QString msg = tr("Error communicating with %1: %2") .arg(reply->request().url().toString()) .arg(reply->errorString()); - qWarning() << "PaymentServer::netRequestFinished : " << msg; + qWarning() << "PaymentServer::netRequestFinished: " << msg; emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR); return; } @@ -660,7 +691,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) QByteArray data = reply->readAll(); QString requestType = reply->request().attribute(QNetworkRequest::User).toString(); - if (requestType == "PaymentRequest") + if (requestType == BIP70_MESSAGE_PAYMENTREQUEST) { PaymentRequestPlus request; SendCoinsRecipient recipient; @@ -676,7 +707,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) return; } - else if (requestType == "PaymentACK") + else if (requestType == BIP70_MESSAGE_PAYMENTACK) { payments::PaymentACK paymentACK; if (!paymentACK.ParseFromArray(data.data(), data.size())) diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index 25b08cde49..e1305b9437 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_QT_PAYMENTSERVER_H @@ -40,6 +40,8 @@ class OptionsModel; +class CWallet; + QT_BEGIN_NAMESPACE class QApplication; class QByteArray; @@ -50,7 +52,8 @@ class QSslError; class QUrl; QT_END_NAMESPACE -class CWallet; +// BIP70 max payment request size in bytes (DoS protection) +extern const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE; class PaymentServer : public QObject { @@ -59,7 +62,7 @@ class PaymentServer : public QObject public: // Parse URIs on command line // Returns false on error - static bool ipcParseCommandLine(int argc, char *argv[]); + static void ipcParseCommandLine(int argc, char *argv[]); // Returns true if there were URIs on the command line // which were successfully sent to an already-running @@ -85,6 +88,9 @@ public: // OptionsModel is used for getting proxy settings and display unit void setOptionsModel(OptionsModel *optionsModel); + // This is now public, because we use it in paymentservertests.cpp + static bool readPaymentRequestFromFile(const QString& filename, PaymentRequestPlus& request); + signals: // Fired when a valid payment request is received void receivedPaymentRequest(SendCoinsRecipient); @@ -118,7 +124,6 @@ protected: bool eventFilter(QObject *object, QEvent *event); private: - static bool readPaymentRequest(const QString& filename, PaymentRequestPlus& request); bool processPaymentRequest(PaymentRequestPlus& request, SendCoinsRecipient& recipient); void fetchRequest(const QUrl& url); diff --git a/src/qt/test/paymentservertests.cpp b/src/qt/test/paymentservertests.cpp index 84cab01c50..8f49cb9464 100644 --- a/src/qt/test/paymentservertests.cpp +++ b/src/qt/test/paymentservertests.cpp @@ -7,6 +7,7 @@ #include "optionsmodel.h" #include "paymentrequestdata.h" +#include "random.h" #include "util.h" #include "utilstrencodings.h" @@ -108,6 +109,17 @@ void PaymentServerTests::paymentServerTests() r.paymentRequest.getMerchant(caStore, merchant); QCOMPARE(merchant, QString("")); + // Just get some random data big enough to trigger BIP70 DoS protection + unsigned char randData[BIP70_MAX_PAYMENTREQUEST_SIZE + 1]; + GetRandBytes(randData, sizeof(randData)); + // Write data to a temp file: + QTemporaryFile tempFile; + tempFile.open(); + tempFile.write((const char*)randData, sizeof(randData)); + tempFile.close(); + // Trigger BIP70 DoS protection + QCOMPARE(PaymentServer::readPaymentRequestFromFile(tempFile.fileName(), r.paymentRequest), false); + delete server; } diff --git a/src/rest.cpp b/src/rest.cpp index 6285784af5..6329b44c53 100644 --- a/src/rest.cpp +++ b/src/rest.cpp @@ -42,7 +42,7 @@ public: }; extern void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry); -extern Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex); +extern Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool txDetails = false); static RestErr RESTERR(enum HTTPStatusCode status, string message) { @@ -92,7 +92,8 @@ static bool ParseHashStr(const string& strReq, uint256& v) static bool rest_block(AcceptedConnection* conn, string& strReq, map<string, string>& mapHeaders, - bool fRun) + bool fRun, + bool showTxDetails) { vector<string> params; enum RetFormat rf = ParseDataFormat(params, strReq); @@ -131,7 +132,7 @@ static bool rest_block(AcceptedConnection* conn, } case RF_JSON: { - Object objBlock = blockToJSON(block, pblockindex); + Object objBlock = blockToJSON(block, pblockindex, showTxDetails); string strJSON = write_string(Value(objBlock), false) + "\n"; conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush; return true; @@ -146,6 +147,22 @@ static bool rest_block(AcceptedConnection* conn, return true; // continue to process further HTTP reqs on this cxn } +static bool rest_block_extended(AcceptedConnection* conn, + string& strReq, + map<string, string>& mapHeaders, + bool fRun) +{ + return rest_block(conn, strReq, mapHeaders, fRun, true); +} + +static bool rest_block_notxdetails(AcceptedConnection* conn, + string& strReq, + map<string, string>& mapHeaders, + bool fRun) +{ + return rest_block(conn, strReq, mapHeaders, fRun, false); +} + static bool rest_tx(AcceptedConnection* conn, string& strReq, map<string, string>& mapHeaders, @@ -205,7 +222,8 @@ static const struct { bool fRun); } uri_prefixes[] = { {"/rest/tx/", rest_tx}, - {"/rest/block/", rest_block}, + {"/rest/block/notxdetails/", rest_block_notxdetails}, + {"/rest/block/", rest_block_extended}, }; bool HTTPReq_REST(AcceptedConnection* conn, diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index 924f416904..66e86ebace 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -16,6 +16,7 @@ using namespace json_spirit; using namespace std; +extern void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry); void ScriptPubKeyToJSON(const CScript& scriptPubKey, Object& out, bool fIncludeHex); double GetDifficulty(const CBlockIndex* blockindex) @@ -50,7 +51,7 @@ double GetDifficulty(const CBlockIndex* blockindex) } -Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex) +Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool txDetails = false) { Object result; result.push_back(Pair("hash", block.GetHash().GetHex())); @@ -65,7 +66,16 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex) result.push_back(Pair("merkleroot", block.hashMerkleRoot.GetHex())); Array txs; BOOST_FOREACH(const CTransaction&tx, block.vtx) - txs.push_back(tx.GetHash().GetHex()); + { + if(txDetails) + { + Object objTx; + TxToJSON(tx, uint256(0), objTx); + txs.push_back(objTx); + } + else + txs.push_back(tx.GetHash().GetHex()); + } result.push_back(Pair("tx", txs)); result.push_back(Pair("time", block.GetBlockTime())); result.push_back(Pair("nonce", (uint64_t)block.nNonce)); diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index d2d14ad9f4..e43eee1551 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -12,6 +12,7 @@ #include "netbase.h" #include "timedata.h" #include "util.h" +#include "utilmoneystr.h" #include "wallet.h" #include "walletdb.h" @@ -309,6 +310,40 @@ Value getaddressesbyaccount(const Array& params, bool fHelp) return ret; } +void SendMoney(const CTxDestination &address, CAmount nValue, CWalletTx& wtxNew) +{ + // Check amount + if (nValue <= 0) + throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid amount"); + + if (nValue > pwalletMain->GetBalance()) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Insufficient funds"); + + string strError; + if (pwalletMain->IsLocked()) + { + strError = "Error: Wallet locked, unable to create transaction!"; + LogPrintf("SendMoney() : %s", strError); + throw JSONRPCError(RPC_WALLET_ERROR, strError); + } + + // Parse Bitcoin address + CScript scriptPubKey = GetScriptForDestination(address); + + // Create and send the transaction + CReserveKey reservekey(pwalletMain); + CAmount nFeeRequired; + if (!pwalletMain->CreateTransaction(scriptPubKey, nValue, wtxNew, reservekey, nFeeRequired, strError)) + { + if (nValue + nFeeRequired > pwalletMain->GetBalance()) + strError = strprintf("Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds!", FormatMoney(nFeeRequired)); + LogPrintf("SendMoney() : %s\n", strError); + throw JSONRPCError(RPC_WALLET_ERROR, strError); + } + if (!pwalletMain->CommitTransaction(wtxNew, reservekey)) + throw JSONRPCError(RPC_WALLET_ERROR, "Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."); +} + Value sendtoaddress(const Array& params, bool fHelp) { if (fHelp || params.size() < 2 || params.size() > 4) @@ -348,9 +383,7 @@ Value sendtoaddress(const Array& params, bool fHelp) EnsureWalletIsUnlocked(); - string strError = pwalletMain->SendMoney(address.Get(), nAmount, wtx); - if (strError != "") - throw JSONRPCError(RPC_WALLET_ERROR, strError); + SendMoney(address.Get(), nAmount, wtx); return wtx.GetHash().GetHex(); } @@ -791,10 +824,7 @@ Value sendfrom(const Array& params, bool fHelp) if (nAmount > nBalance) throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); - // Send - string strError = pwalletMain->SendMoney(address.Get(), nAmount, wtx); - if (strError != "") - throw JSONRPCError(RPC_WALLET_ERROR, strError); + SendMoney(address.Get(), nAmount, wtx); return wtx.GetHash().GetHex(); } diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index c454b52976..86d39b5c20 100644 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -1,12 +1,10 @@ [ -[" -Format is: [scriptPubKey, scriptSig, flags, ... comments] -It is evaluated as if there was a crediting coinbase transaction with two 0 -pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey, -followed by a spending transaction which spends this output as only input (and -correct prevout hash), using the given scriptSig. All nLockTimes are 0, all -nSequences are max. -"], +["Format is: [scriptPubKey, scriptSig, flags, ... comments]"], +["It is evaluated as if there was a crediting coinbase transaction with two 0"], +["pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,"], +["followed by a spending transaction which spends this output as only input (and"], +["correct prevout hash), using the given scriptSig. All nLockTimes are 0, all"], +["nSequences are max."], ["", "DEPTH", "P2SH,STRICTENC", "Test the test: we should have an empty stack after scriptSig evaluation"], [" ", "DEPTH", "P2SH,STRICTENC", "and multiple spaces should not change that."], @@ -496,11 +494,9 @@ nSequences are max. ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", "MINIMALDATA"], -[" -Order of CHECKMULTISIG evaluation tests, inverted by swapping the order of -pubkeys/signatures so they fail due to the STRICTENC rules on validly encoded -signatures and pubkeys. -"], +["Order of CHECKMULTISIG evaluation tests, inverted by swapping the order of"], +["pubkeys/signatures so they fail due to the STRICTENC rules on validly encoded"], +["signatures and pubkeys."], [ "0 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501", "2 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 0 2 CHECKMULTISIG NOT", diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index af0f6939c6..d3075de646 100644 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -1,12 +1,10 @@ [ -[" -Format is: [scriptPubKey, scriptSig, flags, ... comments] -It is evaluated as if there was a crediting coinbase transaction with two 0 -pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey, -followed by a spending transaction which spends this output as only input (and -correct prevout hash), using the given scriptSig. All nLockTimes are 0, all -nSequences are max. -"], +["Format is: [scriptPubKey, scriptSig, flags, ... comments]"], +["It is evaluated as if there was a crediting coinbase transaction with two 0"], +["pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,"], +["followed by a spending transaction which spends this output as only input (and"], +["correct prevout hash), using the given scriptSig. All nLockTimes are 0, all"], +["nSequences are max."], ["", "DEPTH 0 EQUAL", "P2SH,STRICTENC", "Test the test: we should have an empty stack after scriptSig evaluation"], [" ", "DEPTH 0 EQUAL", "P2SH,STRICTENC", "and multiple spaces should not change that."], @@ -664,16 +662,14 @@ nSequences are max. ["0 0 0x02 0x0000", "CHECKMULTISIGVERIFY 1", ""], ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", ""], -[" -CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and -pubkeys in a specific order, and will exit early if the number of signatures -left to check is greater than the number of keys left. As STRICTENC fails the -script when it reaches an invalidly encoded signature or pubkey, we can use it -to test the exact order in which signatures and pubkeys are evaluated by -distinguishing CHECKMULTISIG returning false on the stack and the script as a -whole failing. -See also the corresponding inverted versions of these tests in script_invalid.json -"], +["CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and"], +["pubkeys in a specific order, and will exit early if the number of signatures"], +["left to check is greater than the number of keys left. As STRICTENC fails the"], +["script when it reaches an invalidly encoded signature or pubkey, we can use it"], +["to test the exact order in which signatures and pubkeys are evaluated by"], +["distinguishing CHECKMULTISIG returning false on the stack and the script as a"], +["whole failing."], +["See also the corresponding inverted versions of these tests in script_invalid.json"], [ "0 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501", "2 0 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 2 CHECKMULTISIG NOT", diff --git a/src/wallet.cpp b/src/wallet.cpp index 27dbf61c2b..32a64daac0 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1587,46 +1587,6 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey) return true; } - - - -string CWallet::SendMoney(const CTxDestination &address, CAmount nValue, CWalletTx& wtxNew) -{ - // Check amount - if (nValue <= 0) - return _("Invalid amount"); - if (nValue > GetBalance()) - return _("Insufficient funds"); - - string strError; - if (IsLocked()) - { - strError = _("Error: Wallet locked, unable to create transaction!"); - LogPrintf("SendMoney() : %s", strError); - return strError; - } - - // Parse Bitcoin address - CScript scriptPubKey = GetScriptForDestination(address); - - // Create and send the transaction - CReserveKey reservekey(this); - CAmount nFeeRequired; - if (!CreateTransaction(scriptPubKey, nValue, wtxNew, reservekey, nFeeRequired, strError)) - { - if (nValue + nFeeRequired > GetBalance()) - strError = strprintf(_("Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds!"), FormatMoney(nFeeRequired)); - LogPrintf("SendMoney() : %s\n", strError); - return strError; - } - if (!CommitTransaction(wtxNew, reservekey)) - return _("Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."); - - return ""; -} - - - CAmount CWallet::GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarget, const CTxMemPool& pool) { // payTxFee is user-set "I want to pay this much" diff --git a/src/wallet.h b/src/wallet.h index 70d274c2d5..2dd2146e8c 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -288,7 +288,6 @@ public: bool CreateTransaction(CScript scriptPubKey, const CAmount& nValue, CWalletTx& wtxNew, CReserveKey& reservekey, CAmount& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL); bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey); - std::string SendMoney(const CTxDestination &address, CAmount nValue, CWalletTx& wtxNew); static CFeeRate minTxFee; static CAmount GetMinimumFee(unsigned int nTxBytes, unsigned int nConfirmTarget, const CTxMemPool& pool); |