diff options
202 files changed, 15769 insertions, 3494 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1d42dea843..53d6527d40 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -95,6 +95,8 @@ Anyone may participate in peer review which is expressed by comments in the pull - Concept ACK means "I agree in the general principle of this pull request"; - Nit refers to trivial, often non-blocking issues. +Reviewers should include the commit hash which they reviewed in their comments. + Project maintainers reserve the right to weigh the opinions of peer reviewers using common sense judgement and also may weight based on meritocracy: Those that have demonstrated a deeper commitment and understanding towards the project (over time) or have clear domain expertise may naturally have more weight, as one would expect in all walks of life. Where a patch set affects consensus critical code, the bar will be set much higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code. @@ -21,7 +21,7 @@ License ------- Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more -information or see http://opensource.org/licenses/MIT. +information or see https://opensource.org/licenses/MIT. Development Process ------------------- diff --git a/configure.ac b/configure.ac index 63a745393e..9161e2b2c0 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) -define(_CLIENT_VERSION_MINOR, 11) +define(_CLIENT_VERSION_MINOR, 12) define(_CLIENT_VERSION_REVISION, 99) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, false) diff --git a/contrib/debian/manpages/bitcoin-cli.1 b/contrib/debian/manpages/bitcoin-cli.1 index 154b458739..16c338dd3e 100644 --- a/contrib/debian/manpages/bitcoin-cli.1 +++ b/contrib/debian/manpages/bitcoin-cli.1 @@ -1,4 +1,4 @@ -.TH BITCOIN-CLI "1" "February 2015" "bitcoin-cli 0.10" +.TH BITCOIN-CLI "1" "February 2016" "bitcoin-cli 0.12" .SH NAME bitcoin-cli \- a remote procedure call client for Bitcoin Core. .SH SYNOPSIS @@ -11,31 +11,7 @@ This manual page documents the bitcoin-cli program. bitcoin-cli is an RPC client .SH OPTIONS .TP \fB\-?\fR -Show the help message. -.TP -\fB\-conf=\fR<file> -Specify configuration file (default: bitcoin.conf). -.TP -\fB\-datadir=\fR<dir> -Specify data directory. -.TP -\fB\-testnet\fR -Connect to a Bitcoin Core instance running in testnet mode. -.TP -\fB\-regtest\fR -Connect to a Bitcoin Core instance running in regtest mode (see documentation for -regtest on bitcoind). -.TP -\fB\-rpcuser=\fR<user> -Username for JSON\-RPC connections. -.TP -\fB\-rpcpassword=\fR<pw> -Password for JSON\-RPC connections. -.TP -\fB\-rpcport=\fR<port> -Listen for JSON\-RPC connections on <port> (default: 8332 or testnet: 18332). -.TP -\fB\-rpcconnect=\fR<ip> -Send commands to node running on <ip> (default: 127.0.0.1). +Show possible options. .SH "SEE ALSO" \fBbitcoind\fP, \fBbitcoin.conf\fP diff --git a/contrib/debian/manpages/bitcoin-qt.1 b/contrib/debian/manpages/bitcoin-qt.1 index 05eadc94cd..685a282080 100644 --- a/contrib/debian/manpages/bitcoin-qt.1 +++ b/contrib/debian/manpages/bitcoin-qt.1 @@ -1,4 +1,4 @@ -.TH BITCOIN-QT "1" "April 2013" "bitcoin-qt 1" +.TH BITCOIN-QT "1" "February 2016" "bitcoin-qt 0.12" .SH NAME bitcoin-qt \- peer-to-peer network based digital currency .SH DESCRIPTION @@ -8,184 +8,6 @@ bitcoin\-qt [command\-line options] .SH OPTIONS .TP \-? -This help message -.TP -\fB\-conf=\fR<file> -Specify configuration file (default: bitcoin.conf) -.TP -\fB\-pid=\fR<file> -Specify pid file (default: bitcoind.pid) -.TP -\fB\-gen\fR -Generate coins -.TP -\fB\-gen\fR=\fI0\fR -Don't generate coins -.TP -\fB\-datadir=\fR<dir> -Specify data directory -.TP -\fB\-dbcache=\fR<n> -Set database cache size in megabytes (default: 25) -.TP -\fB\-timeout=\fR<n> -Specify connection timeout in milliseconds (default: 5000) -.TP -\fB\-proxy=\fR<ip:port> -Connect through SOCKS5 proxy -.TP -\fB\-tor=\fR<ip:port> -Use proxy to reach tor hidden services (default: same as \fB\-proxy\fR) -.TP -\fB\-dns\fR -Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR -.TP -\fB\-port=\fR<port> -Listen for connections on <port> (default: 8333 or testnet: 18333) -.TP -\fB\-maxconnections=\fR<n> -Maintain at most <n> connections to peers (default: 125) -.TP -\fB\-addnode=\fR<ip> -Add a node to connect to and attempt to keep the connection open -.TP -\fB\-connect=\fR<ip> -Connect only to the specified node(s) -.TP -\fB\-seednode=\fR<ip> -Connect to a node to retrieve peer addresses, and disconnect -.TP -\fB\-externalip=\fR<ip> -Specify your own public address -.TP -\fB\-onlynet=\fR<net> -Only connect to nodes in network <net> (IPv4, IPv6 or Tor) -.TP -\fB\-discover\fR -Discover own IP address (default: 1 when listening and no \fB\-externalip\fR) -.TP -\fB\-checkpoints\fR -Only accept block chain matching built\-in checkpoints (default: 1) -.TP -\fB\-listen\fR -Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR) -.TP -\fB\-bind=\fR<addr> -Bind to given address and always listen on it. Use [host]:port notation for IPv6 -.TP -\fB\-dnsseed\fR -Find peers using DNS lookup (default: 1 unless \fB\-connect\fR) -.TP -\fB\-banscore=\fR<n> -Threshold for disconnecting misbehaving peers (default: 100) -.TP -\fB\-bantime=\fR<n> -Number of seconds to keep misbehaving peers from reconnecting (default: 86400) -.TP -\fB\-maxreceivebuffer=\fR<n> -Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000) -.TP -\fB\-maxsendbuffer=\fR<n> -Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000) -.TP -\fB\-upnp\fR -Use UPnP to map the listening port (default: 1 when listening) -.TP -\fB\-paytxfee=\fR<amt> -Fee per KB to add to transactions you send -.TP -\fB\-server\fR -Accept command line and JSON\-RPC commands -.TP -\fB\-testnet\fR -Use the test network -.TP -\fB\-debug\fR -Output extra debugging information. Implies all other \fB\-debug\fR* options -.TP -\fB\-debugnet\fR -Output extra network debugging information -.TP -\fB\-logtimestamps\fR -Prepend debug output with timestamp -.TP -\fB\-shrinkdebugfile\fR -Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR) -.TP -\fB\-printtoconsole\fR -Send trace/debug info to console instead of debug.log file -.TP -\fB\-rpcuser=\fR<user> -Username for JSON\-RPC connections -.TP -\fB\-rpcpassword=\fR<pw> -Password for JSON\-RPC connections -.TP -\fB\-rpcport=\fR<port> -Listen for JSON\-RPC connections on <port> (default: 8332 or testnet: 18332) -.TP -\fB\-rpcallowip=\fR<ip> -Allow JSON\-RPC connections from specified IP address -.TP -\fB\-rpcthreads=\fR<n> -Set the number of threads to service RPC calls (default: 4) -.TP -\fB\-blocknotify=\fR<cmd> -Execute command when the best block changes (%s in cmd is replaced by block hash) -.TP -\fB\-walletnotify=\fR<cmd> -Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) -.TP -\fB\-alertnotify=\fR<cmd> -Execute command when a relevant alert is received (%s in cmd is replaced by message) -.TP -\fB\-upgradewallet\fR -Upgrade wallet to latest format -.TP -\fB\-keypool=\fR<n> -Set key pool size to <n> (default: 100) -.TP -\fB\-rescan\fR -Rescan the block chain for missing wallet transactions -.TP -\fB\-salvagewallet\fR -Attempt to recover private keys from a corrupt wallet.dat -.TP -\fB\-checkblocks=\fR<n> -How many blocks to check at startup (default: 288, 0 = all) -.TP -\fB\-checklevel=\fR<n> -How thorough the block verification is (0\-4, default: 3) -.TP -\fB\-txindex\fR -Maintain a full transaction index (default: 0) -.TP -\fB\-loadblock=\fR<file> -Imports blocks from external blk000??.dat file -.TP -\fB\-reindex\fR -Rebuild block chain index from current blk000??.dat files -.TP -\fB\-par=\fR<n> -Set the number of script verification threads (1\-16, 0=auto, default: 0) -.SS "Block creation options:" -.TP -\fB\-blockminsize=\fR<n> -Set minimum block size in bytes (default: 0) -.TP -\fB\-blockmaxsize=\fR<n> -Set maximum block size in bytes (default: 250000) -.HP -\fB\-blockprioritysize=\fR<n> Set maximum size of high\-priority/low\-fee transactions in bytes (default: 27000) -.PP -Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) -.SS "UI options:" -.TP -\fB\-lang=\fR<lang> -Set language, for example "de_DE" (default: system locale) -.TP -\fB\-min\fR -Start minimized -.TP -\fB\-splash\fR -Show splash screen on startup (default: 1) +List options. +.SH "SEE ALSO" +bitcoind(1) diff --git a/contrib/debian/manpages/bitcoin.conf.5 b/contrib/debian/manpages/bitcoin.conf.5 index 0cf4d991e3..839dc26c1a 100644 --- a/contrib/debian/manpages/bitcoin.conf.5 +++ b/contrib/debian/manpages/bitcoin.conf.5 @@ -1,75 +1,15 @@ -.TH BITCOIN.CONF "5" "January 2011" "bitcoin.conf 3.19" +.TH BITCOIN.CONF "5" "February 2016" "bitcoin.conf 0.12" .SH NAME bitcoin.conf \- bitcoin configuration file .SH SYNOPSIS All command-line options (except for '\-conf') may be specified in a configuration file, and all configuration file options may also be specified on the command line. Command-line options override values set in the configuration file. .TP -The configuration file is a list of 'setting=value' pairs, one per line, with optional comments starting with the '#' character. +The configuration file is a list of 'setting=value' pairs, one per line, with optional comments starting with the '#' character. Please refer to bitcoind(1) for a up to date list of valid options. .TP The configuration file is not automatically created; you can create it using your favorite plain-text editor. By default, bitcoind(1) will look for a file named bitcoin.conf(5) in the bitcoin data directory, but both the data directory and the configuration file path may be changed using the '\-datadir' and '\-conf' command-line arguments. .SH LOCATION bitcoin.conf should be located in $HOME/.bitcoin -.SH NETWORK-RELATED SETTINGS -.TP -.TP -\fBtestnet=\fR[\fI'1'\fR|\fI'0'\fR] -Enable or disable run on the test network instead of the real *bitcoin* network. -.TP -\fBproxy=\fR\fI'127.0.0.1:9050'\fR -Connect via a socks4 proxy. -.TP -\fBaddnode=\fR\fI'10.0.0.2:8333'\fR -Use as many *addnode=* settings as you like to connect to specific peers. -.TP -\fBconnect=\fR\fI'10.0.0.1:8333'\fR -Use as many *connect=* settings as you like to connect ONLY to specific peers. -.TP -\fRmaxconnections=\fR\fI'value'\fR -Maximum number of inbound+outbound connections. -.SH JSON-RPC OPTIONS -.TP -\fBserver=\fR[\fI'1'\fR|\fI'0'\fR] -Tells *bitcoin* to accept or not accept JSON-RPC commands. -.TP -\fBrpcuser=\fR\fI'username'\fR -You must set *rpcuser* to secure the JSON-RPC api. -.TP -\fBrpcpassword=\fR\fI'password'\fR -You must set *rpcpassword* to secure the JSON-RPC api. -.TP -\fBrpcallowip=\fR\fI'192.168.1.*'\fR -By default, only RPC connections from localhost are allowed. Specify as many *rpcallowip=* settings as you like to allow connections from other hosts (and you may use * as a wildcard character). -.TP -\fBrpcport=\fR\fI'8332'\fR -Listen for RPC connections on this TCP port. -.TP -\fBrpcconnect=\fR\fI'127.0.0.1'\fR -You can use *bitcoin* or *bitcoind(1)* to send commands to *bitcoin*/*bitcoind(1)* running on another host using this option. -.TP -.SH MISCELLANEOUS OPTIONS -.TP -\fBgen=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable attempt to generate bitcoins. -.TP -\fB4way=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable use SSE instructions to try to generate bitcoins faster. -.TP -\fBkeypool=\fR\fI'100'\fR -Pre-generate this many public/private key pairs, so wallet backups will be valid for both prior transactions and several dozen future transactions. -.TP -\fBpaytxfee=\fR\fI'0.00'\fR -Pay an optional transaction fee every time you send bitcoins. Transactions with fees are more likely than free transactions to be included in generated blocks, so may be validated sooner. -.TP -\fBallowreceivebyip=\fR\fI'1'\fR -Allow direct connections for the 'pay via IP address' feature. -.TP -.SH USER INTERFACE OPTIONS -.TP -\fBmin=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable start bitcoind minimized. -.TP -\fBminimizetotray=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable minimize to the system tray. + .SH "SEE ALSO" bitcoind(1) .SH AUTHOR diff --git a/contrib/debian/manpages/bitcoind.1 b/contrib/debian/manpages/bitcoind.1 index 5b0f2921aa..5c3e52f441 100644 --- a/contrib/debian/manpages/bitcoind.1 +++ b/contrib/debian/manpages/bitcoind.1 @@ -1,4 +1,4 @@ -.TH BITCOIND "1" "January 2011" "bitcoind 3.19" +.TH BITCOIND "1" "February 2016" "bitcoind 0.12" .SH NAME bitcoind \- peer-to-peer network based digital currency .SH SYNOPSIS @@ -6,185 +6,20 @@ bitcoin [options] <command> [params] .TP bitcoin [options] help <command> \- Get help for a command .SH DESCRIPTION -This manual page documents the bitcoind program. Bitcoin is a peer-to-peer digital currency. Peer-to-peer (P2P) means that there is no central authority to issue new money or keep track of transactions. Instead, these tasks are managed collectively by the nodes of the network. Advantages: - -Bitcoins can be sent easily through the Internet, without having to trust middlemen. Transactions are designed to be irreversible. Be safe from instability caused by fractional reserve banking and central banks. The limited inflation of the Bitcoin system’s money supply is distributed evenly (by CPU power) throughout the network, not monopolized by banks. +This manual page documents the bitcoind program. Bitcoin is an experimental new digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin Core is the name of open source software which enables the use of this currency. .SH OPTIONS .TP -\fB\-conf=\fR<file> -Specify configuration file (default: bitcoin.conf) -.TP -\fB\-gen\fR -Generate coins -.TP -\fB\-gen\fR=\fI0\fR -Don't generate coins -.TP -\fB\-min\fR -Start minimized -.TP -\fB\-datadir=\fR<dir> -Specify data directory -.TP -\fB\-proxy=\fR<ip:port> -Connect through SOCKS5 proxy -.TP -\fB\-addnode=\fR<ip> -Add a node to connect to -.TP -\fB\-connect=\fR<ip> -Connect only to the specified node -.TP -\fB\-paytxfee=\fR<amt> -Fee per KB to add to transactions you send -.TP -\fB\-server\fR -Accept command line and JSON\-RPC commands -.TP -\fB\-daemon\fR -Run in the background as a daemon and accept commands -.TP -\fB\-testnet\fR -Use the test network -.TP -\fB\-rpcuser=\fR<user> -Username for JSON\-RPC connections -.TP -\fB\-rpcpassword=\fR<pw> -Password for JSON\-RPC connections -.TP -\fB\-rpcport=\fR<port> -Listen for JSON\-RPC connections on <port> -.TP -\fB\-rpcallowip=\fR<ip> -Allow JSON\-RPC connections from specified IP address -.TP -\fB\-rpcconnect=\fR<ip> -Send commands to node running on <ip> -.TP \-? -This help message +List of possible options. .SH COMMANDS .TP -\fBbackupwallet 'destination'\fR -Safely copies *wallet.dat* to 'destination', which can be a directory or a path with filename. -.TP -\fBgetaccount 'bitcoinaddress'\fR -DEPRECATED. Returns the account associated with the given address. -.TP -\fBsetaccount 'bitcoinaddress' ['account']\fR -DEPRECATED. Sets the ['account'] associated with the given address. ['account'] may be omitted to remove an address from ['account']. -.TP -\fBgetaccountaddress 'account'\fR -DEPRECATED. Returns a new bitcoin address for 'account'. -.TP -\fBgetaddressesbyaccount 'account'\fR -DEPRECATED. Returns the list of addresses associated with the given 'account'. -.TP -\fBgetbalance 'account'\fR -Returns the server's available balance, or the balance for 'account' (accounts are deprecated). -.TP -\fBgetblockcount\fR -Returns the number of blocks in the longest block chain. -.TP -\fBgetblocknumber\fR -Returns the block number of the latest block in the longest block chain. -.TP -\fBgetconnectioncount\fR -Returns the number of connections to other nodes. -.TP -\fBgetdifficulty\fR -Returns the proof-of-work difficulty as a multiple of the minimum difficulty. -.TP -\fBgetgenerate\fR -Returns boolean true if server is trying to generate bitcoins, false otherwise. -.TP -\fBsetgenerate 'generate' ['genproclimit']\fR -Generation is limited to ['genproclimit'] processors, \-1 is unlimited. -.TP -\fBgethashespersec\fR -Returns a recent hashes per second performance measurement while generating. -.TP -\fBgetinfo\fR -Returns an object containing server information. -.TP -\fBgetnewaddress 'account'\fR -Returns a new bitcoin address for receiving payments. If 'account' is specified (deprecated), it is added to the address book so payments received with the address will be credited to 'account'. -.TP -\fBgetreceivedbyaccount 'account' ['minconf=1']\fR -DEPRECATED. Returns the total amount received by addresses associated with 'account' in transactions with at least ['minconf'] confirmations. -.TP -\fBgetreceivedbyaddress 'bitcoinaddress' ['minconf=1']\fR -Returns the total amount received by 'bitcoinaddress' in transactions with at least ['minconf'] confirmations. -.TP -\fBgettransaction 'txid'\fR -Returns information about a specific transaction, given hexadecimal transaction ID. -.TP -\fBgetwork 'data'\fR -If 'data' is specified, tries to solve the block and returns true if it was successful. If 'data' is not specified, returns formatted hash 'data' to work on: +\fBhelp\fR +List commands. - "midstate" : precomputed hash state after hashing the first half of the data. - "data" : block data. - "hash1" : formatted hash buffer for second hash. - "target" : little endian hash target. .TP \fBhelp 'command'\fR -List commands, or get help for a command. -.TP -\fBlistaccounts ['minconf=1']\fR -DEPRECATED. List accounts and their current balances. - *note: requires bitcoin 0.3.20 or later. -.TP -\fBlistreceivedbyaccount ['minconf=1'] ['includeempty=false']\fR -['minconf'] is the minimum number of confirmations before payments are included. ['includeempty'] whether to include addresses that haven't received any payments. Returns an array of objects containing: - - "account" : DEPRECATED. the account of the receiving address. - "amount" : total amount received by the address. - "confirmations" : number of confirmations of the most recent transaction included. -.TP -\fBlistreceivedbyaddress ['minconf=1'] ['includeempty=false']\fR -['minconf'] is the minimum number of confirmations before payments are included. ['includeempty'] whether to include addresses that haven't received any payments. Returns an array of objects containing: - - "address" : receiving address. - "account" : DEPRECATED. the account of the receiving address. - "amount" : total amount received by the address. - "confirmations" : number of confirmations of the most recent transaction included. -.TP -\fBlisttransactions 'account' ['count=10']\fR -Returns a list of the last ['count'] transactions for 'account' \- for all accounts if 'account' is not specified or is "*". Each entry in the list may contain: - - "category" : will be generate, send, receive, or move. - "amount" : amount of transaction. - "fee" : Fee (if any) paid (only for send transactions). - "confirmations" : number of confirmations (only for generate/send/receive). - "txid" : transaction ID (only for generate/send/receive). - "otheraccount" : account funds were moved to or from (only for move). - "message" : message associated with transaction (only for send). - "to" : message-to associated with transaction (only for send). - - *note: requires bitcoin 0.3.20 or later. -.TP -\fBmove <'fromaccount'> <'toaccount'> <'amount'> ['minconf=1'] ['comment']\fR -DEPRECATED. Moves funds between accounts. -.TP -\fBsendfrom* <'account'> <'bitcoinaddress'> <'amount'> ['minconf=1'] ['comment'] ['comment-to']\fR -DEPRECATED. Sends amount from account's balance to 'bitcoinaddress'. This method will fail if there is less than amount bitcoins with ['minconf'] confirmations in the account's balance (unless account is the empty-string-named default account; it behaves like the *sendtoaddress* method). Returns transaction ID on success. -.TP -\fBsendtoaddress 'bitcoinaddress' 'amount' ['comment'] ['comment-to']\fR -Sends amount from the server's available balance to 'bitcoinaddress'. amount is a real and is rounded to the nearest 0.01. Returns transaction id on success. -.TP -\fBstop\fR -Stops the bitcoin server. -.TP -\fBvalidateaddress 'bitcoinaddress'\fR -Checks that 'bitcoinaddress' looks like a proper bitcoin address. Returns an object containing: - - "isvalid" : true or false. - "ismine" : true if the address is in the server's wallet. - "address" : bitcoinaddress. - - *note: ismine and address are only returned if the address is valid. +Get help for a command. .SH "SEE ALSO" bitcoin.conf(5) diff --git a/contrib/devtools/README.md b/contrib/devtools/README.md index 2e70c5adcc..a58b8733a6 100644 --- a/contrib/devtools/README.md +++ b/contrib/devtools/README.md @@ -7,6 +7,37 @@ clang-format.py A script to format cpp source code according to [.clang-format](../../src/.clang-format). This should only be applied to new files or files which are currently not actively developed on. Also, git subtrees are not subject to formatting. +fix-copyright-headers.py +======================== + +Every year newly updated files need to have its copyright headers updated to reflect the current year. +If you run this script from src/ it will automatically update the year on the copyright header for all +.cpp and .h files if these have a git commit from the current year. + +For example a file changed in 2014 (with 2014 being the current year): + +```// Copyright (c) 2009-2013 The Bitcoin Core developers``` + +would be changed to: + +```// Copyright (c) 2009-2014 The Bitcoin Core developers``` + +git-subtree-check.sh +==================== + +Run this script from the root of the repository to verify that a subtree matches the contents of +the commit it claims to have been updated to. + +To use, make sure that you have fetched the upstream repository branch in which the subtree is +maintained: +* for `src/secp256k1`: https://github.com/bitcoin/secp256k1.git (branch master) +* for `src/leveldb`: https://github.com/bitcoin/leveldb.git (branch bitcoin-fork) +* for `src/univalue`: https://github.com/bitcoin/univalue.git (branch master) + +Usage: `git-subtree-check.sh DIR COMMIT` + +`COMMIT` may be omitted, in which case `HEAD` is used. + github-merge.sh =============== @@ -41,21 +72,6 @@ Configuring the github-merge tool for the bitcoin repository is done in the foll git config githubmerge.testcmd "make -j4 check" (adapt to whatever you want to use for testing) git config --global user.signingkey mykeyid (if you want to GPG sign) -fix-copyright-headers.py -======================== - -Every year newly updated files need to have its copyright headers updated to reflect the current year. -If you run this script from src/ it will automatically update the year on the copyright header for all -.cpp and .h files if these have a git commit from the current year. - -For example a file changed in 2014 (with 2014 being the current year): - -```// Copyright (c) 2009-2013 The Bitcoin Core developers``` - -would be changed to: - -```// Copyright (c) 2009-2014 The Bitcoin Core developers``` - optimize-pngs.py ================ @@ -98,18 +114,3 @@ It will do the following automatically: - add missing translations to the build system (TODO) See doc/translation-process.md for more information. - -git-subtree-check.sh -==================== - -Run this script from the root of the repository to verify that a subtree matches the contents of -the commit it claims to have been updated to. - -To use, make sure that you have fetched the upstream repository branch in which the subtree is -maintained: -* for src/secp256k1: https://github.com/bitcoin/secp256k1.git (branch master) -* for sec/leveldb: https://github.com/bitcoin/leveldb.git (branch bitcoin-fork) - -Usage: git-subtree-check.sh DIR COMMIT - -COMMIT may be omitted, in which case HEAD is used. diff --git a/contrib/devtools/update-translations.py b/contrib/devtools/update-translations.py index f955e4a1f2..ea209eec7e 100755 --- a/contrib/devtools/update-translations.py +++ b/contrib/devtools/update-translations.py @@ -29,6 +29,8 @@ TX = 'tx' SOURCE_LANG = 'bitcoin_en.ts' # Directory with locale files LOCALE_DIR = 'src/qt/locale' +# Minimum number of messages for translation to be considered at all +MIN_NUM_MESSAGES = 10 def check_at_repository_root(): if not os.path.exists('.git'): @@ -37,7 +39,7 @@ def check_at_repository_root(): exit(1) def fetch_all_translations(): - if subprocess.call([TX, 'pull', '-f']): + if subprocess.call([TX, 'pull', '-f', '-a']): print('Error while fetching translations', file=sys.stderr) exit(1) @@ -166,6 +168,15 @@ def postprocess_translations(reduce_diff_hacks=False): if translation_node.get('type') == 'unfinished': context.remove(message) + # check if document is (virtually) empty, and remove it if so + num_messages = 0 + for context in root.findall('context'): + for message in context.findall('message'): + num_messages += 1 + if num_messages < MIN_NUM_MESSAGES: + print('Removing %s, as it contains only %i messages' % (filepath, num_messages)) + continue + # write fixed-up tree # if diff reduction requested, replace some XML to 'sanitize' to qt formatting if reduce_diff_hacks: diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 0c3c439dd9..ee852ff138 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "bitcoin-linux-0.12" +name: "bitcoin-linux-0.13" enable_cache: true suites: - "trusty" @@ -15,7 +15,7 @@ packages: - "faketime" - "bsdmainutils" - "binutils-gold" -reference_datetime: "2015-06-01 00:00:00" +reference_datetime: "2016-01-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" diff --git a/contrib/gitian-descriptors/gitian-osx-signer.yml b/contrib/gitian-descriptors/gitian-osx-signer.yml index aa9494b7ed..5b52c492fd 100644 --- a/contrib/gitian-descriptors/gitian-osx-signer.yml +++ b/contrib/gitian-descriptors/gitian-osx-signer.yml @@ -7,7 +7,7 @@ architectures: packages: - "libc6:i386" - "faketime" -reference_datetime: "2015-06-01 00:00:00" +reference_datetime: "2016-01-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin-detached-sigs.git" "dir": "signature" diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 9ac774c8a0..7e40803a07 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -1,5 +1,5 @@ --- -name: "bitcoin-osx-0.12" +name: "bitcoin-osx-0.13" enable_cache: true suites: - "trusty" @@ -18,7 +18,7 @@ packages: - "libcap-dev" - "libz-dev" - "libbz2-dev" -reference_datetime: "2015-06-01 00:00:00" +reference_datetime: "2016-01-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" diff --git a/contrib/gitian-descriptors/gitian-win-signer.yml b/contrib/gitian-descriptors/gitian-win-signer.yml index a29d7ab472..27c4f01eb4 100644 --- a/contrib/gitian-descriptors/gitian-win-signer.yml +++ b/contrib/gitian-descriptors/gitian-win-signer.yml @@ -7,7 +7,7 @@ architectures: packages: - "libssl-dev" - "autoconf" -reference_datetime: "2015-06-01 00:00:00" +reference_datetime: "2016-01-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin-detached-sigs.git" "dir": "signature" diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 6bb482d45f..c8fbe32eee 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -1,5 +1,5 @@ --- -name: "bitcoin-win-0.12" +name: "bitcoin-win-0.13" enable_cache: true suites: - "trusty" @@ -18,7 +18,7 @@ packages: - "g++-mingw-w64" - "nsis" - "zip" -reference_datetime: "2015-06-01 00:00:00" +reference_datetime: "2016-01-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" diff --git a/contrib/seeds/generate-seeds.py b/contrib/seeds/generate-seeds.py index 167c219c6e..a3d0352187 100755 --- a/contrib/seeds/generate-seeds.py +++ b/contrib/seeds/generate-seeds.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (c) 2014 Wladmir J. van der Laan +# Copyright (c) 2014 Wladimir J. van der Laan # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. ''' diff --git a/depends/config.guess b/depends/config.guess index b3f905370a..fba6e87a0f 100755 --- a/depends/config.guess +++ b/depends/config.guess @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2015-10-21' +timestamp='2015-11-19' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -1393,6 +1393,9 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 <<EOF diff --git a/depends/config.sub b/depends/config.sub index 1acc966a33..ea8747d30f 100755 --- a/depends/config.sub +++ b/depends/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2015-08-20' +timestamp='2015-11-22' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -53,8 +53,7 @@ timestamp='2015-08-20' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -1399,7 +1398,8 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index d27a701344..215c694b6b 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -1,8 +1,8 @@ package=boost -$(package)_version=1_58_0 -$(package)_download_path=http://sourceforge.net/projects/boost/files/boost/1.58.0 +$(package)_version=1_59_0 +$(package)_download_path=http://sourceforge.net/projects/boost/files/boost/1.59.0 $(package)_file_name=$(package)_$($(package)_version).tar.bz2 -$(package)_sha256_hash=fdfc204fc33ec79c99b9a74944c3e54bd78be4f7f15e260c0e2700a36dc7d3e5 +$(package)_sha256_hash=727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca define $(package)_set_vars $(package)_config_opts_release=variant=release diff --git a/depends/packages/miniupnpc.mk b/depends/packages/miniupnpc.mk index 77bae10c79..3d5a6df974 100644 --- a/depends/packages/miniupnpc.mk +++ b/depends/packages/miniupnpc.mk @@ -1,12 +1,12 @@ package=miniupnpc -$(package)_version=1.9.20151008 +$(package)_version=1.9.20151026 $(package)_download_path=http://miniupnp.free.fr/files $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=e444ac3b587ce82709c4d0cfca1fe71f44f9fc433e9f946b12b9e1bfe667a633 +$(package)_sha256_hash=f3cf9a5a31588a917d4d9237e5bc50f84d00c5aa48e27ed50d9b88dfa6a25d47 define $(package)_set_vars $(package)_build_opts=CC="$($(package)_cc)" -$(package)_build_opts_darwin=OS=Darwin +$(package)_build_opts_darwin=OS=Darwin LIBTOOL="$($(package)_libtool)" $(package)_build_opts_mingw32=-f Makefile.mingw $(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$($(package)_ar)" endef diff --git a/depends/packages/native_ccache.mk b/depends/packages/native_ccache.mk index 317674f795..cc76f9a794 100644 --- a/depends/packages/native_ccache.mk +++ b/depends/packages/native_ccache.mk @@ -1,8 +1,8 @@ package=native_ccache -$(package)_version=3.2.3 +$(package)_version=3.2.4 $(package)_download_path=http://samba.org/ftp/ccache $(package)_file_name=ccache-$($(package)_version).tar.bz2 -$(package)_sha256_hash=b07165d4949d107d17f2f84b90b52953617bf1abbf249d5cc20636f43337c98c +$(package)_sha256_hash=ffeb967edb549e67da0bd5f44f729a2022de9fdde65dfd80d2a7204d7f75332e define $(package)_set_vars $(package)_config_opts= diff --git a/depends/packages/zeromq.mk b/depends/packages/zeromq.mk index 24e8e5f1c9..7b866e9c0f 100644 --- a/depends/packages/zeromq.mk +++ b/depends/packages/zeromq.mk @@ -1,8 +1,8 @@ package=zeromq -$(package)_version=4.0.4 +$(package)_version=4.0.7 $(package)_download_path=http://download.zeromq.org $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=1ef71d46e94f33e27dd5a1661ed626cd39be4d2d6967792a275040e34457d399 +$(package)_sha256_hash=e00b2967e074990d0538361cc79084a0a92892df2c6e7585da34e4c61ee47b03 define $(package)_set_vars $(package)_config_opts=--without-documentation --disable-shared diff --git a/doc/Doxyfile b/doc/Doxyfile index 925a33ee89..428fba98e1 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Bitcoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.11.99 +PROJECT_NUMBER = 0.12.99 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer diff --git a/doc/README.md b/doc/README.md index f6df28a89b..c0f9ee5220 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin Core 0.11.99 +Bitcoin Core 0.12.99 ===================== Setup diff --git a/doc/README_windows.txt b/doc/README_windows.txt index e4fd9bdf90..2d1c4503c9 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core 0.11.99
+Bitcoin Core 0.12.99
=====================
Intro
diff --git a/doc/build-osx.md b/doc/build-osx.md index 02498e5c4b..c3cb1b7891 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -5,7 +5,7 @@ This guide will show you how to build bitcoind (headless client) for OS X. Notes ----- -* Tested on OS X 10.7 through 10.10 on 64-bit Intel processors only. +* Tested on OS X 10.7 through 10.11 on 64-bit Intel processors only. * All of the commands should be executed in a Terminal application. The built-in one is located in `/Applications/Utilities`. @@ -24,7 +24,7 @@ be re-done or updated every time Xcode is updated. You will also need to install [Homebrew](http://brew.sh) in order to install library dependencies. -The installation of the actual dependencies is covered in the Instructions +The installation of the actual dependencies is covered in the instructions sections below. Instructions: Homebrew @@ -36,17 +36,19 @@ Instructions: Homebrew NOTE: Building with Qt4 is still supported, however, could result in a broken UI. As such, building with Qt5 is recommended. -### Building `bitcoind` +### Building `bitcoin` 1. Clone the GitHub tree to get the source code and go into the directory. git clone https://github.com/bitcoin/bitcoin.git cd bitcoin -2. Build bitcoind: +2. Build bitcoin-core: + This will configure and build the headless bitcoin binaries as well as the gui (if Qt is found). + You can disable the gui build by passing `--without-gui` to configure. ./autogen.sh - ./configure --with-gui=qt5 + ./configure make 3. It is also a good idea to build and run the unit tests: @@ -60,10 +62,10 @@ NOTE: Building with Qt4 is still supported, however, could result in a broken UI Use Qt Creator as IDE ------------------------ You can use Qt Creator as IDE, for debugging and for manipulating forms, etc. -Download Qt Creator from http://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process). +Download Qt Creator from https://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process). 1. Make sure you installed everything through Homebrew mentioned above -2. Do a proper ./configure --with-gui=qt5 --enable-debug +2. Do a proper ./configure --enable-debug 3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project 4. Enter "bitcoin-qt" as project name, enter src/qt as location 5. Leave the file selection as it is @@ -79,7 +81,7 @@ You can ignore this section if you are building `bitcoind` for your own use. bitcoind/bitcoin-cli binaries are not included in the Bitcoin-Qt.app bundle. -If you are building `bitcoind` or `Bitcoin-Qt` for others, your build machine should be set up +If you are building `bitcoind` or `Bitcoin Core` for others, your build machine should be set up as follows for maximum compatibility: All dependencies should be compiled with these flags: @@ -88,7 +90,7 @@ All dependencies should be compiled with these flags: -arch x86_64 -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -Once dependencies are compiled, see [doc/release-process.md](release-process.md) for how the Bitcoin-Qt.app +Once dependencies are compiled, see [doc/release-process.md](release-process.md) for how the Bitcoin Core bundle is packaged and signed to create the .dmg disk image that is distributed. Running diff --git a/doc/build-unix.md b/doc/build-unix.md index 159a140608..31bbab7f0f 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -61,7 +61,7 @@ Dependency Build Instructions: Ubuntu & Debian ---------------------------------------------- Build requirements: - sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev libevent-dev bsdmainutils + sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the individual boost development packages, so the following can be used to only diff --git a/doc/release-notes.md b/doc/release-notes.md index 96c830d177..801b684e6b 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,236 +4,11 @@ release-notes at release time) Notable changes =============== -SSL support for RPC dropped ----------------------------- +Example item +---------------- -SSL support for RPC, previously enabled by the option `rpcssl` has been dropped -from both the client and the server. This was done in preparation for removing -the dependency on OpenSSL for the daemon completely. -Trying to use `rpcssl` will result in an error: - - Error: SSL mode for RPC (-rpcssl) is no longer supported. - -If you are one of the few people that relies on this feature, a flexible -migration path is to use `stunnel`. This is an utility that can tunnel -arbitrary TCP connections inside SSL. On e.g. Ubuntu it can be installed with: - - sudo apt-get install stunnel4 - -Then, to tunnel a SSL connection on 28332 to a RPC server bound on localhost on port 18332 do: - - stunnel -d 28332 -r 127.0.0.1:18332 -p stunnel.pem -P '' - -It can also be set up system-wide in inetd style. - -Another way to re-attain SSL would be to setup a httpd reverse proxy. This solution -would allow the use of different authentication, loadbalancing, on-the-fly compression and -caching. A sample config for apache2 could look like: - - Listen 443 - - NameVirtualHost *:443 - <VirtualHost *:443> - - SSLEngine On - SSLCertificateFile /etc/apache2/ssl/server.crt - SSLCertificateKeyFile /etc/apache2/ssl/server.key - - <Location /bitcoinrpc> - ProxyPass http://127.0.0.1:8332/ - ProxyPassReverse http://127.0.0.1:8332/ - # optional enable digest auth - # AuthType Digest - # ... - - # optional bypass bitcoind rpc basic auth - # RequestHeader set Authorization "Basic <hash>" - # get the <hash> from the shell with: base64 <<< bitcoinrpc:<password> - </Location> - - # Or, balance the load: - # ProxyPass / balancer://balancer_cluster_name - - </VirtualHost> - -Random-cookie RPC authentication ---------------------------------- - -When no `-rpcpassword` is specified, the daemon now uses a special 'cookie' -file for authentication. This file is generated with random content when the -daemon starts, and deleted when it exits. Its contents are used as -authentication token. Read access to this file controls who can access through -RPC. By default it is stored in the data directory but its location can be -overridden with the option `-rpccookiefile`. - -This is similar to Tor's CookieAuthentication: see -https://www.torproject.org/docs/tor-manual.html.en - -This allows running bitcoind without having to do any manual configuration. - -Low-level RPC API changes --------------------------- - -- Monetary amounts can be provided as strings. This means that for example the - argument to sendtoaddress can be "0.0001" instead of 0.0001. This can be an - advantage if a JSON library insists on using a lossy floating point type for - numbers, which would be dangerous for monetary amounts. - -Option parsing behavior ------------------------ - -Command line options are now parsed strictly in the order in which they are -specified. It used to be the case that `-X -noX` ends up, unintuitively, with X -set, as `-X` had precedence over `-noX`. This is no longer the case. Like for -other software, the last specified value for an option will hold. - -`NODE_BLOOM` service bit ------------------------- - -Support for the `NODE_BLOOM` service bit, as described in [BIP -111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been -added to the P2P protocol code. - -BIP 111 defines a service bit to allow peers to advertise that they support -bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol -version to allow peers to identify old nodes which allow bloom filtering of the -connection despite lacking the new service bit. - -In this version, it is only enforced for peers that send protocol versions -`>=70011`. For the next major version it is planned that this restriction will be -removed. It is recommended to update SPV clients to check for the `NODE_BLOOM` -service bit for nodes that report versions newer than 70011. - -Any sequence of pushdatas in OP_RETURN outputs now allowed ----------------------------------------------------------- - -Previously OP_RETURN outputs with a payload were only relayed and mined if they -had a single pushdata. This restriction has been lifted to allow any -combination of data pushes and numeric constant opcodes (OP_1 to OP_16). The -limit on OP_RETURN output size is now applied to the entire serialized -scriptPubKey, 83 bytes by default. (the previous 80 byte default plus three -bytes overhead) - -Merkle branches removed from wallet ------------------------------------ - -Previously, every wallet transaction stored a Merkle branch to prove its -presence in blocks. This wasn't being used for more than an expensive -sanity check. Since 0.12, these are no longer stored. When loading a -0.12 wallet into an older version, it will automatically rescan to avoid -failed checks. - -BIP65 - CHECKLOCKTIMEVERIFY ---------------------------- - -Previously it was impossible to create a transaction output that was guaranteed -to be unspendable until a specific date in the future. CHECKLOCKTIMEVERIFY is a -new opcode that allows a script to check if a specific block height or time has -been reached, failing the script otherwise. This enables a wide variety of new -functionality such as time-locked escrows, secure payment channels, etc. - -BIP65 implements CHECKLOCKTIMEVERIFY by introducing block version 4, which adds -additional restrictions to the NOP2 opcode. The same miner-voting mechanism as -in BIP34 and BIP66 is used: when 751 out of a sequence of 1001 blocks have -version number 4 or higher, the new consensus rule becomes active for those -blocks. When 951 out of a sequence of 1001 blocks have version number 4 or -higher, it becomes mandatory for all blocks and blocks with versions less than -4 are rejected. - -Bitcoin Core's block templates are now for version 4 blocks only, and any -mining software relying on its `getblocktemplate` must be updated in parallel -to use either libblkmaker version 0.4.3 or any version from 0.5.2 onward. If -you are solo mining, this will affect you the moment you upgrade Bitcoin Core, -which must be done prior to BIP65 achieving its 951/1001 status. If you are -mining with the stratum mining protocol: this does not affect you. If you are -mining with the getblocktemplate protocol to a pool: this will affect you at -the pool operator's discretion, which must be no later than BIP65 achieving its -951/1001 status. - -Automatically use Tor hidden services -------------------------------------- - -Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket -API, to create and destroy 'ephemeral' hidden services programmatically. -Bitcoin Core has been updated to make use of this. - -This means that if Tor is running (and proper authorization is available), -Bitcoin Core automatically creates a hidden service to listen on, without -manual configuration. Bitcoin Core will also use Tor automatically to connect -to other .onion nodes if the control socket can be successfully opened. This -will positively affect the number of available .onion nodes and their usage. - -This new feature is enabled by default if Bitcoin Core is listening, and -a connection to Tor can be made. It can be configured with the `-listenonion`, -`-torcontrol` and `-torpassword` settings. To show verbose debugging -information, pass `-debug=tor`. - -Reduce upload traffic ---------------------- - -A major part of the outbound traffic is caused by serving historic blocks to -other nodes in initial block download state. - -It is now possible to reduce the total upload traffic via the `-maxuploadtarget` -parameter. This is *not* a hard limit but a threshold to minimize the outbound -traffic. When the limit is about to be reached, the uploaded data is cut by not -serving historic blocks (blocks older than one week). -Moreover, any SPV peer is disconnected when they request a filtered block. - -This option can be specified in MiB per day and is turned off by default -(`-maxuploadtarget=0`). -The recommended minimum is 144 * MAX_BLOCK_SIZE (currently 144MB) per day. - -Whitelisted peers will never be disconnected, although their traffic counts for -calculating the target. - -A more detailed documentation about keeping traffic low can be found in -[/doc/reducetraffic.md](/doc/reducetraffic.md). - -Signature validation using libsecp256k1 ---------------------------------------- - -ECDSA signatures inside Bitcoin transactions now use validation using -[https://github.com/bitcoin/secp256k1](libsecp256k1) instead of OpenSSL. - -Depending on the platform, this means a significant speedup for raw signature -validation speed. The advantage is largest on x86_64, where validation is over -five times faster. In practice, this translates to a raw reindexing and new -block validation times that are less than half of what it was before. - -Libsecp256k1 has undergone very extensive testing and validation. - -A side effect of this change is that libconsensus no longer depends on OpenSSL. - -Direct headers announcement (BIP 130) -------------------------------------- - -Between compatible peers, BIP 130 direct headers announcement is used. This -means that blocks are advertized by announcing their headers directly, instead -of just announcing the hash. In a reorganization, all new headers are sent, -instead of just the new tip. This can often prevent an extra roundtrip before -the actual block is downloaded. - -Negative confirmations and conflict detection ---------------------------------------------- - -The wallet will now report a negative number for confirmations that indicates -how deep in the block chain the conflict is found. For example, if a transaction -A has 5 confirmations and spends the same input as a wallet transaction B, B -will be reported as having -5 confirmations. If another wallet transaction C -spends an output from B, it will also be reported as having -5 confirmations. -To detect conflicts with historical transactions in the chain a one-time -`-rescan` may be needed. - -Unlike earlier versions, unconfirmed but non-conflicting transactions will never -get a negative confirmation count. They are not treated as spendable unless -they're coming from ourself (change) and accepted into our local mempool, -however. The new "trusted" field in the `listtransactions` RPC output -indicates whether outputs of an unconfirmed transaction are considered -spendable. - -0.12.0 Change log +0.13.0 Change log ================= Detailed release notes follow. This overview includes changes that affect @@ -243,33 +18,20 @@ git merge commit are mentioned. ### RPC and REST -Asm representations of scriptSig signatures now contain SIGHASH type decodes ----------------------------------------------------------------------------- - -The `asm` property of each scriptSig now contains the decoded signature hash -type for each signature that provides a valid defined hash type. +Asm script outputs now contain OP_CHECKLOCKTIMEVERIFY in place of OP_NOP2 +------------------------------------------------------------------------- -The following items contain assembly representations of scriptSig signatures -and are affected by this change: +OP_NOP2 has been renamed to OP_CHECKLOCKTIMEVERIFY by [BIP +65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) -- RPC `getrawtransaction` +The following outputs are affected by this change: +- RPC `getrawtransaction` (in verbose mode) - RPC `decoderawtransaction` +- RPC `decodescript` - REST `/rest/tx/` (JSON format) - REST `/rest/block/` (JSON format when including extended tx details) - `bitcoin-tx -json` -For example, the `scriptSig.asm` property of a transaction input that -previously showed an assembly representation of: - - 304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001 - -now shows as: - - 304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL] - -Note that the output of the RPC `decodescript` did not change because it is -configured specifically to process scriptPubKey and not scriptSig scripts. - ### Configuration and command-line options ### Block and transaction handling @@ -288,13 +50,3 @@ configured specifically to process scriptPubKey and not scriptSig scripts. ### Miscellaneous -- Removed bitrpc.py from contrib - -Addition of ZMQ-based Notifications -================================== - -Bitcoind can now (optionally) asynchronously notify clients through a -ZMQ-based PUB socket of the arrival of new transactions and blocks. -This feature requires installation of the ZMQ C API library 4.x and -configuring its use through the command line or configuration file. -Please see docs/zmq.md for details of operation. diff --git a/doc/release-notes/release-notes-0.6.3.md b/doc/release-notes/release-notes-0.6.3.md index 28bb20e104..c27f607b5c 100644 --- a/doc/release-notes/release-notes-0.6.3.md +++ b/doc/release-notes/release-notes-0.6.3.md @@ -23,7 +23,7 @@ hundreds of blocks long. Bitcoin-Qt no longer automatically selects the first address in the address book (Issue #1384). -Fixed minimize-to-dock behavior of Bitcon-Qt on the Mac. +Fixed minimize-to-dock behavior of Bitcoin-Qt on the Mac. Added a block checkpoint at block 185,333 to speed up initial blockchain download. diff --git a/doc/translation_process.md b/doc/translation_process.md index 6389c5aced..310d560b36 100644 --- a/doc/translation_process.md +++ b/doc/translation_process.md @@ -74,10 +74,10 @@ The Transifex Bitcoin project config file is included as part of the repo. It ca To assist in updating translations, we have created a script to help. 1. `python contrib/devtools/update-translations.py` -2. Update `src/qt/bitcoin.qrc` manually or via +2. Update `src/qt/bitcoin_locale.qrc` manually or via `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(bitcoin_\(.*\)\).ts/<file alias="\2">locale\/\1.qm<\/file>/'` -3. Update `src/qt/Makefile.am` manually or via - `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(bitcoin_\(.*\)\).ts/ locale\/\1.ts \\/'` +3. Update `src/Makefile.qt.include` manually or via + `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(bitcoin_\(.*\)\).ts/ qt\/locale\/\1.ts \\/'` 4. `git add` new translations from `src/qt/locale/` **Do not directly download translations** one by one from the Transifex website, as we do a few post-processing steps before committing the translations. diff --git a/qa/pull-tester/rpc-tests.py b/qa/pull-tester/rpc-tests.py index 993646c505..44d7d71759 100755 --- a/qa/pull-tester/rpc-tests.py +++ b/qa/pull-tester/rpc-tests.py @@ -62,8 +62,10 @@ for arg in sys.argv[1:]: #Set env vars buildDir = BUILDDIR -os.environ["BITCOIND"] = buildDir + '/src/bitcoind' + EXEEXT -os.environ["BITCOINCLI"] = buildDir + '/src/bitcoin-cli' + EXEEXT +if "BITCOIND" not in os.environ: + os.environ["BITCOIND"] = buildDir + '/src/bitcoind' + EXEEXT +if "BITCOINCLI" not in os.environ: + os.environ["BITCOINCLI"] = buildDir + '/src/bitcoin-cli' + EXEEXT #Disable Windows tests by default if EXEEXT == ".exe" and "-win" not in opts: @@ -101,6 +103,8 @@ testScripts = [ 'sendheaders.py', 'keypool.py', 'prioritise_transaction.py', + 'invalidblockrequest.py', + 'invalidtxrequest.py', ] testScriptsExt = [ 'bip65-cltv.py', @@ -117,7 +121,6 @@ testScriptsExt = [ # 'rpcbind_test.py', #temporary, bug in libevent, see #6655 'smartfees.py', 'maxblocksinflight.py', - 'invalidblockrequest.py', 'p2p-acceptblock.py', 'mempool_packages.py', 'maxuploadtarget.py', diff --git a/qa/replace-by-fee/.gitignore b/qa/replace-by-fee/.gitignore deleted file mode 100644 index b2c4f4657a..0000000000 --- a/qa/replace-by-fee/.gitignore +++ /dev/null @@ -1 +0,0 @@ -python-bitcoinlib diff --git a/qa/replace-by-fee/README.md b/qa/replace-by-fee/README.md deleted file mode 100644 index baad86de9a..0000000000 --- a/qa/replace-by-fee/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Replace-by-fee regression tests -=============================== - -First get version v0.5.0 of the python-bitcoinlib library. In this directory -run: - - git clone -n https://github.com/petertodd/python-bitcoinlib - (cd python-bitcoinlib && git checkout 8270bfd9c6ac37907d75db3d8b9152d61c7255cd) - -Then run the tests themselves with a bitcoind available running in regtest -mode: - - ./rbf-tests.py diff --git a/qa/replace-by-fee/rbf-tests.py b/qa/replace-by-fee/rbf-tests.py deleted file mode 100755 index 1ee6c83875..0000000000 --- a/qa/replace-by-fee/rbf-tests.py +++ /dev/null @@ -1,360 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2015 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -# -# Test replace-by-fee -# - -import os -import sys - -# Add python-bitcoinlib to module search path, prior to any system-wide -# python-bitcoinlib. -sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinlib")) - -import unittest - -import bitcoin -bitcoin.SelectParams('regtest') - -import bitcoin.rpc - -from bitcoin.core import * -from bitcoin.core.script import * -from bitcoin.wallet import * - -MAX_REPLACEMENT_LIMIT = 100 - -class Test_ReplaceByFee(unittest.TestCase): - proxy = None - - @classmethod - def setUpClass(cls): - if cls.proxy is None: - cls.proxy = bitcoin.rpc.Proxy() - - @classmethod - def mine_mempool(cls): - """Mine until mempool is empty""" - mempool_size = 1 - while mempool_size: - cls.proxy.call('generate', 1) - new_mempool_size = len(cls.proxy.getrawmempool()) - - # It's possible to get stuck in a loop here if the mempool has - # transactions that can't be mined. - assert(new_mempool_size != mempool_size) - mempool_size = new_mempool_size - - @classmethod - def tearDownClass(cls): - # Make sure mining works - cls.mine_mempool() - - def make_txout(self, amount, confirmed=True, scriptPubKey=CScript([1])): - """Create a txout with a given amount and scriptPubKey - - Mines coins as needed. - - confirmed - txouts created will be confirmed in the blockchain; - unconfirmed otherwise. - """ - fee = 1*COIN - while self.proxy.getbalance() < amount + fee: - self.proxy.call('generate', 100) - - addr = P2SHBitcoinAddress.from_redeemScript(CScript([])) - txid = self.proxy.sendtoaddress(addr, amount + fee) - - tx1 = self.proxy.getrawtransaction(txid) - - i = None - for i, txout in enumerate(tx1.vout): - if txout.scriptPubKey == addr.to_scriptPubKey(): - break - assert i is not None - - tx2 = CTransaction([CTxIn(COutPoint(txid, i), CScript([1, CScript([])]), nSequence=0)], - [CTxOut(amount, scriptPubKey)]) - - tx2_txid = self.proxy.sendrawtransaction(tx2, True) - - # If requested, ensure txouts are confirmed. - if confirmed: - self.mine_mempool() - - return COutPoint(tx2_txid, 0) - - def test_simple_doublespend(self): - """Simple doublespend""" - tx0_outpoint = self.make_txout(1.1*COIN) - - tx1a = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(1*COIN, CScript([b'a']))]) - tx1a_txid = self.proxy.sendrawtransaction(tx1a, True) - - # Should fail because we haven't changed the fee - tx1b = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(1*COIN, CScript([b'b']))]) - - try: - tx1b_txid = self.proxy.sendrawtransaction(tx1b, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) # insufficient fee - else: - self.fail() - - # Extra 0.1 BTC fee - tx1b = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(0.9*COIN, CScript([b'b']))]) - tx1b_txid = self.proxy.sendrawtransaction(tx1b, True) - - # tx1a is in fact replaced - with self.assertRaises(IndexError): - self.proxy.getrawtransaction(tx1a_txid) - - self.assertEqual(tx1b, self.proxy.getrawtransaction(tx1b_txid)) - - def test_doublespend_chain(self): - """Doublespend of a long chain""" - - initial_nValue = 50*COIN - tx0_outpoint = self.make_txout(initial_nValue) - - prevout = tx0_outpoint - remaining_value = initial_nValue - chain_txids = [] - while remaining_value > 10*COIN: - remaining_value -= 1*COIN - tx = CTransaction([CTxIn(prevout, nSequence=0)], - [CTxOut(remaining_value, CScript([1]))]) - txid = self.proxy.sendrawtransaction(tx, True) - chain_txids.append(txid) - prevout = COutPoint(txid, 0) - - # Whether the double-spend is allowed is evaluated by including all - # child fees - 40 BTC - so this attempt is rejected. - dbl_tx = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(initial_nValue - 30*COIN, CScript([1]))]) - - try: - self.proxy.sendrawtransaction(dbl_tx, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) # insufficient fee - else: - self.fail() - - # Accepted with sufficient fee - dbl_tx = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(1*COIN, CScript([1]))]) - self.proxy.sendrawtransaction(dbl_tx, True) - - for doublespent_txid in chain_txids: - with self.assertRaises(IndexError): - self.proxy.getrawtransaction(doublespent_txid) - - def test_doublespend_tree(self): - """Doublespend of a big tree of transactions""" - - initial_nValue = 50*COIN - tx0_outpoint = self.make_txout(initial_nValue) - - def branch(prevout, initial_value, max_txs, *, tree_width=5, fee=0.0001*COIN, _total_txs=None): - if _total_txs is None: - _total_txs = [0] - if _total_txs[0] >= max_txs: - return - - txout_value = (initial_value - fee) // tree_width - if txout_value < fee: - return - - vout = [CTxOut(txout_value, CScript([i+1])) - for i in range(tree_width)] - tx = CTransaction([CTxIn(prevout, nSequence=0)], - vout) - - self.assertTrue(len(tx.serialize()) < 100000) - txid = self.proxy.sendrawtransaction(tx, True) - yield tx - _total_txs[0] += 1 - - for i, txout in enumerate(tx.vout): - yield from branch(COutPoint(txid, i), txout_value, - max_txs, - tree_width=tree_width, fee=fee, - _total_txs=_total_txs) - - fee = 0.0001*COIN - n = MAX_REPLACEMENT_LIMIT - tree_txs = list(branch(tx0_outpoint, initial_nValue, n, fee=fee)) - self.assertEqual(len(tree_txs), n) - - # Attempt double-spend, will fail because too little fee paid - dbl_tx = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(initial_nValue - fee*n, CScript([1]))]) - try: - self.proxy.sendrawtransaction(dbl_tx, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) # insufficient fee - else: - self.fail() - - # 1 BTC fee is enough - dbl_tx = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(initial_nValue - fee*n - 1*COIN, CScript([1]))]) - self.proxy.sendrawtransaction(dbl_tx, True) - - for tx in tree_txs: - with self.assertRaises(IndexError): - self.proxy.getrawtransaction(tx.GetHash()) - - # Try again, but with more total transactions than the "max txs - # double-spent at once" anti-DoS limit. - for n in (MAX_REPLACEMENT_LIMIT, MAX_REPLACEMENT_LIMIT*2): - fee = 0.0001*COIN - tx0_outpoint = self.make_txout(initial_nValue) - tree_txs = list(branch(tx0_outpoint, initial_nValue, n, fee=fee)) - self.assertEqual(len(tree_txs), n) - - dbl_tx = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(initial_nValue - fee*n, CScript([1]))]) - try: - self.proxy.sendrawtransaction(dbl_tx, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) - else: - self.fail() - - for tx in tree_txs: - self.proxy.getrawtransaction(tx.GetHash()) - - def test_replacement_feeperkb(self): - """Replacement requires fee-per-KB to be higher""" - tx0_outpoint = self.make_txout(1.1*COIN) - - tx1a = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(1*COIN, CScript([b'a']))]) - tx1a_txid = self.proxy.sendrawtransaction(tx1a, True) - - # Higher fee, but the fee per KB is much lower, so the replacement is - # rejected. - tx1b = CTransaction([CTxIn(tx0_outpoint, nSequence=0)], - [CTxOut(0.001*COIN, - CScript([b'a'*999000]))]) - - try: - tx1b_txid = self.proxy.sendrawtransaction(tx1b, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) # insufficient fee - else: - self.fail() - - def test_spends_of_conflicting_outputs(self): - """Replacements that spend conflicting tx outputs are rejected""" - utxo1 = self.make_txout(1.2*COIN) - utxo2 = self.make_txout(3.0*COIN) - - tx1a = CTransaction([CTxIn(utxo1, nSequence=0)], - [CTxOut(1.1*COIN, CScript([b'a']))]) - tx1a_txid = self.proxy.sendrawtransaction(tx1a, True) - - # Direct spend an output of the transaction we're replacing. - tx2 = CTransaction([CTxIn(utxo1, nSequence=0), CTxIn(utxo2, nSequence=0), - CTxIn(COutPoint(tx1a_txid, 0), nSequence=0)], - tx1a.vout) - - try: - tx2_txid = self.proxy.sendrawtransaction(tx2, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) - else: - self.fail() - - # Spend tx1a's output to test the indirect case. - tx1b = CTransaction([CTxIn(COutPoint(tx1a_txid, 0), nSequence=0)], - [CTxOut(1.0*COIN, CScript([b'a']))]) - tx1b_txid = self.proxy.sendrawtransaction(tx1b, True) - - tx2 = CTransaction([CTxIn(utxo1, nSequence=0), CTxIn(utxo2, nSequence=0), - CTxIn(COutPoint(tx1b_txid, 0))], - tx1a.vout) - - try: - tx2_txid = self.proxy.sendrawtransaction(tx2, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) - else: - self.fail() - - def test_new_unconfirmed_inputs(self): - """Replacements that add new unconfirmed inputs are rejected""" - confirmed_utxo = self.make_txout(1.1*COIN) - unconfirmed_utxo = self.make_txout(0.1*COIN, False) - - tx1 = CTransaction([CTxIn(confirmed_utxo)], - [CTxOut(1.0*COIN, CScript([b'a']))]) - tx1_txid = self.proxy.sendrawtransaction(tx1, True) - - tx2 = CTransaction([CTxIn(confirmed_utxo), CTxIn(unconfirmed_utxo)], - tx1.vout) - - try: - tx2_txid = self.proxy.sendrawtransaction(tx2, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) - else: - self.fail() - - def test_too_many_replacements(self): - """Replacements that evict too many transactions are rejected""" - # Try directly replacing more than MAX_REPLACEMENT_LIMIT - # transactions - - # Start by creating a single transaction with many outputs - initial_nValue = 10*COIN - utxo = self.make_txout(initial_nValue) - fee = 0.0001*COIN - split_value = int((initial_nValue-fee)/(MAX_REPLACEMENT_LIMIT+1)) - actual_fee = initial_nValue - split_value*(MAX_REPLACEMENT_LIMIT+1) - - outputs = [] - for i in range(MAX_REPLACEMENT_LIMIT+1): - outputs.append(CTxOut(split_value, CScript([1]))) - - splitting_tx = CTransaction([CTxIn(utxo, nSequence=0)], outputs) - txid = self.proxy.sendrawtransaction(splitting_tx, True) - - # Now spend each of those outputs individually - for i in range(MAX_REPLACEMENT_LIMIT+1): - tx_i = CTransaction([CTxIn(COutPoint(txid, i), nSequence=0)], - [CTxOut(split_value-fee, CScript([b'a']))]) - self.proxy.sendrawtransaction(tx_i, True) - - # Now create doublespend of the whole lot, should fail - # Need a big enough fee to cover all spending transactions and have - # a higher fee rate - double_spend_value = (split_value-100*fee)*(MAX_REPLACEMENT_LIMIT+1) - inputs = [] - for i in range(MAX_REPLACEMENT_LIMIT+1): - inputs.append(CTxIn(COutPoint(txid, i), nSequence=0)) - double_tx = CTransaction(inputs, [CTxOut(double_spend_value, CScript([b'a']))]) - - try: - self.proxy.sendrawtransaction(double_tx, True) - except bitcoin.rpc.JSONRPCException as exp: - self.assertEqual(exp.error['code'], -26) - self.assertEqual("too many potential replacements" in exp.error['message'], True) - else: - self.fail() - - # If we remove an input, it should pass - double_tx = CTransaction(inputs[0:-1], - [CTxOut(double_spend_value, CScript([b'a']))]) - - self.proxy.sendrawtransaction(double_tx, True) - -if __name__ == '__main__': - unittest.main() diff --git a/qa/rpc-tests/README.md b/qa/rpc-tests/README.md index 898931936b..651b01f18a 100644 --- a/qa/rpc-tests/README.md +++ b/qa/rpc-tests/README.md @@ -47,10 +47,7 @@ implements the test logic. * ```NodeConn``` is the class used to connect to a bitcoind. If you implement a callback class that derives from ```NodeConnCB``` and pass that to the ```NodeConn``` object, your code will receive the appropriate callbacks when -events of interest arrive. NOTE: be sure to call -```self.create_callback_map()``` in your derived classes' ```__init__``` -function, so that the correct mappings are set up between p2p messages and your -callback functions. +events of interest arrive. * You can pass the same handler to multiple ```NodeConn```'s if you like, or pass different ones to each -- whatever makes the most sense for your test. diff --git a/qa/rpc-tests/bip65-cltv-p2p.py b/qa/rpc-tests/bip65-cltv-p2p.py index 9ca5c69f16..5bb41df1ad 100755 --- a/qa/rpc-tests/bip65-cltv-p2p.py +++ b/qa/rpc-tests/bip65-cltv-p2p.py @@ -9,7 +9,7 @@ from test_framework.util import * from test_framework.mininode import CTransaction, NetworkThread from test_framework.blocktools import create_coinbase, create_block from test_framework.comptool import TestInstance, TestManager -from test_framework.script import CScript, OP_1NEGATE, OP_NOP2, OP_DROP +from test_framework.script import CScript, OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP from binascii import hexlify, unhexlify import cStringIO import time @@ -19,7 +19,7 @@ def cltv_invalidate(tx): Prepends -1 CLTV DROP in the scriptSig itself. ''' - tx.vin[0].scriptSig = CScript([OP_1NEGATE, OP_NOP2, OP_DROP] + + tx.vin[0].scriptSig = CScript([OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP] + list(CScript(tx.vin[0].scriptSig))) ''' diff --git a/qa/rpc-tests/decodescript.py b/qa/rpc-tests/decodescript.py index 4bca623380..490808d49d 100755 --- a/qa/rpc-tests/decodescript.py +++ b/qa/rpc-tests/decodescript.py @@ -102,13 +102,13 @@ class DecodeScriptTest(BitcoinTestFramework): # OP_IF # <receiver-pubkey> OP_CHECKSIGVERIFY # OP_ELSE - # <lock-until> OP_NOP2 OP_DROP + # <lock-until> OP_CHECKLOCKTIMEVERIFY OP_DROP # OP_ENDIF # <sender-pubkey> OP_CHECKSIG # # lock until block 500,000 rpc_result = self.nodes[0].decodescript('63' + push_public_key + 'ad670320a107b17568' + push_public_key + 'ac') - assert_equal('OP_IF ' + public_key + ' OP_CHECKSIGVERIFY OP_ELSE 500000 OP_NOP2 OP_DROP OP_ENDIF ' + public_key + ' OP_CHECKSIG', rpc_result['asm']) + assert_equal('OP_IF ' + public_key + ' OP_CHECKSIGVERIFY OP_ELSE 500000 OP_CHECKLOCKTIMEVERIFY OP_DROP OP_ENDIF ' + public_key + ' OP_CHECKSIG', rpc_result['asm']) def decoderawtransaction_asm_sighashtype(self): """Tests decoding scripts via RPC command "decoderawtransaction". diff --git a/qa/rpc-tests/invalidblockrequest.py b/qa/rpc-tests/invalidblockrequest.py index 6a7980cd45..a74ecb1288 100755 --- a/qa/rpc-tests/invalidblockrequest.py +++ b/qa/rpc-tests/invalidblockrequest.py @@ -6,7 +6,7 @@ from test_framework.test_framework import ComparisonTestFramework from test_framework.util import * -from test_framework.comptool import TestManager, TestInstance +from test_framework.comptool import TestManager, TestInstance, RejectResult from test_framework.mininode import * from test_framework.blocktools import * import logging @@ -97,7 +97,7 @@ class InvalidBlockRequestTest(ComparisonTestFramework): assert(block2_orig.vtx != block2.vtx) self.tip = block2.sha256 - yield TestInstance([[block2, False], [block2_orig, True]]) + yield TestInstance([[block2, RejectResult(16,'bad-txns-duplicate')], [block2_orig, True]]) height += 1 ''' @@ -112,7 +112,7 @@ class InvalidBlockRequestTest(ComparisonTestFramework): block3.rehash() block3.solve() - yield TestInstance([[block3, False]]) + yield TestInstance([[block3, RejectResult(16,'bad-cb-amount')]]) if __name__ == '__main__': diff --git a/qa/rpc-tests/invalidtxrequest.py b/qa/rpc-tests/invalidtxrequest.py new file mode 100755 index 0000000000..d17b3d0980 --- /dev/null +++ b/qa/rpc-tests/invalidtxrequest.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python2 +# +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# + +from test_framework.test_framework import ComparisonTestFramework +from test_framework.util import * +from test_framework.comptool import TestManager, TestInstance, RejectResult +from test_framework.mininode import * +from test_framework.blocktools import * +import logging +import copy +import time + + +''' +In this test we connect to one node over p2p, and test tx requests. +''' + +# Use the ComparisonTestFramework with 1 node: only use --testbinary. +class InvalidTxRequestTest(ComparisonTestFramework): + + ''' Can either run this test as 1 node with expected answers, or two and compare them. + Change the "outcome" variable from each TestInstance object to only do the comparison. ''' + def __init__(self): + self.num_nodes = 1 + + def run_test(self): + test = TestManager(self, self.options.tmpdir) + test.add_all_connections(self.nodes) + self.tip = None + self.block_time = None + NetworkThread().start() # Start up network handling in another thread + test.run() + + def get_tests(self): + if self.tip is None: + self.tip = int ("0x" + self.nodes[0].getbestblockhash() + "L", 0) + self.block_time = int(time.time())+1 + + ''' + Create a new block with an anyone-can-spend coinbase + ''' + height = 1 + block = create_block(self.tip, create_coinbase(height), self.block_time) + self.block_time += 1 + block.solve() + # Save the coinbase for later + self.block1 = block + self.tip = block.sha256 + height += 1 + yield TestInstance([[block, True]]) + + ''' + Now we need that block to mature so we can spend the coinbase. + ''' + test = TestInstance(sync_every_block=False) + for i in xrange(100): + block = create_block(self.tip, create_coinbase(height), self.block_time) + block.solve() + self.tip = block.sha256 + self.block_time += 1 + test.blocks_and_transactions.append([block, True]) + height += 1 + yield test + + # chr(100) is OP_NOTIF + # Transaction will be rejected with code 16 (REJECT_INVALID) + tx1 = create_transaction(self.block1.vtx[0], 0, chr(100), 50*100000000) + yield TestInstance([[tx1, RejectResult(16, 'mandatory-script-verify-flag-failed')]]) + + # TODO: test further transactions... + +if __name__ == '__main__': + InvalidTxRequestTest().main() diff --git a/qa/rpc-tests/maxblocksinflight.py b/qa/rpc-tests/maxblocksinflight.py index a601147ce8..1a9ae480ab 100755 --- a/qa/rpc-tests/maxblocksinflight.py +++ b/qa/rpc-tests/maxblocksinflight.py @@ -34,7 +34,6 @@ class TestManager(NodeConnCB): def __init__(self): NodeConnCB.__init__(self) self.log = logging.getLogger("BlockRelayTest") - self.create_callback_map() def add_new_connection(self, connection): self.connection = connection diff --git a/qa/rpc-tests/maxuploadtarget.py b/qa/rpc-tests/maxuploadtarget.py index be87c3bb41..4d6b343f77 100755 --- a/qa/rpc-tests/maxuploadtarget.py +++ b/qa/rpc-tests/maxuploadtarget.py @@ -25,7 +25,6 @@ if uploadtarget has been reached. class TestNode(NodeConnCB): def __init__(self): NodeConnCB.__init__(self) - self.create_callback_map() self.connection = None self.ping_counter = 1 self.last_pong = msg_pong() diff --git a/qa/rpc-tests/mempool_packages.py b/qa/rpc-tests/mempool_packages.py index 34b316a6a3..063308d394 100755 --- a/qa/rpc-tests/mempool_packages.py +++ b/qa/rpc-tests/mempool_packages.py @@ -64,17 +64,41 @@ class MempoolPackagesTest(BitcoinTestFramework): for x in reversed(chain): assert_equal(mempool[x]['descendantcount'], descendant_count) descendant_fees += mempool[x]['fee'] + assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee']) assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees) descendant_size += mempool[x]['size'] assert_equal(mempool[x]['descendantsize'], descendant_size) descendant_count += 1 + # Check that descendant modified fees includes fee deltas from + # prioritisetransaction + self.nodes[0].prioritisetransaction(chain[-1], 0, 1000) + mempool = self.nodes[0].getrawmempool(True) + + descendant_fees = 0 + for x in reversed(chain): + descendant_fees += mempool[x]['fee'] + assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees+1000) + # Adding one more transaction on to the chain should fail. try: self.chain_transaction(self.nodes[0], txid, vout, value, fee, 1) except JSONRPCException as e: print "too-long-ancestor-chain successfully rejected" + # Check that prioritising a tx before it's added to the mempool works + self.nodes[0].generate(1) + self.nodes[0].prioritisetransaction(chain[-1], 0, 2000) + self.nodes[0].invalidateblock(self.nodes[0].getbestblockhash()) + mempool = self.nodes[0].getrawmempool(True) + + descendant_fees = 0 + for x in reversed(chain): + descendant_fees += mempool[x]['fee'] + if (x == chain[-1]): + assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee']+satoshi_round(0.00002)) + assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees+2000) + # TODO: check that node1's mempool is as expected # TODO: test ancestor size limits diff --git a/qa/rpc-tests/p2p-acceptblock.py b/qa/rpc-tests/p2p-acceptblock.py index 700deab207..23872d8494 100755 --- a/qa/rpc-tests/p2p-acceptblock.py +++ b/qa/rpc-tests/p2p-acceptblock.py @@ -62,7 +62,6 @@ The test: class TestNode(NodeConnCB): def __init__(self): NodeConnCB.__init__(self) - self.create_callback_map() self.connection = None self.ping_counter = 1 self.last_pong = msg_pong() diff --git a/qa/rpc-tests/p2p-fullblocktest.py b/qa/rpc-tests/p2p-fullblocktest.py index 9555940cec..a6525e6793 100755 --- a/qa/rpc-tests/p2p-fullblocktest.py +++ b/qa/rpc-tests/p2p-fullblocktest.py @@ -7,7 +7,7 @@ from test_framework.test_framework import ComparisonTestFramework from test_framework.util import * -from test_framework.comptool import TestManager, TestInstance +from test_framework.comptool import TestManager, TestInstance, RejectResult from test_framework.mininode import * from test_framework.blocktools import * import logging @@ -15,7 +15,7 @@ import copy import time import numbers from test_framework.key import CECKey -from test_framework.script import CScript, CScriptOp, SignatureHash, SIGHASH_ALL, OP_TRUE +from test_framework.script import CScript, CScriptOp, SignatureHash, SIGHASH_ALL, OP_TRUE, OP_FALSE class PreviousSpendableOutput(object): def __init__(self, tx = CTransaction(), n = -1): @@ -122,13 +122,29 @@ class FullBlockTest(ComparisonTestFramework): return TestInstance([[self.tip, True]]) # returns a test case that asserts that the current tip was rejected - def rejected(): - return TestInstance([[self.tip, False]]) + def rejected(reject = None): + if reject is None: + return TestInstance([[self.tip, False]]) + else: + return TestInstance([[self.tip, reject]]) # move the tip back to a previous block def tip(number): self.tip = self.blocks[number] + # add transactions to a block produced by next_block + def update_block(block_number, new_transactions): + block = self.blocks[block_number] + old_hash = block.sha256 + self.add_transactions_to_block(block, new_transactions) + block.solve() + # Update the internal state just like in next_block + self.tip = block + self.block_heights[block.sha256] = self.block_heights[old_hash] + del self.block_heights[old_hash] + self.blocks[block_number] = block + return block + # creates a new block and advances the tip to that block block = self.next_block @@ -141,14 +157,15 @@ class FullBlockTest(ComparisonTestFramework): # Now we need that block to mature so we can spend the coinbase. test = TestInstance(sync_every_block=False) - for i in range(100): + for i in range(99): block(1000 + i) test.blocks_and_transactions.append([self.tip, True]) save_spendable_output() yield test - # Start by bulding a couple of blocks on top (which output is spent is in parentheses): + # Start by building a couple of blocks on top (which output is spent is + # in parentheses): # genesis -> b1 (0) -> b2 (1) out0 = get_spendable_output() block(1, spend=out0) @@ -156,8 +173,7 @@ class FullBlockTest(ComparisonTestFramework): yield accepted() out1 = get_spendable_output() - block(2, spend=out1) - # Inv again, then deliver twice (shouldn't break anything). + b2 = block(2, spend=out1) yield accepted() @@ -168,8 +184,8 @@ class FullBlockTest(ComparisonTestFramework): # # Nothing should happen at this point. We saw b2 first so it takes priority. tip(1) - block(3, spend=out1) - # Deliver twice (should still not break anything) + b3 = block(3, spend=out1) + txout_b3 = PreviousSpendableOutput(b3.vtx[1], 1) yield rejected() @@ -214,7 +230,7 @@ class FullBlockTest(ComparisonTestFramework): # \-> b3 (1) -> b4 (2) tip(6) block(9, spend=out4, additional_coinbase_value=1) - yield rejected() + yield rejected(RejectResult(16, 'bad-cb-amount')) # Create a fork that ends in a block with too much fee (the one that causes the reorg) @@ -226,7 +242,7 @@ class FullBlockTest(ComparisonTestFramework): yield rejected() block(11, spend=out4, additional_coinbase_value=1) - yield rejected() + yield rejected(RejectResult(16, 'bad-cb-amount')) # Try again, but with a valid fork first @@ -252,6 +268,10 @@ class FullBlockTest(ComparisonTestFramework): yield TestInstance([[b12, True, b13.sha256]]) # New tip should be b13. + # Add a block with MAX_BLOCK_SIGOPS and one with one more sigop + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) -> b16 (6) + # \-> b3 (1) -> b4 (2) # Test that a block with a lot of checksigs is okay lots_of_checksigs = CScript([OP_CHECKSIG] * (1000000 / 50 - 1)) @@ -264,8 +284,121 @@ class FullBlockTest(ComparisonTestFramework): out6 = get_spendable_output() too_many_checksigs = CScript([OP_CHECKSIG] * (1000000 / 50)) block(16, spend=out6, script=too_many_checksigs) + yield rejected(RejectResult(16, 'bad-blk-sigops')) + + + # Attempt to spend a transaction created on a different fork + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) -> b17 (b3.vtx[1]) + # \-> b3 (1) -> b4 (2) + tip(15) + block(17, spend=txout_b3) + yield rejected(RejectResult(16, 'bad-txns-inputs-missingorspent')) + + # Attempt to spend a transaction created on a different fork (on a fork this time) + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) + # \-> b18 (b3.vtx[1]) -> b19 (6) + # \-> b3 (1) -> b4 (2) + tip(13) + block(18, spend=txout_b3) + yield rejected() + + block(19, spend=out6) yield rejected() + # Attempt to spend a coinbase at depth too low + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) -> b20 (7) + # \-> b3 (1) -> b4 (2) + tip(15) + out7 = get_spendable_output() + block(20, spend=out7) + yield rejected(RejectResult(16, 'bad-txns-premature-spend-of-coinbase')) + + # Attempt to spend a coinbase at depth too low (on a fork this time) + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) + # \-> b21 (6) -> b22 (5) + # \-> b3 (1) -> b4 (2) + tip(13) + block(21, spend=out6) + yield rejected() + + block(22, spend=out5) + yield rejected() + + # Create a block on either side of MAX_BLOCK_SIZE and make sure its accepted/rejected + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) -> b23 (6) + # \-> b24 (6) -> b25 (7) + # \-> b3 (1) -> b4 (2) + tip(15) + b23 = block(23, spend=out6) + old_hash = b23.sha256 + tx = CTransaction() + script_length = MAX_BLOCK_SIZE - len(b23.serialize()) - 69 + script_output = CScript([chr(0)*script_length]) + tx.vout.append(CTxOut(0, script_output)) + tx.vin.append(CTxIn(COutPoint(b23.vtx[1].sha256, 1))) + b23 = update_block(23, [tx]) + # Make sure the math above worked out to produce a max-sized block + assert_equal(len(b23.serialize()), MAX_BLOCK_SIZE) + yield accepted() + + # Make the next block one byte bigger and check that it fails + tip(15) + b24 = block(24, spend=out6) + script_length = MAX_BLOCK_SIZE - len(b24.serialize()) - 69 + script_output = CScript([chr(0)*(script_length+1)]) + tx.vout = [CTxOut(0, script_output)] + b24 = update_block(24, [tx]) + assert_equal(len(b24.serialize()), MAX_BLOCK_SIZE+1) + yield rejected(RejectResult(16, 'bad-blk-length')) + + b25 = block(25, spend=out7) + yield rejected() + + # Create blocks with a coinbase input script size out of range + # genesis -> b1 (0) -> b2 (1) -> b5 (2) -> b6 (3) + # \-> b12 (3) -> b13 (4) -> b15 (5) -> b23 (6) -> b30 (7) + # \-> ... (6) -> ... (7) + # \-> b3 (1) -> b4 (2) + tip(15) + b26 = block(26, spend=out6) + b26.vtx[0].vin[0].scriptSig = chr(0) + b26.vtx[0].rehash() + # update_block causes the merkle root to get updated, even with no new + # transactions, and updates the required state. + b26 = update_block(26, []) + yield rejected(RejectResult(16, 'bad-cb-length')) + + # Extend the b26 chain to make sure bitcoind isn't accepting b26 + b27 = block(27, spend=out7) + yield rejected() + + # Now try a too-large-coinbase script + tip(15) + b28 = block(28, spend=out6) + b28.vtx[0].vin[0].scriptSig = chr(0)*101 + b28.vtx[0].rehash() + b28 = update_block(28, []) + yield rejected(RejectResult(16, 'bad-cb-length')) + + # Extend the b28 chain to make sure bitcoind isn't accepted b28 + b29 = block(29, spend=out7) + # TODO: Should get a reject message back with "bad-prevblk", except + # there's a bug that prevents this from being detected. Just note + # failure for now, and add the reject result later. + yield rejected() + + # b30 has a max-sized coinbase scriptSig. + tip(23) + b30 = block(30) + b30.vtx[0].vin[0].scriptSig = chr(0)*100 + b30.vtx[0].rehash() + b30 = update_block(30, []) + yield accepted() if __name__ == '__main__': diff --git a/qa/rpc-tests/prioritise_transaction.py b/qa/rpc-tests/prioritise_transaction.py index ae6ad63e1f..4a79d38da0 100755 --- a/qa/rpc-tests/prioritise_transaction.py +++ b/qa/rpc-tests/prioritise_transaction.py @@ -82,5 +82,45 @@ class PrioritiseTransactionTest(BitcoinTestFramework): if (x != high_fee_tx): assert(x not in mempool) + # Create a free, low priority transaction. Should be rejected. + utxo_list = self.nodes[0].listunspent() + assert(len(utxo_list) > 0) + utxo = utxo_list[0] + + inputs = [] + outputs = {} + inputs.append({"txid" : utxo["txid"], "vout" : utxo["vout"]}) + outputs[self.nodes[0].getnewaddress()] = utxo["amount"] - self.relayfee + raw_tx = self.nodes[0].createrawtransaction(inputs, outputs) + tx_hex = self.nodes[0].signrawtransaction(raw_tx)["hex"] + txid = self.nodes[0].sendrawtransaction(tx_hex) + + # A tx that spends an in-mempool tx has 0 priority, so we can use it to + # test the effect of using prioritise transaction for mempool acceptance + inputs = [] + inputs.append({"txid": txid, "vout": 0}) + outputs = {} + outputs[self.nodes[0].getnewaddress()] = utxo["amount"] - self.relayfee + raw_tx2 = self.nodes[0].createrawtransaction(inputs, outputs) + tx2_hex = self.nodes[0].signrawtransaction(raw_tx2)["hex"] + tx2_id = self.nodes[0].decoderawtransaction(tx2_hex)["txid"] + + try: + self.nodes[0].sendrawtransaction(tx2_hex) + except JSONRPCException as exp: + assert_equal(exp.error['code'], -26) # insufficient fee + assert(tx2_id not in self.nodes[0].getrawmempool()) + else: + assert(False) + + # This is a less than 1000-byte transaction, so just set the fee + # to be the minimum for a 1000 byte transaction and check that it is + # accepted. + self.nodes[0].prioritisetransaction(tx2_id, 0, int(self.relayfee*COIN)) + + print "Assert that prioritised free transaction is accepted to mempool" + assert_equal(self.nodes[0].sendrawtransaction(tx2_hex), tx2_id) + assert(tx2_id in self.nodes[0].getrawmempool()) + if __name__ == '__main__': PrioritiseTransactionTest().main() diff --git a/qa/rpc-tests/replace-by-fee.py b/qa/rpc-tests/replace-by-fee.py index 6e9e0b304c..734db33b51 100755 --- a/qa/rpc-tests/replace-by-fee.py +++ b/qa/rpc-tests/replace-by-fee.py @@ -63,8 +63,14 @@ def make_utxo(node, amount, confirmed=True, scriptPubKey=CScript([1])): # If requested, ensure txouts are confirmed. if confirmed: - while len(node.getrawmempool()): + mempool_size = len(node.getrawmempool()) + while mempool_size > 0: node.generate(1) + new_size = len(node.getrawmempool()) + # Error out if we have something stuck in the mempool, as this + # would likely be a bug. + assert(new_size < mempool_size) + mempool_size = new_size return COutPoint(int(txid, 16), 0) @@ -72,7 +78,7 @@ class ReplaceByFeeTest(BitcoinTestFramework): def setup_network(self): self.nodes = [] - self.nodes.append(start_node(0, self.options.tmpdir, ["-maxorphantx=1000", + self.nodes.append(start_node(0, self.options.tmpdir, ["-maxorphantx=1000", "-debug", "-relaypriority=0", "-whitelist=127.0.0.1", "-limitancestorcount=50", "-limitancestorsize=101", @@ -108,6 +114,9 @@ class ReplaceByFeeTest(BitcoinTestFramework): print "Running test opt-in..." self.test_opt_in() + print "Running test prioritised transactions..." + self.test_prioritised_transactions() + print "Passed\n" def test_simple_doublespend(self): @@ -513,5 +522,72 @@ class ReplaceByFeeTest(BitcoinTestFramework): # but make sure it is accepted anyway self.nodes[0].sendrawtransaction(tx3c_hex, True) + def test_prioritised_transactions(self): + # Ensure that fee deltas used via prioritisetransaction are + # correctly used by replacement logic + + # 1. Check that feeperkb uses modified fees + tx0_outpoint = make_utxo(self.nodes[0], 1.1*COIN) + + tx1a = CTransaction() + tx1a.vin = [CTxIn(tx0_outpoint, nSequence=0)] + tx1a.vout = [CTxOut(1*COIN, CScript([b'a']))] + tx1a_hex = txToHex(tx1a) + tx1a_txid = self.nodes[0].sendrawtransaction(tx1a_hex, True) + + # Higher fee, but the actual fee per KB is much lower. + tx1b = CTransaction() + tx1b.vin = [CTxIn(tx0_outpoint, nSequence=0)] + tx1b.vout = [CTxOut(0.001*COIN, CScript([b'a'*740000]))] + tx1b_hex = txToHex(tx1b) + + # Verify tx1b cannot replace tx1a. + try: + tx1b_txid = self.nodes[0].sendrawtransaction(tx1b_hex, True) + except JSONRPCException as exp: + assert_equal(exp.error['code'], -26) + else: + assert(False) + + # Use prioritisetransaction to set tx1a's fee to 0. + self.nodes[0].prioritisetransaction(tx1a_txid, 0, int(-0.1*COIN)) + + # Now tx1b should be able to replace tx1a + tx1b_txid = self.nodes[0].sendrawtransaction(tx1b_hex, True) + + assert(tx1b_txid in self.nodes[0].getrawmempool()) + + # 2. Check that absolute fee checks use modified fee. + tx1_outpoint = make_utxo(self.nodes[0], 1.1*COIN) + + tx2a = CTransaction() + tx2a.vin = [CTxIn(tx1_outpoint, nSequence=0)] + tx2a.vout = [CTxOut(1*COIN, CScript([b'a']))] + tx2a_hex = txToHex(tx2a) + tx2a_txid = self.nodes[0].sendrawtransaction(tx2a_hex, True) + + # Lower fee, but we'll prioritise it + tx2b = CTransaction() + tx2b.vin = [CTxIn(tx1_outpoint, nSequence=0)] + tx2b.vout = [CTxOut(1.01*COIN, CScript([b'a']))] + tx2b.rehash() + tx2b_hex = txToHex(tx2b) + + # Verify tx2b cannot replace tx2a. + try: + tx2b_txid = self.nodes[0].sendrawtransaction(tx2b_hex, True) + except JSONRPCException as exp: + assert_equal(exp.error['code'], -26) + else: + assert(False) + + # Now prioritise tx2b to have a higher modified fee + self.nodes[0].prioritisetransaction(tx2b.hash, 0, int(0.1*COIN)) + + # tx2b should now be accepted + tx2b_txid = self.nodes[0].sendrawtransaction(tx2b_hex, True) + + assert(tx2b_txid in self.nodes[0].getrawmempool()) + if __name__ == '__main__': ReplaceByFeeTest().main() diff --git a/qa/rpc-tests/sendheaders.py b/qa/rpc-tests/sendheaders.py index d7f4292090..e6e26dbce3 100755 --- a/qa/rpc-tests/sendheaders.py +++ b/qa/rpc-tests/sendheaders.py @@ -70,7 +70,6 @@ f. Announce 1 more header that builds on that fork. class BaseNode(NodeConnCB): def __init__(self): NodeConnCB.__init__(self) - self.create_callback_map() self.connection = None self.last_inv = None self.last_headers = None @@ -389,7 +388,7 @@ class SendHeadersTest(BitcoinTestFramework): # Use getblocks/getdata test_node.send_getblocks(locator = [fork_point]) - assert_equal(test_node.check_last_announcement(inv=new_block_hashes[0:-1]), True) + assert_equal(test_node.check_last_announcement(inv=new_block_hashes), True) test_node.get_data(new_block_hashes) test_node.wait_for_block(new_block_hashes[-1]) diff --git a/qa/rpc-tests/test_framework/comptool.py b/qa/rpc-tests/test_framework/comptool.py index e0b3ce040d..badbc0a1fb 100755 --- a/qa/rpc-tests/test_framework/comptool.py +++ b/qa/rpc-tests/test_framework/comptool.py @@ -41,17 +41,32 @@ def wait_until(predicate, attempts=float('inf'), timeout=float('inf')): return False +class RejectResult(object): + ''' + Outcome that expects rejection of a transaction or block. + ''' + def __init__(self, code, reason=''): + self.code = code + self.reason = reason + def match(self, other): + if self.code != other.code: + return False + return other.reason.startswith(self.reason) + def __repr__(self): + return '%i:%s' % (self.code,self.reason or '*') + class TestNode(NodeConnCB): def __init__(self, block_store, tx_store): NodeConnCB.__init__(self) - self.create_callback_map() self.conn = None self.bestblockhash = None self.block_store = block_store self.block_request_map = {} self.tx_store = tx_store self.tx_request_map = {} + self.block_reject_map = {} + self.tx_reject_map = {} # When the pingmap is non-empty we're waiting for # a response @@ -95,6 +110,12 @@ class TestNode(NodeConnCB): except KeyError: raise AssertionError("Got pong for unknown ping [%s]" % repr(message)) + def on_reject(self, conn, message): + if message.message == 'tx': + self.tx_reject_map[message.data] = RejectResult(message.code, message.reason) + if message.message == 'block': + self.block_reject_map[message.data] = RejectResult(message.code, message.reason) + def send_inv(self, obj): mtype = 2 if isinstance(obj, CBlock) else 1 self.conn.send_message(msg_inv([CInv(mtype, obj.sha256)])) @@ -244,6 +265,15 @@ class TestManager(object): if outcome is None: if c.cb.bestblockhash != self.connections[0].cb.bestblockhash: return False + elif isinstance(outcome, RejectResult): # Check that block was rejected w/ code + if c.cb.bestblockhash == blockhash: + return False + if blockhash not in c.cb.block_reject_map: + print 'Block not in reject map: %064x' % (blockhash) + return False + if not outcome.match(c.cb.block_reject_map[blockhash]): + print 'Block rejected with %s instead of expected %s: %064x' % (c.cb.block_reject_map[blockhash], outcome, blockhash) + return False elif ((c.cb.bestblockhash == blockhash) != outcome): # print c.cb.bestblockhash, blockhash, outcome return False @@ -263,6 +293,15 @@ class TestManager(object): if c.cb.lastInv != self.connections[0].cb.lastInv: # print c.rpc.getrawmempool() return False + elif isinstance(outcome, RejectResult): # Check that tx was rejected w/ code + if txhash in c.cb.lastInv: + return False + if txhash not in c.cb.tx_reject_map: + print 'Tx not in reject map: %064x' % (txhash) + return False + if not outcome.match(c.cb.tx_reject_map[txhash]): + print 'Tx rejected with %s instead of expected %s: %064x' % (c.cb.tx_reject_map[txhash], outcome, txhash) + return False elif ((txhash in c.cb.lastInv) != outcome): # print c.rpc.getrawmempool(), c.cb.lastInv return False diff --git a/qa/rpc-tests/test_framework/mininode.py b/qa/rpc-tests/test_framework/mininode.py index 64985d58e2..8e49b56565 100755 --- a/qa/rpc-tests/test_framework/mininode.py +++ b/qa/rpc-tests/test_framework/mininode.py @@ -36,6 +36,7 @@ MY_VERSION = 60001 # past bip-31 for ping/pong MY_SUBVERSION = "/python-mininode-tester:0.0.1/" MAX_INV_SZ = 50000 +MAX_BLOCK_SIZE = 1000000 # Keep our own socket map for asyncore, so that we can track disconnects # ourselves (to workaround an issue with closing an asyncore socket when @@ -1015,32 +1016,10 @@ class NodeConnCB(object): return time.sleep(0.05) - # Derived classes should call this function once to set the message map - # which associates the derived classes' functions to incoming messages - def create_callback_map(self): - self.cbmap = { - "version": self.on_version, - "verack": self.on_verack, - "addr": self.on_addr, - "alert": self.on_alert, - "inv": self.on_inv, - "getdata": self.on_getdata, - "getblocks": self.on_getblocks, - "tx": self.on_tx, - "block": self.on_block, - "getaddr": self.on_getaddr, - "ping": self.on_ping, - "pong": self.on_pong, - "headers": self.on_headers, - "getheaders": self.on_getheaders, - "reject": self.on_reject, - "mempool": self.on_mempool - } - def deliver(self, conn, message): with mininode_lock: try: - self.cbmap[message.command](conn, message) + getattr(self, 'on_' + message.command)(conn, message) except: print "ERROR delivering %s (%s)" % (repr(message), sys.exc_info()[0]) diff --git a/qa/rpc-tests/test_framework/script.py b/qa/rpc-tests/test_framework/script.py index 0a78cf6fb1..0088876028 100644 --- a/qa/rpc-tests/test_framework/script.py +++ b/qa/rpc-tests/test_framework/script.py @@ -226,7 +226,7 @@ OP_CHECKMULTISIGVERIFY = CScriptOp(0xaf) # expansion OP_NOP1 = CScriptOp(0xb0) -OP_NOP2 = CScriptOp(0xb1) +OP_CHECKLOCKTIMEVERIFY = CScriptOp(0xb1) OP_NOP3 = CScriptOp(0xb2) OP_NOP4 = CScriptOp(0xb3) OP_NOP5 = CScriptOp(0xb4) @@ -353,7 +353,7 @@ VALID_OPCODES = { OP_CHECKMULTISIGVERIFY, OP_NOP1, - OP_NOP2, + OP_CHECKLOCKTIMEVERIFY, OP_NOP3, OP_NOP4, OP_NOP5, @@ -472,7 +472,7 @@ OPCODE_NAMES.update({ OP_CHECKMULTISIG : 'OP_CHECKMULTISIG', OP_CHECKMULTISIGVERIFY : 'OP_CHECKMULTISIGVERIFY', OP_NOP1 : 'OP_NOP1', - OP_NOP2 : 'OP_NOP2', + OP_CHECKLOCKTIMEVERIFY : 'OP_CHECKLOCKTIMEVERIFY', OP_NOP3 : 'OP_NOP3', OP_NOP4 : 'OP_NOP4', OP_NOP5 : 'OP_NOP5', @@ -591,7 +591,7 @@ OPCODES_BY_NAME = { 'OP_CHECKMULTISIG' : OP_CHECKMULTISIG, 'OP_CHECKMULTISIGVERIFY' : OP_CHECKMULTISIGVERIFY, 'OP_NOP1' : OP_NOP1, - 'OP_NOP2' : OP_NOP2, + 'OP_CHECKLOCKTIMEVERIFY' : OP_CHECKLOCKTIMEVERIFY, 'OP_NOP3' : OP_NOP3, 'OP_NOP4' : OP_NOP4, 'OP_NOP5' : OP_NOP5, diff --git a/qa/rpc-tests/test_framework/test_framework.py b/qa/rpc-tests/test_framework/test_framework.py index ae2d91ab60..86d2f06df7 100755 --- a/qa/rpc-tests/test_framework/test_framework.py +++ b/qa/rpc-tests/test_framework/test_framework.py @@ -120,7 +120,7 @@ class BitcoinTestFramework(object): if self.options.coveragedir: enable_coverage(self.options.coveragedir) - os.environ['PATH'] = self.options.srcdir+":"+os.environ['PATH'] + os.environ['PATH'] = self.options.srcdir+":"+self.options.srcdir+"/qt:"+os.environ['PATH'] check_json_precision() diff --git a/qa/rpc-tests/test_framework/util.py b/qa/rpc-tests/test_framework/util.py index 147def46d2..83216fc737 100644 --- a/qa/rpc-tests/test_framework/util.py +++ b/qa/rpc-tests/test_framework/util.py @@ -107,6 +107,7 @@ def initialize_datadir(dirname, n): f.write("rpcpassword=rt\n"); f.write("port="+str(p2p_port(n))+"\n"); f.write("rpcport="+str(rpc_port(n))+"\n"); + f.write("listenonion=0\n"); return datadir def initialize_chain(test_dir): @@ -130,7 +131,7 @@ def initialize_chain(test_dir): # Create cache directories, run bitcoinds: for i in range(4): datadir=initialize_datadir("cache", i) - args = [ os.getenv("BITCOIND", "bitcoind"), "-keypool=1", "-datadir="+datadir, "-discover=0" ] + args = [ os.getenv("BITCOIND", "bitcoind"), "-server", "-keypool=1", "-datadir="+datadir, "-discover=0" ] if i > 0: args.append("-connect=127.0.0.1:"+str(p2p_port(0))) bitcoind_processes[i] = subprocess.Popen(args) @@ -218,7 +219,7 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary= if binary is None: binary = os.getenv("BITCOIND", "bitcoind") # RPC tests still depend on free transactions - args = [ binary, "-datadir="+datadir, "-keypool=1", "-discover=0", "-rest", "-blockprioritysize=50000" ] + args = [ binary, "-datadir="+datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-blockprioritysize=50000" ] if extra_args is not None: args.extend(extra_args) bitcoind_processes[i] = subprocess.Popen(args) devnull = open(os.devnull, "w") diff --git a/src/Makefile.am b/src/Makefile.am index bb627a5448..5da1a873de 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -117,7 +117,6 @@ BITCOIN_CORE_H = \ memusage.h \ merkleblock.h \ miner.h \ - mruset.h \ net.h \ netbase.h \ noui.h \ diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index e62003a513..a390d96a9f 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -3,37 +3,41 @@ EXTRA_LIBRARIES += qt/libbitcoinqt.a # bitcoin qt core # QT_TS = \ - qt/locale/bitcoin_ach.ts \ qt/locale/bitcoin_af_ZA.ts \ qt/locale/bitcoin_ar.ts \ qt/locale/bitcoin_be_BY.ts \ + qt/locale/bitcoin_bg_BG.ts \ qt/locale/bitcoin_bg.ts \ qt/locale/bitcoin_bs.ts \ qt/locale/bitcoin_ca_ES.ts \ qt/locale/bitcoin_ca.ts \ qt/locale/bitcoin_ca@valencia.ts \ - qt/locale/bitcoin_cmn.ts \ + qt/locale/bitcoin_cs_CZ.ts \ qt/locale/bitcoin_cs.ts \ qt/locale/bitcoin_cy.ts \ qt/locale/bitcoin_da.ts \ qt/locale/bitcoin_de.ts \ qt/locale/bitcoin_el_GR.ts \ + qt/locale/bitcoin_el.ts \ + qt/locale/bitcoin_en_GB.ts \ qt/locale/bitcoin_en.ts \ qt/locale/bitcoin_eo.ts \ qt/locale/bitcoin_es_CL.ts \ qt/locale/bitcoin_es_DO.ts \ + qt/locale/bitcoin_es_ES.ts \ qt/locale/bitcoin_es_MX.ts \ qt/locale/bitcoin_es.ts \ qt/locale/bitcoin_es_UY.ts \ + qt/locale/bitcoin_es_VE.ts \ qt/locale/bitcoin_et.ts \ qt/locale/bitcoin_eu_ES.ts \ qt/locale/bitcoin_fa_IR.ts \ qt/locale/bitcoin_fa.ts \ qt/locale/bitcoin_fi.ts \ qt/locale/bitcoin_fr_CA.ts \ + qt/locale/bitcoin_fr_FR.ts \ qt/locale/bitcoin_fr.ts \ qt/locale/bitcoin_gl.ts \ - qt/locale/bitcoin_gu_IN.ts \ qt/locale/bitcoin_he.ts \ qt/locale/bitcoin_hi_IN.ts \ qt/locale/bitcoin_hr.ts \ @@ -48,6 +52,7 @@ QT_TS = \ qt/locale/bitcoin_la.ts \ qt/locale/bitcoin_lt.ts \ qt/locale/bitcoin_lv_LV.ts \ + qt/locale/bitcoin_mk_MK.ts \ qt/locale/bitcoin_mn.ts \ qt/locale/bitcoin_ms_MY.ts \ qt/locale/bitcoin_nb.ts \ @@ -57,14 +62,15 @@ QT_TS = \ qt/locale/bitcoin_pt_BR.ts \ qt/locale/bitcoin_pt_PT.ts \ qt/locale/bitcoin_ro_RO.ts \ + qt/locale/bitcoin_ru_RU.ts \ qt/locale/bitcoin_ru.ts \ - qt/locale/bitcoin_sah.ts \ qt/locale/bitcoin_sk.ts \ qt/locale/bitcoin_sl_SI.ts \ qt/locale/bitcoin_sq.ts \ qt/locale/bitcoin_sr.ts \ qt/locale/bitcoin_sv.ts \ qt/locale/bitcoin_th_TH.ts \ + qt/locale/bitcoin_tr_TR.ts \ qt/locale/bitcoin_tr.ts \ qt/locale/bitcoin_uk.ts \ qt/locale/bitcoin_ur_PK.ts \ @@ -72,7 +78,7 @@ QT_TS = \ qt/locale/bitcoin_vi.ts \ qt/locale/bitcoin_vi_VN.ts \ qt/locale/bitcoin_zh_CN.ts \ - qt/locale/bitcoin_zh_HK.ts \ + qt/locale/bitcoin_zh.ts \ qt/locale/bitcoin_zh_TW.ts QT_FORMS_UI = \ diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 4d0894b711..d89132f806 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -59,7 +59,6 @@ BITCOIN_TESTS =\ test/mempool_tests.cpp \ test/merkle_tests.cpp \ test/miner_tests.cpp \ - test/mruset_tests.cpp \ test/multisig_tests.cpp \ test/netbase_tests.cpp \ test/pmt_tests.cpp \ diff --git a/src/alert.cpp b/src/alert.cpp index 91e54a9178..b705069407 100644 --- a/src/alert.cpp +++ b/src/alert.cpp @@ -138,7 +138,7 @@ bool CAlert::RelayTo(CNode* pnode) const AppliesToMe() || GetAdjustedTime() < nRelayUntil) { - pnode->PushMessage("alert", *this); + pnode->PushMessage(NetMsgType::ALERT, *this); return true; } } diff --git a/src/amount.h b/src/amount.h index a4c7764cda..a2e4a59d1f 100644 --- a/src/amount.h +++ b/src/amount.h @@ -30,7 +30,7 @@ extern const std::string CURRENCY_UNIT; static const CAmount MAX_MONEY = 21000000 * COIN; inline bool MoneyRange(const CAmount& nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } -/** Type-safe wrapper class to for fee rates +/** Type-safe wrapper class for fee rates * (how much to pay based on transaction size) */ class CFeeRate diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 58ced1ade9..2fa91e4e77 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -34,7 +34,7 @@ std::string HelpMessageCli() strUsage += HelpMessageOpt("-datadir=<dir>", _("Specify data directory")); AppendParamsHelpMessages(strUsage); strUsage += HelpMessageOpt("-rpcconnect=<ip>", strprintf(_("Send commands to node running on <ip> (default: %s)"), DEFAULT_RPCCONNECT)); - strUsage += HelpMessageOpt("-rpcport=<port>", strprintf(_("Connect to JSON-RPC on <port> (default: %u or testnet: %u)"), 8332, 18332)); + strUsage += HelpMessageOpt("-rpcport=<port>", strprintf(_("Connect to JSON-RPC on <port> (default: %u or testnet: %u)"), BaseParams(CBaseChainParams::MAIN).RPCPort(), BaseParams(CBaseChainParams::TESTNET).RPCPort())); strUsage += HelpMessageOpt("-rpcwait", _("Wait for RPC server to start")); strUsage += HelpMessageOpt("-rpcuser=<user>", _("Username for JSON-RPC connections")); strUsage += HelpMessageOpt("-rpcpassword=<pw>", _("Password for JSON-RPC connections")); diff --git a/src/bloom.cpp b/src/bloom.cpp index de87206592..4bda2bbce4 100644 --- a/src/bloom.cpp +++ b/src/bloom.cpp @@ -216,30 +216,54 @@ void CBloomFilter::UpdateEmptyFull() isEmpty = empty; } -CRollingBloomFilter::CRollingBloomFilter(unsigned int nElements, double fpRate) : - b1(nElements * 2, fpRate, 0), b2(nElements * 2, fpRate, 0) +CRollingBloomFilter::CRollingBloomFilter(unsigned int nElements, double fpRate) { - // Implemented using two bloom filters of 2 * nElements each. - // We fill them up, and clear them, staggered, every nElements - // inserted, so at least one always contains the last nElements - // inserted. - nInsertions = 0; - nBloomSize = nElements * 2; - + double logFpRate = log(fpRate); + /* The optimal number of hash functions is log(fpRate) / log(0.5), but + * restrict it to the range 1-50. */ + nHashFuncs = std::max(1, std::min((int)round(logFpRate / log(0.5)), 50)); + /* In this rolling bloom filter, we'll store between 2 and 3 generations of nElements / 2 entries. */ + nEntriesPerGeneration = (nElements + 1) / 2; + uint32_t nMaxElements = nEntriesPerGeneration * 3; + /* The maximum fpRate = pow(1.0 - exp(-nHashFuncs * nMaxElements / nFilterBits), nHashFuncs) + * => pow(fpRate, 1.0 / nHashFuncs) = 1.0 - exp(-nHashFuncs * nMaxElements / nFilterBits) + * => 1.0 - pow(fpRate, 1.0 / nHashFuncs) = exp(-nHashFuncs * nMaxElements / nFilterBits) + * => log(1.0 - pow(fpRate, 1.0 / nHashFuncs)) = -nHashFuncs * nMaxElements / nFilterBits + * => nFilterBits = -nHashFuncs * nMaxElements / log(1.0 - pow(fpRate, 1.0 / nHashFuncs)) + * => nFilterBits = -nHashFuncs * nMaxElements / log(1.0 - exp(logFpRate / nHashFuncs)) + */ + uint32_t nFilterBits = (uint32_t)ceil(-1.0 * nHashFuncs * nMaxElements / log(1.0 - exp(logFpRate / nHashFuncs))); + data.clear(); + /* We store up to 16 'bits' per data element. */ + data.resize((nFilterBits + 15) / 16); reset(); } +/* Similar to CBloomFilter::Hash */ +inline unsigned int CRollingBloomFilter::Hash(unsigned int nHashNum, const std::vector<unsigned char>& vDataToHash) const { + return MurmurHash3(nHashNum * 0xFBA4C795 + nTweak, vDataToHash) % (data.size() * 16); +} + void CRollingBloomFilter::insert(const std::vector<unsigned char>& vKey) { - if (nInsertions == 0) { - b1.clear(); - } else if (nInsertions == nBloomSize / 2) { - b2.clear(); + if (nEntriesThisGeneration == nEntriesPerGeneration) { + nEntriesThisGeneration = 0; + nGeneration++; + if (nGeneration == 4) { + nGeneration = 1; + } + /* Wipe old entries that used this generation number. */ + for (uint32_t p = 0; p < data.size() * 16; p++) { + if (get(p) == nGeneration) { + put(p, 0); + } + } } - b1.insert(vKey); - b2.insert(vKey); - if (++nInsertions == nBloomSize) { - nInsertions = 0; + nEntriesThisGeneration++; + + for (int n = 0; n < nHashFuncs; n++) { + uint32_t h = Hash(n, vKey); + put(h, nGeneration); } } @@ -251,10 +275,13 @@ void CRollingBloomFilter::insert(const uint256& hash) bool CRollingBloomFilter::contains(const std::vector<unsigned char>& vKey) const { - if (nInsertions < nBloomSize / 2) { - return b2.contains(vKey); + for (int n = 0; n < nHashFuncs; n++) { + uint32_t h = Hash(n, vKey); + if (get(h) == 0) { + return false; + } } - return b1.contains(vKey); + return true; } bool CRollingBloomFilter::contains(const uint256& hash) const @@ -265,8 +292,10 @@ bool CRollingBloomFilter::contains(const uint256& hash) const void CRollingBloomFilter::reset() { - unsigned int nNewTweak = GetRand(std::numeric_limits<unsigned int>::max()); - b1.reset(nNewTweak); - b2.reset(nNewTweak); - nInsertions = 0; + nTweak = GetRand(std::numeric_limits<unsigned int>::max()); + nEntriesThisGeneration = 0; + nGeneration = 1; + for (std::vector<uint32_t>::iterator it = data.begin(); it != data.end(); it++) { + *it = 0; + } } diff --git a/src/bloom.h b/src/bloom.h index a4dba8cb4f..98cfbdb833 100644 --- a/src/bloom.h +++ b/src/bloom.h @@ -110,8 +110,11 @@ public: * reset() is provided, which also changes nTweak to decrease the impact of * false-positives. * - * contains(item) will always return true if item was one of the last N things + * contains(item) will always return true if item was one of the last N to 1.5*N * insert()'ed ... but may also return true for items that were not inserted. + * + * It needs around 1.8 bytes per element per factor 0.1 of false positive rate. + * (More accurately: 3/(log(256)*log(2)) * log(1/fpRate) * nElements bytes) */ class CRollingBloomFilter { @@ -129,10 +132,23 @@ public: void reset(); private: - unsigned int nBloomSize; - unsigned int nInsertions; - CBloomFilter b1, b2; -}; + int nEntriesPerGeneration; + int nEntriesThisGeneration; + int nGeneration; + std::vector<uint32_t> data; + unsigned int nTweak; + int nHashFuncs; + + unsigned int Hash(unsigned int nHashNum, const std::vector<unsigned char>& vDataToHash) const; + inline int get(uint32_t position) const { + return (data[(position >> 4) % data.size()] >> (2 * (position & 0xF))) & 0x3; + } + + inline void put(uint32_t position, uint32_t val) { + uint32_t& cell = data[(position >> 4) % data.size()]; + cell = (cell & ~(((uint32_t)3) << (2 * (position & 0xF)))) | (val << (2 * (position & 0xF))); + } +}; #endif // BITCOIN_BLOOM_H diff --git a/src/chainparams.cpp b/src/chainparams.cpp index a46866a2be..abeaaf927c 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -179,7 +179,6 @@ public: vFixedSeeds.clear(); vSeeds.clear(); - vSeeds.push_back(CDNSSeedData("alexykot.me", "testnet-seed.alexykot.me")); vSeeds.push_back(CDNSSeedData("bitcoin.petertodd.org", "testnet-seed.bitcoin.petertodd.org")); vSeeds.push_back(CDNSSeedData("bluematt.me", "testnet-seed.bluematt.me")); vSeeds.push_back(CDNSSeedData("bitcoin.schildbach.de", "testnet-seed.bitcoin.schildbach.de")); diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index db2dc751f5..bc64cdc5d9 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -65,19 +65,6 @@ public: }; static CBaseRegTestParams regTestParams; -/* - * Unit test - */ -class CBaseUnitTestParams : public CBaseMainParams -{ -public: - CBaseUnitTestParams() - { - strDataDir = "unittest"; - } -}; -static CBaseUnitTestParams unitTestParams; - static CBaseChainParams* pCurrentBaseParams = 0; const CBaseChainParams& BaseParams() @@ -86,18 +73,23 @@ const CBaseChainParams& BaseParams() return *pCurrentBaseParams; } -void SelectBaseParams(const std::string& chain) +CBaseChainParams& BaseParams(const std::string& chain) { if (chain == CBaseChainParams::MAIN) - pCurrentBaseParams = &mainParams; + return mainParams; else if (chain == CBaseChainParams::TESTNET) - pCurrentBaseParams = &testNetParams; + return testNetParams; else if (chain == CBaseChainParams::REGTEST) - pCurrentBaseParams = ®TestParams; + return regTestParams; else throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); } +void SelectBaseParams(const std::string& chain) +{ + pCurrentBaseParams = &BaseParams(chain); +} + std::string ChainNameFromCommandLine() { bool fRegTest = GetBoolArg("-regtest", false); diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index 095c4cbdcb..9c3e9a0ebf 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -42,6 +42,8 @@ void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp=true); */ const CBaseChainParams& BaseParams(); +CBaseChainParams& BaseParams(const std::string& chain); + /** Sets the params returned by Params() to those for the given network. */ void SelectBaseParams(const std::string& chain); diff --git a/src/clientversion.h b/src/clientversion.h index 5a06b310a3..cd947a9761 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -15,7 +15,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 -#define CLIENT_VERSION_MINOR 11 +#define CLIENT_VERSION_MINOR 12 #define CLIENT_VERSION_REVISION 99 #define CLIENT_VERSION_BUILD 0 diff --git a/src/coins.cpp b/src/coins.cpp index 723e114708..122bf4e48d 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -144,6 +144,11 @@ bool CCoinsViewCache::HaveCoins(const uint256 &txid) const { return (it != cacheCoins.end() && !it->second.coins.vout.empty()); } +bool CCoinsViewCache::HaveCoinsInCache(const uint256 &txid) const { + CCoinsMap::const_iterator it = cacheCoins.find(txid); + return it != cacheCoins.end(); +} + uint256 CCoinsViewCache::GetBestBlock() const { if (hashBlock.IsNull()) hashBlock = base->GetBestBlock(); @@ -206,6 +211,15 @@ bool CCoinsViewCache::Flush() { return fOk; } +void CCoinsViewCache::Uncache(const uint256& hash) +{ + CCoinsMap::iterator it = cacheCoins.find(hash); + if (it != cacheCoins.end() && it->second.flags == 0) { + cachedCoinsUsage -= it->second.coins.DynamicMemoryUsage(); + cacheCoins.erase(it); + } +} + unsigned int CCoinsViewCache::GetCacheSize() const { return cacheCoins.size(); } diff --git a/src/coins.h b/src/coins.h index d174422100..60c1ba8a78 100644 --- a/src/coins.h +++ b/src/coins.h @@ -406,6 +406,13 @@ public: bool BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock); /** + * Check if we have the given tx already loaded in this cache. + * The semantics are the same as HaveCoins(), but no calls to + * the backing CCoinsView are made. + */ + bool HaveCoinsInCache(const uint256 &txid) const; + + /** * Return a pointer to CCoins in the cache, or NULL if not found. This is * more efficient than GetCoins. Modifications to other cache entries are * allowed while accessing the returned pointer. @@ -437,6 +444,12 @@ public: */ bool Flush(); + /** + * Removes the transaction with the given hash from the cache, if it is + * not modified. + */ + void Uncache(const uint256 &txid); + //! Calculate the size of the cache (in number of transactions) unsigned int GetCacheSize() const; diff --git a/src/init.cpp b/src/init.cpp index c36cf9efbc..645c8f94b1 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -491,7 +491,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += HelpMessageOpt("-rpcuser=<user>", _("Username for JSON-RPC connections")); strUsage += HelpMessageOpt("-rpcpassword=<pw>", _("Password for JSON-RPC connections")); strUsage += HelpMessageOpt("-rpcauth=<userpw>", _("Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times")); - strUsage += HelpMessageOpt("-rpcport=<port>", strprintf(_("Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)"), 8332, 18332)); + strUsage += HelpMessageOpt("-rpcport=<port>", strprintf(_("Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)"), BaseParams(CBaseChainParams::MAIN).RPCPort(), BaseParams(CBaseChainParams::TESTNET).RPCPort())); strUsage += HelpMessageOpt("-rpcallowip=<ip>", _("Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times")); strUsage += HelpMessageOpt("-rpcthreads=<n>", strprintf(_("Set the number of threads to service RPC calls (default: %d)"), DEFAULT_HTTP_THREADS)); if (showDebug) { diff --git a/src/main.cpp b/src/main.cpp index e9e9820434..8f3cea64ac 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,8 +84,8 @@ struct COrphanTx { CTransaction tx; NodeId fromPeer; }; -map<uint256, COrphanTx> mapOrphanTransactions GUARDED_BY(cs_main);; -map<uint256, set<uint256> > mapOrphanTransactionsByPrev GUARDED_BY(cs_main);; +map<uint256, COrphanTx> mapOrphanTransactions GUARDED_BY(cs_main); +map<uint256, set<uint256> > mapOrphanTransactionsByPrev GUARDED_BY(cs_main); void EraseOrphansFor(NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(cs_main); /** @@ -134,9 +134,9 @@ namespace { set<CBlockIndex*, CBlockIndexWorkComparator> setBlockIndexCandidates; /** Number of nodes with fSyncStarted. */ int nSyncStarted = 0; - /** All pairs A->B, where A (or one if its ancestors) misses transactions, but B has transactions. - * Pruned nodes may have entries where B is missing data. - */ + /** All pairs A->B, where A (or one of its ancestors) misses transactions, but B has transactions. + * Pruned nodes may have entries where B is missing data. + */ multimap<CBlockIndex*, CBlockIndex*> mapBlocksUnlinked; CCriticalSection cs_LastBlockFile; @@ -181,7 +181,7 @@ namespace { * million to make it highly unlikely for users to have issues with this * filter. * - * Memory used: 1.7MB + * Memory used: 1.3 MB */ boost::scoped_ptr<CRollingBloomFilter> recentRejects; uint256 hashRecentRejectsChainTip; @@ -789,30 +789,15 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state) return true; } -CAmount GetMinRelayFee(const CTransaction& tx, const CTxMemPool& pool, unsigned int nBytes, bool fAllowFree) -{ - uint256 hash = tx.GetHash(); - double dPriorityDelta = 0; - CAmount nFeeDelta = 0; - pool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta); - if (dPriorityDelta > 0 || nFeeDelta > 0) - return 0; - - CAmount nMinFee = ::minRelayTxFee.GetFee(nBytes); +void LimitMempoolSize(CTxMemPool& pool, size_t limit, unsigned long age) { + int expired = pool.Expire(GetTime() - age); + if (expired != 0) + LogPrint("mempool", "Expired %i transactions from the memory pool\n", expired); - if (fAllowFree) - { - // There is a free transaction area in blocks created by most miners, - // * If we are relaying we allow transactions up to DEFAULT_BLOCK_PRIORITY_SIZE - 1000 - // to be considered to fall into this category. We don't want to encourage sending - // multiple transactions instead of one big transaction to avoid fees. - if (nBytes < (DEFAULT_BLOCK_PRIORITY_SIZE - 1000)) - nMinFee = 0; - } - - if (!MoneyRange(nMinFee)) - nMinFee = MAX_MONEY; - return nMinFee; + std::vector<uint256> vNoSpendsRemaining; + pool.TrimToSize(limit, &vNoSpendsRemaining); + BOOST_FOREACH(const uint256& removed, vNoSpendsRemaining) + pcoinsTip->Uncache(removed); } /** Convert CValidationState to a human-readable message for logging */ @@ -824,8 +809,9 @@ std::string FormatStateMessage(const CValidationState &state) state.GetRejectCode()); } -bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransaction &tx, bool fLimitFree, - bool* pfMissingInputs, bool fOverrideMempoolLimit, bool fRejectAbsurdFee) +bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState &state, const CTransaction &tx, bool fLimitFree, + bool* pfMissingInputs, bool fOverrideMempoolLimit, bool fRejectAbsurdFee, + std::vector<uint256>& vHashTxnToUncache) { AssertLockHeld(cs_main); if (pfMissingInputs) @@ -906,13 +892,19 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa view.SetBackend(viewMemPool); // do we already have it? - if (view.HaveCoins(hash)) + bool fHadTxInCache = pcoinsTip->HaveCoinsInCache(hash); + if (view.HaveCoins(hash)) { + if (!fHadTxInCache) + vHashTxnToUncache.push_back(hash); return state.Invalid(false, REJECT_ALREADY_KNOWN, "txn-already-known"); + } // do all inputs exist? // Note that this does not check for the presence of actual outputs (see the next check for that), // and only helps with filling in pfMissingInputs (to determine missing vs spent). BOOST_FOREACH(const CTxIn txin, tx.vin) { + if (!pcoinsTip->HaveCoinsInCache(txin.prevout.hash)) + vHashTxnToUncache.push_back(txin.prevout.hash); if (!view.HaveCoins(txin.prevout.hash)) { if (pfMissingInputs) *pfMissingInputs = true; @@ -950,6 +942,11 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa CAmount nValueOut = tx.GetValueOut(); CAmount nFees = nValueIn-nValueOut; + // nModifiedFees includes any fee deltas from PrioritiseTransaction + CAmount nModifiedFees = nFees; + double nPriorityDummy = 0; + pool.ApplyDeltas(hash, nPriorityDummy, nModifiedFees); + CAmount inChainInputValue; double dPriority = view.GetPriority(tx, chainActive.Height(), inChainInputValue); @@ -967,16 +964,10 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa CTxMemPoolEntry entry(tx, nFees, GetTime(), dPriority, chainActive.Height(), pool.HasNoInputsOf(tx), inChainInputValue, fSpendsCoinbase, nSigOps); unsigned int nSize = entry.GetTxSize(); - // Don't accept it if it can't get into a block - CAmount txMinFee = GetMinRelayFee(tx, pool, nSize, true); - if (fLimitFree && nFees < txMinFee) - return state.DoS(0, false, REJECT_INSUFFICIENTFEE, "insufficient fee", false, - strprintf("%d < %d", nFees, txMinFee)); - CAmount mempoolRejectFee = pool.GetMinFee(GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000).GetFee(nSize); - if (mempoolRejectFee > 0 && nFees < mempoolRejectFee) { + if (mempoolRejectFee > 0 && nModifiedFees < mempoolRejectFee) { return state.DoS(0, false, REJECT_INSUFFICIENTFEE, "mempool min fee not met", false, strprintf("%d < %d", nFees, mempoolRejectFee)); - } else if (GetBoolArg("-relaypriority", DEFAULT_RELAYPRIORITY) && nFees < ::minRelayTxFee.GetFee(nSize) && !AllowFree(entry.GetPriority(chainActive.Height() + 1))) { + } else if (GetBoolArg("-relaypriority", DEFAULT_RELAYPRIORITY) && nModifiedFees < ::minRelayTxFee.GetFee(nSize) && !AllowFree(entry.GetPriority(chainActive.Height() + 1))) { // Require that free transactions have sufficient priority to be mined in the next block. return state.DoS(0, false, REJECT_INSUFFICIENTFEE, "insufficient priority"); } @@ -984,7 +975,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa // Continuously rate-limit free (really, very-low-fee) transactions // This mitigates 'penny-flooding' -- sending thousands of free transactions just to // be annoying or make others' transactions take longer to confirm. - if (fLimitFree && nFees < ::minRelayTxFee.GetFee(nSize)) + if (fLimitFree && nModifiedFees < ::minRelayTxFee.GetFee(nSize)) { static CCriticalSection csFreeLimiter; static double dFreeCount; @@ -1049,7 +1040,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa LOCK(pool.cs); if (setConflicts.size()) { - CFeeRate newFeeRate(nFees, nSize); + CFeeRate newFeeRate(nModifiedFees, nSize); set<uint256> setConflictsParents; const int maxDescendantsToVisit = 100; CTxMemPool::setEntries setIterConflicting; @@ -1092,7 +1083,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa // ignored when deciding whether or not to replace, we do // require the replacement to pay more overall fees too, // mitigating most cases. - CFeeRate oldFeeRate(mi->GetFee(), mi->GetTxSize()); + CFeeRate oldFeeRate(mi->GetModifiedFee(), mi->GetTxSize()); if (newFeeRate <= oldFeeRate) { return state.DoS(0, @@ -1120,7 +1111,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa pool.CalculateDescendants(it, allConflicting); } BOOST_FOREACH(CTxMemPool::txiter it, allConflicting) { - nConflictingFees += it->GetFee(); + nConflictingFees += it->GetModifiedFee(); nConflictingSize += it->GetTxSize(); } } else { @@ -1153,16 +1144,16 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa // The replacement must pay greater fees than the transactions it // replaces - if we did the bandwidth used by those conflicting // transactions would not be paid for. - if (nFees < nConflictingFees) + if (nModifiedFees < nConflictingFees) { return state.DoS(0, error("AcceptToMemoryPool: rejecting replacement %s, less fees than conflicting txs; %s < %s", - hash.ToString(), FormatMoney(nFees), FormatMoney(nConflictingFees)), + hash.ToString(), FormatMoney(nModifiedFees), FormatMoney(nConflictingFees)), REJECT_INSUFFICIENTFEE, "insufficient fee"); } // Finally in addition to paying more fees than the conflicts the // new transaction must pay for its own bandwidth. - CAmount nDeltaFees = nFees - nConflictingFees; + CAmount nDeltaFees = nModifiedFees - nConflictingFees; if (nDeltaFees < ::minRelayTxFee.GetFee(nSize)) { return state.DoS(0, @@ -1200,7 +1191,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa LogPrint("mempool", "replacing tx %s with %s for %s BTC additional fees, %d delta bytes\n", it->GetTx().GetHash().ToString(), hash.ToString(), - FormatMoney(nFees - nConflictingFees), + FormatMoney(nModifiedFees - nConflictingFees), (int)nSize - (int)nConflictingSize); } pool.RemoveStaged(allConflicting); @@ -1210,12 +1201,8 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa // trim mempool and check if tx was trimmed if (!fOverrideMempoolLimit) { - int expired = pool.Expire(GetTime() - GetArg("-mempoolexpiry", DEFAULT_MEMPOOL_EXPIRY) * 60 * 60); - if (expired != 0) - LogPrint("mempool", "Expired %i transactions from the memory pool\n", expired); - - pool.TrimToSize(GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000); - if (!pool.exists(tx.GetHash())) + LimitMempoolSize(pool, GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000, GetArg("-mempoolexpiry", DEFAULT_MEMPOOL_EXPIRY) * 60 * 60); + if (!pool.exists(hash)) return state.DoS(0, false, REJECT_INSUFFICIENTFEE, "mempool full"); } } @@ -1225,6 +1212,18 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa return true; } +bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransaction &tx, bool fLimitFree, + bool* pfMissingInputs, bool fOverrideMempoolLimit, bool fRejectAbsurdFee) +{ + std::vector<uint256> vHashTxToUncache; + bool res = AcceptToMemoryPoolWorker(pool, state, tx, fLimitFree, pfMissingInputs, fOverrideMempoolLimit, fRejectAbsurdFee, vHashTxToUncache); + if (!res) { + BOOST_FOREACH(const uint256& hashTx, vHashTxToUncache) + pcoinsTip->Uncache(hashTx); + } + return res; +} + /** Return transaction in tx, and if it was found inside a block, its hash is placed in hashBlock */ bool GetTransaction(const uint256 &hash, CTransaction &txOut, const Consensus::Params& consensusParams, uint256 &hashBlock, bool fAllowSlow) { @@ -1654,9 +1653,9 @@ bool CheckInputs(const CTransaction& tx, CValidationState &state, const CCoinsVi // arguments; if so, don't trigger DoS protection to // avoid splitting the network between upgraded and // non-upgraded nodes. - CScriptCheck check(*coins, tx, i, + CScriptCheck check2(*coins, tx, i, flags & ~STANDARD_NOT_MANDATORY_VERIFY_FLAGS, cacheStore); - if (check()) + if (check2()) return state.Invalid(false, REJECT_NONSTANDARD, strprintf("non-mandatory-script-verify-flag (%s)", ScriptErrorString(check.GetScriptError()))); } // Failures of other flags indicate a transaction that is @@ -1919,8 +1918,8 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const // How likely is it to find that many by chance? double p = boost::math::pdf(poisson, nBlocks); - LogPrint("partitioncheck", "%s : Found %d blocks in the last %d hours\n", __func__, nBlocks, SPAN_HOURS); - LogPrint("partitioncheck", "%s : likelihood: %g\n", __func__, p); + LogPrint("partitioncheck", "%s: Found %d blocks in the last %d hours\n", __func__, nBlocks, SPAN_HOURS); + LogPrint("partitioncheck", "%s: likelihood: %g\n", __func__, p); // Aim for one false-positive about every fifty years of normal running: const int FIFTY_YEARS = 50*365*24*60*60; @@ -2571,7 +2570,7 @@ static bool ActivateBestChainStep(CValidationState& state, const CChainParams& c if (fBlocksDisconnected) { mempool.removeForReorg(pcoinsTip, chainActive.Tip()->nHeight + 1, STANDARD_LOCKTIME_VERIFY_FLAGS); - mempool.TrimToSize(GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000); + LimitMempoolSize(mempool, GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000, GetArg("-mempoolexpiry", DEFAULT_MEMPOOL_EXPIRY) * 60 * 60); } mempool.check(pcoinsTip); @@ -2686,7 +2685,7 @@ bool InvalidateBlock(CValidationState& state, const Consensus::Params& consensus } } - mempool.TrimToSize(GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000); + LimitMempoolSize(mempool, GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000, GetArg("-mempoolexpiry", DEFAULT_MEMPOOL_EXPIRY) * 60 * 60); // The resulting new best tip may not be in setBlockIndexCandidates anymore, so // add it again. @@ -3021,7 +3020,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta // Reject block.nVersion=2 blocks when 95% (75% on testnet) of the network has upgraded: if (block.nVersion < 3 && IsSuperMajority(3, pindexPrev, consensusParams.nMajorityRejectBlockOutdated, consensusParams)) - return state.Invalid(error("%s : rejected nVersion=2 block", __func__), + return state.Invalid(error("%s: rejected nVersion=2 block", __func__), REJECT_OBSOLETE, "bad-version"); // Reject block.nVersion=3 blocks when 95% (75% on testnet) of the network has upgraded: @@ -4145,14 +4144,14 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam if (!ReadBlockFromDisk(block, (*mi).second, consensusParams)) assert(!"cannot load block from disk"); if (inv.type == MSG_BLOCK) - pfrom->PushMessage("block", block); + pfrom->PushMessage(NetMsgType::BLOCK, block); else // MSG_FILTERED_BLOCK) { LOCK(pfrom->cs_filter); if (pfrom->pfilter) { CMerkleBlock merkleBlock(block, *pfrom->pfilter); - pfrom->PushMessage("merkleblock", merkleBlock); + pfrom->PushMessage(NetMsgType::MERKLEBLOCK, merkleBlock); // CMerkleBlock just contains hashes, so also push any transactions in the block the client did not see // This avoids hurting performance by pointlessly requiring a round-trip // Note that there is currently no way for a node to request any single transactions we didn't send here - @@ -4161,8 +4160,7 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam // however we MUST always provide at least what the remote peer needs typedef std::pair<unsigned int, uint256> PairType; BOOST_FOREACH(PairType& pair, merkleBlock.vMatchedTxn) - if (!pfrom->setInventoryKnown.count(CInv(MSG_TX, pair.second))) - pfrom->PushMessage("tx", block.vtx[pair.first]); + pfrom->PushMessage(NetMsgType::TX, block.vtx[pair.first]); } // else // no response @@ -4176,7 +4174,7 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam // wait for other stuff first. vector<CInv> vInv; vInv.push_back(CInv(MSG_BLOCK, chainActive.Tip()->GetBlockHash())); - pfrom->PushMessage("inv", vInv); + pfrom->PushMessage(NetMsgType::INV, vInv); pfrom->hashContinue.SetNull(); } } @@ -4199,7 +4197,7 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam CDataStream ss(SER_NETWORK, PROTOCOL_VERSION); ss.reserve(1000); ss << tx; - pfrom->PushMessage("tx", ss); + pfrom->PushMessage(NetMsgType::TX, ss); pushed = true; } } @@ -4226,7 +4224,7 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam // do that because they want to know about (and store and rebroadcast and // risk analyze) the dependencies of transactions relevant to them, without // having to download the entire memory pool. - pfrom->PushMessage("notfound", vNotFound); + pfrom->PushMessage(NetMsgType::NOTFOUND, vNotFound); } } @@ -4243,9 +4241,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, if (!(nLocalServices & NODE_BLOOM) && - (strCommand == "filterload" || - strCommand == "filteradd" || - strCommand == "filterclear")) + (strCommand == NetMsgType::FILTERLOAD || + strCommand == NetMsgType::FILTERADD || + strCommand == NetMsgType::FILTERCLEAR)) { if (pfrom->nVersion >= NO_BLOOM_VERSION) { Misbehaving(pfrom->GetId(), 100); @@ -4257,12 +4255,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - if (strCommand == "version") + if (strCommand == NetMsgType::VERSION) { // Each connection can only send one version message if (pfrom->nVersion != 0) { - pfrom->PushMessage("reject", strCommand, REJECT_DUPLICATE, string("Duplicate version message")); + pfrom->PushMessage(NetMsgType::REJECT, strCommand, REJECT_DUPLICATE, string("Duplicate version message")); Misbehaving(pfrom->GetId(), 1); return false; } @@ -4276,7 +4274,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, { // disconnect from peers older than this proto version LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, pfrom->nVersion); - pfrom->PushMessage("reject", strCommand, REJECT_OBSOLETE, + pfrom->PushMessage(NetMsgType::REJECT, strCommand, REJECT_OBSOLETE, strprintf("Version must be %d or greater", MIN_PEER_PROTO_VERSION)); pfrom->fDisconnect = true; return false; @@ -4321,7 +4319,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, UpdatePreferredDownload(pfrom, State(pfrom->GetId())); // Change version - pfrom->PushMessage("verack"); + pfrom->PushMessage(NetMsgType::VERACK); pfrom->ssSend.SetVersion(min(pfrom->nVersion, PROTOCOL_VERSION)); if (!pfrom->fInbound) @@ -4344,7 +4342,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // Get recent addresses if (pfrom->fOneShot || pfrom->nVersion >= CADDR_TIME_VERSION || addrman.size() < 1000) { - pfrom->PushMessage("getaddr"); + pfrom->PushMessage(NetMsgType::GETADDR); pfrom->fGetAddr = true; } addrman.Good(pfrom->addr); @@ -4388,7 +4386,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "verack") + else if (strCommand == NetMsgType::VERACK) { pfrom->SetRecvVersion(min(pfrom->nVersion, PROTOCOL_VERSION)); @@ -4403,12 +4401,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // We send this to non-NODE NETWORK peers as well, because even // non-NODE NETWORK peers can announce blocks (such as pruning // nodes) - pfrom->PushMessage("sendheaders"); + pfrom->PushMessage(NetMsgType::SENDHEADERS); } } - else if (strCommand == "addr") + else if (strCommand == NetMsgType::ADDR) { vector<CAddress> vAddr; vRecv >> vAddr; @@ -4474,14 +4472,14 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, pfrom->fDisconnect = true; } - else if (strCommand == "sendheaders") + else if (strCommand == NetMsgType::SENDHEADERS) { LOCK(cs_main); State(pfrom->GetId())->fPreferHeaders = true; } - else if (strCommand == "inv") + else if (strCommand == NetMsgType::INV) { vector<CInv> vInv; vRecv >> vInv; @@ -4522,7 +4520,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // time the block arrives, the header chain leading up to it is already validated. Not // doing this will result in the received block being rejected as an orphan in case it is // not a direct successor. - pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash); + pfrom->PushMessage(NetMsgType::GETHEADERS, chainActive.GetLocator(pindexBestHeader), inv.hash); CNodeState *nodestate = State(pfrom->GetId()); if (CanDirectFetch(chainparams.GetConsensus()) && nodestate->nBlocksInFlight < MAX_BLOCKS_IN_TRANSIT_PER_PEER) { @@ -4552,11 +4550,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } if (!vToFetch.empty()) - pfrom->PushMessage("getdata", vToFetch); + pfrom->PushMessage(NetMsgType::GETDATA, vToFetch); } - else if (strCommand == "getdata") + else if (strCommand == NetMsgType::GETDATA) { vector<CInv> vInv; vRecv >> vInv; @@ -4577,7 +4575,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "getblocks") + else if (strCommand == NetMsgType::GETBLOCKS) { CBlockLocator locator; uint256 hashStop; @@ -4621,7 +4619,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "getheaders") + else if (strCommand == NetMsgType::GETHEADERS) { CBlockLocator locator; uint256 hashStop; @@ -4666,11 +4664,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // headers message). In both cases it's safe to update // pindexBestHeaderSent to be our tip. nodestate->pindexBestHeaderSent = pindex ? pindex : chainActive.Tip(); - pfrom->PushMessage("headers", vHeaders); + pfrom->PushMessage(NetMsgType::HEADERS, vHeaders); } - else if (strCommand == "tx") + else if (strCommand == NetMsgType::TX) { // Stop processing the transaction early if // We are in blocks only mode and peer is either not whitelisted or whitelistalwaysrelay is off @@ -4799,15 +4797,16 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, pfrom->id, FormatStateMessage(state)); if (state.GetRejectCode() < REJECT_INTERNAL) // Never send AcceptToMemoryPool's internal codes over P2P - pfrom->PushMessage("reject", strCommand, state.GetRejectCode(), + pfrom->PushMessage(NetMsgType::REJECT, strCommand, (unsigned char)state.GetRejectCode(), state.GetRejectReason().substr(0, MAX_REJECT_MESSAGE_LENGTH), inv.hash); if (nDoS > 0) Misbehaving(pfrom->GetId(), nDoS); } + FlushStateToDisk(state, FLUSH_STATE_PERIODIC); } - else if (strCommand == "headers" && !fImporting && !fReindex) // Ignore headers received while importing + else if (strCommand == NetMsgType::HEADERS && !fImporting && !fReindex) // Ignore headers received while importing { std::vector<CBlockHeader> headers; @@ -4855,7 +4854,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // TODO: optimize: if pindexLast is an ancestor of chainActive.Tip or pindexBestHeader, continue // from there instead. LogPrint("net", "more getheaders (%d) to end to peer=%d (startheight:%d)\n", pindexLast->nHeight, pfrom->id, pfrom->nStartingHeight); - pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexLast), uint256()); + pfrom->PushMessage(NetMsgType::GETHEADERS, chainActive.GetLocator(pindexLast), uint256()); } bool fCanDirectFetch = CanDirectFetch(chainparams.GetConsensus()); @@ -4900,7 +4899,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, pindexLast->GetBlockHash().ToString(), pindexLast->nHeight); } if (vGetData.size() > 0) { - pfrom->PushMessage("getdata", vGetData); + pfrom->PushMessage(NetMsgType::GETDATA, vGetData); } } } @@ -4908,7 +4907,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, CheckBlockIndex(chainparams.GetConsensus()); } - else if (strCommand == "block" && !fImporting && !fReindex) // Ignore blocks received while importing + else if (strCommand == NetMsgType::BLOCK && !fImporting && !fReindex) // Ignore blocks received while importing { CBlock block; vRecv >> block; @@ -4928,7 +4927,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, int nDoS; if (state.IsInvalid(nDoS)) { assert (state.GetRejectCode() < REJECT_INTERNAL); // Blocks are never rejected with internal reject codes - pfrom->PushMessage("reject", strCommand, state.GetRejectCode(), + pfrom->PushMessage(NetMsgType::REJECT, strCommand, (unsigned char)state.GetRejectCode(), state.GetRejectReason().substr(0, MAX_REJECT_MESSAGE_LENGTH), inv.hash); if (nDoS > 0) { LOCK(cs_main); @@ -4944,7 +4943,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // to users' AddrMan and later request them by sending getaddr messages. // Making nodes which are behind NAT and can only make outgoing connections ignore // the getaddr message mitigates the attack. - else if ((strCommand == "getaddr") && (pfrom->fInbound)) + else if ((strCommand == NetMsgType::GETADDR) && (pfrom->fInbound)) { pfrom->vAddrToSend.clear(); vector<CAddress> vAddr = addrman.GetAddr(); @@ -4953,8 +4952,14 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "mempool") + else if (strCommand == NetMsgType::MEMPOOL) { + if (CNode::OutboundTargetReached(false) && !pfrom->fWhitelisted) + { + LogPrint("net", "mempool request with bandwidth limit reached, disconnect peer=%d\n", pfrom->GetId()); + pfrom->fDisconnect = true; + return true; + } LOCK2(cs_main, pfrom->cs_filter); std::vector<uint256> vtxid; @@ -4962,23 +4967,24 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector<CInv> vInv; BOOST_FOREACH(uint256& hash, vtxid) { CInv inv(MSG_TX, hash); - CTransaction tx; - bool fInMemPool = mempool.lookup(hash, tx); - if (!fInMemPool) continue; // another thread removed since queryHashes, maybe... - if ((pfrom->pfilter && pfrom->pfilter->IsRelevantAndUpdate(tx)) || - (!pfrom->pfilter)) - vInv.push_back(inv); + if (pfrom->pfilter) { + CTransaction tx; + bool fInMemPool = mempool.lookup(hash, tx); + if (!fInMemPool) continue; // another thread removed since queryHashes, maybe... + if (!pfrom->pfilter->IsRelevantAndUpdate(tx)) continue; + } + vInv.push_back(inv); if (vInv.size() == MAX_INV_SZ) { - pfrom->PushMessage("inv", vInv); + pfrom->PushMessage(NetMsgType::INV, vInv); vInv.clear(); } } if (vInv.size() > 0) - pfrom->PushMessage("inv", vInv); + pfrom->PushMessage(NetMsgType::INV, vInv); } - else if (strCommand == "ping") + else if (strCommand == NetMsgType::PING) { if (pfrom->nVersion > BIP0031_VERSION) { @@ -4995,12 +5001,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, // it, if the remote node sends a ping once per second and this node takes 5 // seconds to respond to each, the 5th ping the remote sends would appear to // return very quickly. - pfrom->PushMessage("pong", nonce); + pfrom->PushMessage(NetMsgType::PONG, nonce); } } - else if (strCommand == "pong") + else if (strCommand == NetMsgType::PONG) { int64_t pingUsecEnd = nTimeReceived; uint64_t nonce = 0; @@ -5057,7 +5063,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (fAlerts && strCommand == "alert") + else if (fAlerts && strCommand == NetMsgType::ALERT) { CAlert alert; vRecv >> alert; @@ -5088,7 +5094,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "filterload") + else if (strCommand == NetMsgType::FILTERLOAD) { CBloomFilter filter; vRecv >> filter; @@ -5107,7 +5113,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "filteradd") + else if (strCommand == NetMsgType::FILTERADD) { vector<unsigned char> vData; vRecv >> vData; @@ -5127,7 +5133,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "filterclear") + else if (strCommand == NetMsgType::FILTERCLEAR) { LOCK(pfrom->cs_filter); delete pfrom->pfilter; @@ -5136,7 +5142,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } - else if (strCommand == "reject") + else if (strCommand == NetMsgType::REJECT) { if (fDebug) { try { @@ -5146,7 +5152,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, ostringstream ss; ss << strMsg << " code " << itostr(ccode) << ": " << strReason; - if (strMsg == "block" || strMsg == "tx") + if (strMsg == NetMsgType::BLOCK || strMsg == NetMsgType::TX) { uint256 hash; vRecv >> hash; @@ -5254,7 +5260,7 @@ bool ProcessMessages(CNode* pfrom) } catch (const std::ios_base::failure& e) { - pfrom->PushMessage("reject", strCommand, REJECT_MALFORMED, string("error parsing message")); + pfrom->PushMessage(NetMsgType::REJECT, strCommand, REJECT_MALFORMED, string("error parsing message")); if (strstr(e.what(), "end of data")) { // Allow exceptions from under-length message on vRecv @@ -5293,7 +5299,7 @@ bool ProcessMessages(CNode* pfrom) } -bool SendMessages(CNode* pto, bool fSendTrickle) +bool SendMessages(CNode* pto) { const Consensus::Params& consensusParams = Params().GetConsensus(); { @@ -5322,11 +5328,11 @@ bool SendMessages(CNode* pto, bool fSendTrickle) pto->nPingUsecStart = GetTimeMicros(); if (pto->nVersion > BIP0031_VERSION) { pto->nPingNonceSent = nonce; - pto->PushMessage("ping", nonce); + pto->PushMessage(NetMsgType::PING, nonce); } else { // Peer is too old to support ping command with nonce, pong will never arrive. pto->nPingNonceSent = 0; - pto->PushMessage("ping"); + pto->PushMessage(NetMsgType::PING); } } @@ -5335,28 +5341,17 @@ bool SendMessages(CNode* pto, bool fSendTrickle) return true; // Address refresh broadcast - static int64_t nLastRebroadcast; - if (!IsInitialBlockDownload() && (GetTime() - nLastRebroadcast > 24 * 60 * 60)) - { - LOCK(cs_vNodes); - BOOST_FOREACH(CNode* pnode, vNodes) - { - // Periodically clear addrKnown to allow refresh broadcasts - if (nLastRebroadcast) - pnode->addrKnown.reset(); - - // Rebroadcast our address - AdvertizeLocal(pnode); - } - if (!vNodes.empty()) - nLastRebroadcast = GetTime(); + int64_t nNow = GetTimeMicros(); + if (!IsInitialBlockDownload() && pto->nNextLocalAddrSend < nNow) { + AdvertizeLocal(pto); + pto->nNextLocalAddrSend = PoissonNextSend(nNow, AVG_LOCAL_ADDRESS_BROADCAST_INTERVAL); } // // Message: addr // - if (fSendTrickle) - { + if (pto->nNextAddrSend < nNow) { + pto->nNextAddrSend = PoissonNextSend(nNow, AVG_ADDRESS_BROADCAST_INTERVAL); vector<CAddress> vAddr; vAddr.reserve(pto->vAddrToSend.size()); BOOST_FOREACH(const CAddress& addr, pto->vAddrToSend) @@ -5368,14 +5363,14 @@ bool SendMessages(CNode* pto, bool fSendTrickle) // receiver rejects addr messages larger than 1000 if (vAddr.size() >= 1000) { - pto->PushMessage("addr", vAddr); + pto->PushMessage(NetMsgType::ADDR, vAddr); vAddr.clear(); } } } pto->vAddrToSend.clear(); if (!vAddr.empty()) - pto->PushMessage("addr", vAddr); + pto->PushMessage(NetMsgType::ADDR, vAddr); } CNodeState &state = *State(pto->GetId()); @@ -5395,7 +5390,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) } BOOST_FOREACH(const CBlockReject& reject, state.rejects) - pto->PushMessage("reject", (string)"block", reject.chRejectCode, reject.strRejectReason, reject.hashBlock); + pto->PushMessage(NetMsgType::REJECT, (string)NetMsgType::BLOCK, reject.chRejectCode, reject.strRejectReason, reject.hashBlock); state.rejects.clear(); // Start block sync @@ -5418,7 +5413,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) if (pindexStart->pprev) pindexStart = pindexStart->pprev; LogPrint("net", "initial getheaders (%d) to peer=%d (startheight:%d)\n", pindexStart->nHeight, pto->id, pto->nStartingHeight); - pto->PushMessage("getheaders", chainActive.GetLocator(pindexStart), uint256()); + pto->PushMessage(NetMsgType::GETHEADERS, chainActive.GetLocator(pindexStart), uint256()); } } @@ -5518,7 +5513,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) LogPrint("net", "%s: sending header %s to peer=%d\n", __func__, vHeaders.front().GetHash().ToString(), pto->id); } - pto->PushMessage("headers", vHeaders); + pto->PushMessage(NetMsgType::HEADERS, vHeaders); state.pindexBestHeaderSent = pBestIndex; } pto->vBlockHashesToAnnounce.clear(); @@ -5530,12 +5525,17 @@ bool SendMessages(CNode* pto, bool fSendTrickle) vector<CInv> vInv; vector<CInv> vInvWait; { + bool fSendTrickle = pto->fWhitelisted; + if (pto->nNextInvSend < nNow) { + fSendTrickle = true; + pto->nNextInvSend = PoissonNextSend(nNow, AVG_INVENTORY_BROADCAST_INTERVAL); + } LOCK(pto->cs_inventory); - vInv.reserve(pto->vInventoryToSend.size()); + vInv.reserve(std::min<size_t>(1000, pto->vInventoryToSend.size())); vInvWait.reserve(pto->vInventoryToSend.size()); BOOST_FOREACH(const CInv& inv, pto->vInventoryToSend) { - if (pto->setInventoryKnown.count(inv)) + if (inv.type == MSG_TX && pto->filterInventoryKnown.contains(inv.hash)) continue; // trickle out tx inv to protect privacy @@ -5556,24 +5556,22 @@ bool SendMessages(CNode* pto, bool fSendTrickle) } } - // returns true if wasn't already contained in the set - if (pto->setInventoryKnown.insert(inv).second) + pto->filterInventoryKnown.insert(inv.hash); + + vInv.push_back(inv); + if (vInv.size() >= 1000) { - vInv.push_back(inv); - if (vInv.size() >= 1000) - { - pto->PushMessage("inv", vInv); - vInv.clear(); - } + pto->PushMessage(NetMsgType::INV, vInv); + vInv.clear(); } } pto->vInventoryToSend = vInvWait; } if (!vInv.empty()) - pto->PushMessage("inv", vInv); + pto->PushMessage(NetMsgType::INV, vInv); // Detect whether we're stalling - int64_t nNow = GetTimeMicros(); + nNow = GetTimeMicros(); if (!pto->fDisconnect && state.nStallingSince && state.nStallingSince < nNow - 1000000 * BLOCK_STALLING_TIMEOUT) { // Stalling only triggers when the block download window cannot move. During normal steady state, // the download window should be much larger than the to-be-downloaded set of blocks, so disconnection @@ -5639,7 +5637,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) vGetData.push_back(inv); if (vGetData.size() >= 1000) { - pto->PushMessage("getdata", vGetData); + pto->PushMessage(NetMsgType::GETDATA, vGetData); vGetData.clear(); } } else { @@ -5649,7 +5647,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) pto->mapAskFor.erase(pto->mapAskFor.begin()); } if (!vGetData.empty()) - pto->PushMessage("getdata", vGetData); + pto->PushMessage(NetMsgType::GETDATA, vGetData); } return true; diff --git a/src/main.h b/src/main.h index 19623f4d96..7ae4893e07 100644 --- a/src/main.h +++ b/src/main.h @@ -87,6 +87,14 @@ static const unsigned int DATABASE_WRITE_INTERVAL = 60 * 60; static const unsigned int DATABASE_FLUSH_INTERVAL = 24 * 60 * 60; /** Maximum length of reject messages. */ static const unsigned int MAX_REJECT_MESSAGE_LENGTH = 111; +/** Average delay between local address broadcasts in seconds. */ +static const unsigned int AVG_LOCAL_ADDRESS_BROADCAST_INTERVAL = 24 * 24 * 60; +/** Average delay between peer address broadcasts in seconds. */ +static const unsigned int AVG_ADDRESS_BROADCAST_INTERVAL = 30; +/** Average delay between trickled inventory broadcasts in seconds. + * Blocks, whitelisted receivers, and a random 25% of transactions bypass this. */ +static const unsigned int AVG_INVENTORY_BROADCAST_INTERVAL = 5; + static const unsigned int DEFAULT_LIMITFREERELAY = 15; static const bool DEFAULT_RELAYPRIORITY = true; @@ -197,9 +205,8 @@ bool ProcessMessages(CNode* pfrom); * Send queued protocol messages to be sent to a give node. * * @param[in] pto The node which we are sending messages to. - * @param[in] fSendTrickle When true send the trickled data, otherwise trickle the data until true. */ -bool SendMessages(CNode* pto, bool fSendTrickle); +bool SendMessages(CNode* pto); /** Run an instance of the script checking thread */ void ThreadScriptCheck(); /** Try to detect Partition (network isolation) attacks against us */ @@ -293,8 +300,6 @@ struct CDiskTxPos : public CDiskBlockPos }; -CAmount GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowFree); - /** * Count ECDSA signature operations the old-fashioned (pre-0.6) way * @return number of sigops this transaction's outputs will produce when spent diff --git a/src/miner.cpp b/src/miner.cpp index c6db00d301..2728c7e6a7 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -98,7 +98,7 @@ CBlockTemplate* CreateNewBlock(const CChainParams& chainparams, const CScript& s // Largest block you're willing to create: unsigned int nBlockMaxSize = GetArg("-blockmaxsize", DEFAULT_BLOCK_MAX_SIZE); - // Limit to betweeen 1K and MAX_BLOCK_SIZE-1K for sanity: + // Limit to between 1K and MAX_BLOCK_SIZE-1K for sanity: nBlockMaxSize = std::max((unsigned int)1000, std::min((unsigned int)(MAX_BLOCK_SIZE-1000), nBlockMaxSize)); // How much of the block should be dedicated to high-priority transactions, diff --git a/src/mruset.h b/src/mruset.h deleted file mode 100644 index 398aa173bf..0000000000 --- a/src/mruset.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2012-2015 The Bitcoin Core developers -// Distributed under the MIT software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#ifndef BITCOIN_MRUSET_H -#define BITCOIN_MRUSET_H - -#include <set> -#include <vector> -#include <utility> - -/** STL-like set container that only keeps the most recent N elements. */ -template <typename T> -class mruset -{ -public: - typedef T key_type; - typedef T value_type; - typedef typename std::set<T>::iterator iterator; - typedef typename std::set<T>::const_iterator const_iterator; - typedef typename std::set<T>::size_type size_type; - -protected: - std::set<T> set; - std::vector<iterator> order; - size_type first_used; - size_type first_unused; - const size_type nMaxSize; - -public: - mruset(size_type nMaxSizeIn = 1) : nMaxSize(nMaxSizeIn) { clear(); } - iterator begin() const { return set.begin(); } - iterator end() const { return set.end(); } - size_type size() const { return set.size(); } - bool empty() const { return set.empty(); } - iterator find(const key_type& k) const { return set.find(k); } - size_type count(const key_type& k) const { return set.count(k); } - void clear() - { - set.clear(); - order.assign(nMaxSize, set.end()); - first_used = 0; - first_unused = 0; - } - bool inline friend operator==(const mruset<T>& a, const mruset<T>& b) { return a.set == b.set; } - bool inline friend operator==(const mruset<T>& a, const std::set<T>& b) { return a.set == b; } - bool inline friend operator<(const mruset<T>& a, const mruset<T>& b) { return a.set < b.set; } - std::pair<iterator, bool> insert(const key_type& x) - { - std::pair<iterator, bool> ret = set.insert(x); - if (ret.second) { - if (set.size() == nMaxSize + 1) { - set.erase(order[first_used]); - order[first_used] = set.end(); - if (++first_used == nMaxSize) first_used = 0; - } - order[first_unused] = ret.first; - if (++first_unused == nMaxSize) first_unused = 0; - } - return ret; - } - size_type max_size() const { return nMaxSize; } -}; - -#endif // BITCOIN_MRUSET_H diff --git a/src/net.cpp b/src/net.cpp index e5659efc01..2ad20ac224 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -36,6 +36,8 @@ #include <boost/filesystem.hpp> #include <boost/thread.hpp> +#include <math.h> + // Dump addresses to peers.dat every 15 minutes (900s) #define DUMP_ADDRESSES_INTERVAL 900 @@ -67,6 +69,8 @@ namespace { }; } +const static std::string NET_MESSAGE_COMMAND_OTHER = "*other*"; + // // Global state variables // @@ -459,7 +463,7 @@ void CNode::PushVersion() LogPrint("net", "send version message: version %d, blocks=%d, us=%s, them=%s, peer=%d\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString(), addrYou.ToString(), id); else LogPrint("net", "send version message: version %d, blocks=%d, us=%s, peer=%d\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString(), id); - PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe, + PushMessage(NetMsgType::VERSION, PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe, nLocalHostNonce, strSubVersion, nBestHeight, !GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY)); } @@ -627,7 +631,9 @@ void CNode::copyStats(CNodeStats &stats) X(fInbound); X(nStartingHeight); X(nSendBytes); + X(mapSendBytesPerMsgCmd); X(nRecvBytes); + X(mapRecvBytesPerMsgCmd); X(fWhitelisted); // It is common for nodes with good ping times to suddenly become lagged, @@ -682,6 +688,15 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes) nBytes -= handled; if (msg.complete()) { + + //store received bytes per message command + //to prevent a memory DOS, only allow valid commands + mapMsgCmdSize::iterator i = mapRecvBytesPerMsgCmd.find(msg.hdr.pchCommand); + if (i == mapRecvBytesPerMsgCmd.end()) + i = mapRecvBytesPerMsgCmd.find(NET_MESSAGE_COMMAND_OTHER); + assert(i != mapRecvBytesPerMsgCmd.end()); + i->second += msg.hdr.nMessageSize + CMessageHeader::HEADER_SIZE; + msg.nTime = GetTimeMicros(); messageHandlerCondition.notify_one(); } @@ -1355,7 +1370,7 @@ void ThreadMapPort() LogPrintf("AddPortMapping(%s, %s, %s) failed with code %d (%s)\n", port, port, lanaddr, r, strupnperror(r)); else - LogPrintf("UPnP Port Mapping successful.\n");; + LogPrintf("UPnP Port Mapping successful.\n"); MilliSleep(20*60*1000); // Refresh every 20 minutes } @@ -1720,11 +1735,6 @@ void ThreadMessageHandler() } } - // Poll the connected nodes for messages - CNode* pnodeTrickle = NULL; - if (!vNodesCopy.empty()) - pnodeTrickle = vNodesCopy[GetRand(vNodesCopy.size())]; - bool fSleep = true; BOOST_FOREACH(CNode* pnode, vNodesCopy) @@ -1755,7 +1765,7 @@ void ThreadMessageHandler() { TRY_LOCK(pnode->cs_vSend, lockSend); if (lockSend) - g_signals.SendMessages(pnode, pnode == pnodeTrickle || pnode->fWhitelisted); + g_signals.SendMessages(pnode); } boost::this_thread::interruption_point(); } @@ -2342,7 +2352,7 @@ unsigned int SendBufferSize() { return 1000*GetArg("-maxsendbuffer", DEFAULT_MAX CNode::CNode(SOCKET hSocketIn, const CAddress& addrIn, const std::string& addrNameIn, bool fInboundIn) : ssSend(SER_NETWORK, INIT_PROTO_VERSION), addrKnown(5000, 0.001), - setInventoryKnown(SendBufferSize() / 1000) + filterInventoryKnown(50000, 0.000001) { nServices = 0; hSocket = hSocketIn; @@ -2369,7 +2379,11 @@ CNode::CNode(SOCKET hSocketIn, const CAddress& addrIn, const std::string& addrNa nSendOffset = 0; hashContinue = uint256(); nStartingHeight = -1; + filterInventoryKnown.reset(); fGetAddr = false; + nNextLocalAddrSend = 0; + nNextAddrSend = 0; + nNextInvSend = 0; fRelayTxes = false; pfilter = new CBloomFilter(); nPingNonceSent = 0; @@ -2377,6 +2391,9 @@ CNode::CNode(SOCKET hSocketIn, const CAddress& addrIn, const std::string& addrNa nPingUsecTime = 0; fPingQueued = false; nMinPingUsecTime = std::numeric_limits<int64_t>::max(); + BOOST_FOREACH(const std::string &msg, getAllNetMessageTypes()) + mapRecvBytesPerMsgCmd[msg] = 0; + mapRecvBytesPerMsgCmd[NET_MESSAGE_COMMAND_OTHER] = 0; { LOCK(cs_nLastNodeId); @@ -2456,7 +2473,7 @@ void CNode::AbortMessage() UNLOCK_FUNCTION(cs_vSend) LogPrint("net", "(aborted)\n"); } -void CNode::EndMessage() UNLOCK_FUNCTION(cs_vSend) +void CNode::EndMessage(const char* pszCommand) UNLOCK_FUNCTION(cs_vSend) { // The -*messagestest options are intentionally not documented in the help message, // since they are only used during development to debug the networking code and are @@ -2479,6 +2496,9 @@ void CNode::EndMessage() UNLOCK_FUNCTION(cs_vSend) unsigned int nSize = ssSend.size() - CMessageHeader::HEADER_SIZE; WriteLE32((uint8_t*)&ssSend[CMessageHeader::MESSAGE_SIZE_OFFSET], nSize); + //log total amount of bytes per command + mapSendBytesPerMsgCmd[std::string(pszCommand)] += nSize + CMessageHeader::HEADER_SIZE; + // Set the checksum uint256 hash = Hash(ssSend.begin() + CMessageHeader::HEADER_SIZE, ssSend.end()); unsigned int nChecksum = 0; @@ -2614,3 +2634,7 @@ void DumpBanlist() LogPrint("net", "Flushed %d banned node ips/subnets to banlist.dat %dms\n", banmap.size(), GetTimeMillis() - nStart); } + +int64_t PoissonNextSend(int64_t nNow, int average_interval_seconds) { + return nNow + (int64_t)(log1p(GetRand(1ULL << 48) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5); +} @@ -9,7 +9,6 @@ #include "bloom.h" #include "compat.h" #include "limitedmap.h" -#include "mruset.h" #include "netbase.h" #include "protocol.h" #include "random.h" @@ -114,7 +113,7 @@ struct CNodeSignals { boost::signals2::signal<int ()> GetHeight; boost::signals2::signal<bool (CNode*), CombinerAll> ProcessMessages; - boost::signals2::signal<bool (CNode*, bool), CombinerAll> SendMessages; + boost::signals2::signal<bool (CNode*), CombinerAll> SendMessages; boost::signals2::signal<void (NodeId, const CNode*)> InitializeNode; boost::signals2::signal<void (NodeId)> FinalizeNode; }; @@ -183,6 +182,7 @@ struct LocalServiceInfo { extern CCriticalSection cs_mapLocalHost; extern std::map<CNetAddr, LocalServiceInfo> mapLocalHost; +typedef std::map<std::string, uint64_t> mapMsgCmdSize; //command, total bytes class CNodeStats { @@ -200,7 +200,9 @@ public: bool fInbound; int nStartingHeight; uint64_t nSendBytes; + mapMsgCmdSize mapSendBytesPerMsgCmd; uint64_t nRecvBytes; + mapMsgCmdSize mapRecvBytesPerMsgCmd; bool fWhitelisted; double dPingTime; double dPingWait; @@ -374,6 +376,9 @@ protected: static std::vector<CSubNet> vWhitelistedRange; static CCriticalSection cs_vWhitelistedRange; + mapMsgCmdSize mapSendBytesPerMsgCmd; + mapMsgCmdSize mapRecvBytesPerMsgCmd; + // Basic fuzz-testing void Fuzz(int nChance); // modifies ssSend @@ -386,13 +391,16 @@ public: CRollingBloomFilter addrKnown; bool fGetAddr; std::set<uint256> setKnown; + int64_t nNextAddrSend; + int64_t nNextLocalAddrSend; // inventory based relay - mruset<CInv> setInventoryKnown; + CRollingBloomFilter filterInventoryKnown; std::vector<CInv> vInventoryToSend; CCriticalSection cs_inventory; std::set<uint256> setAskFor; std::multimap<int64_t, CInv> mapAskFor; + int64_t nNextInvSend; // Used for headers announcements - unfiltered blocks to relay // Also protected by cs_inventory std::vector<uint256> vBlockHashesToAnnounce; @@ -497,7 +505,7 @@ public: { { LOCK(cs_inventory); - setInventoryKnown.insert(inv); + filterInventoryKnown.insert(inv.hash); } } @@ -505,8 +513,9 @@ public: { { LOCK(cs_inventory); - if (!setInventoryKnown.count(inv)) - vInventoryToSend.push_back(inv); + if (inv.type == MSG_TX && filterInventoryKnown.contains(inv.hash)) + return; + vInventoryToSend.push_back(inv); } } @@ -525,7 +534,7 @@ public: void AbortMessage() UNLOCK_FUNCTION(cs_vSend); // TODO: Document the precondition of this function. Is cs_vSend locked? - void EndMessage() UNLOCK_FUNCTION(cs_vSend); + void EndMessage(const char* pszCommand) UNLOCK_FUNCTION(cs_vSend); void PushVersion(); @@ -535,7 +544,7 @@ public: try { BeginMessage(pszCommand); - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -551,7 +560,7 @@ public: { BeginMessage(pszCommand); ssSend << a1; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -567,7 +576,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -583,7 +592,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -599,7 +608,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -615,7 +624,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4 << a5; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -631,7 +640,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4 << a5 << a6; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -647,7 +656,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -663,7 +672,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7 << a8; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -679,7 +688,7 @@ public: { BeginMessage(pszCommand); ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7 << a8 << a9; - EndMessage(); + EndMessage(pszCommand); } catch (...) { @@ -785,4 +794,7 @@ public: void DumpBanlist(); +/** Return a timestamp in the future (in microseconds) for exponentially distributed events. */ +int64_t PoissonNextSend(int64_t nNow, int average_interval_seconds); + #endif // BITCOIN_NET_H diff --git a/src/prevector.h b/src/prevector.h index 3e80ef5d33..8992e305b3 100644 --- a/src/prevector.h +++ b/src/prevector.h @@ -140,7 +140,7 @@ public: private: size_type _size; - union { + union direct_or_indirect { char direct[sizeof(T) * N]; struct { size_type capacity; diff --git a/src/protocol.cpp b/src/protocol.cpp index dd855aa33a..5d3ae87de8 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -12,13 +12,67 @@ # include <arpa/inet.h> #endif +namespace NetMsgType { +const char *VERSION="version"; +const char *VERACK="verack"; +const char *ADDR="addr"; +const char *INV="inv"; +const char *GETDATA="getdata"; +const char *MERKLEBLOCK="merkleblock"; +const char *GETBLOCKS="getblocks"; +const char *GETHEADERS="getheaders"; +const char *TX="tx"; +const char *HEADERS="headers"; +const char *BLOCK="block"; +const char *GETADDR="getaddr"; +const char *MEMPOOL="mempool"; +const char *PING="ping"; +const char *PONG="pong"; +const char *ALERT="alert"; +const char *NOTFOUND="notfound"; +const char *FILTERLOAD="filterload"; +const char *FILTERADD="filteradd"; +const char *FILTERCLEAR="filterclear"; +const char *REJECT="reject"; +const char *SENDHEADERS="sendheaders"; +}; + static const char* ppszTypeName[] = { - "ERROR", - "tx", - "block", - "filtered block" + "ERROR", // Should never occur + NetMsgType::TX, + NetMsgType::BLOCK, + "filtered block" // Should never occur +}; + +/** All known message types. Keep this in the same order as the list of + * messages above and in protocol.h. + */ +const static std::string allNetMessageTypes[] = { + NetMsgType::VERSION, + NetMsgType::VERACK, + NetMsgType::ADDR, + NetMsgType::INV, + NetMsgType::GETDATA, + NetMsgType::MERKLEBLOCK, + NetMsgType::GETBLOCKS, + NetMsgType::GETHEADERS, + NetMsgType::TX, + NetMsgType::HEADERS, + NetMsgType::BLOCK, + NetMsgType::GETADDR, + NetMsgType::MEMPOOL, + NetMsgType::PING, + NetMsgType::PONG, + NetMsgType::ALERT, + NetMsgType::NOTFOUND, + NetMsgType::FILTERLOAD, + NetMsgType::FILTERADD, + NetMsgType::FILTERCLEAR, + NetMsgType::REJECT, + NetMsgType::SENDHEADERS }; +const static std::vector<std::string> allNetMessageTypesVec(allNetMessageTypes, allNetMessageTypes+ARRAYLEN(allNetMessageTypes)); CMessageHeader::CMessageHeader(const MessageStartChars& pchMessageStartIn) { @@ -140,3 +194,8 @@ std::string CInv::ToString() const { return strprintf("%s %s", GetCommand(), hash.ToString()); } + +const std::vector<std::string> &getAllNetMessageTypes() +{ + return allNetMessageTypesVec; +} diff --git a/src/protocol.h b/src/protocol.h index 50aeaf44ba..b84c78baca 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -65,6 +65,165 @@ public: unsigned int nChecksum; }; +/** + * Bitcoin protocol message types. When adding new message types, don't forget + * to update allNetMessageTypes in protocol.cpp. + */ +namespace NetMsgType { + +/** + * The version message provides information about the transmitting node to the + * receiving node at the beginning of a connection. + * @see https://bitcoin.org/en/developer-reference#version + */ +extern const char *VERSION; +/** + * The verack message acknowledges a previously-received version message, + * informing the connecting node that it can begin to send other messages. + * @see https://bitcoin.org/en/developer-reference#verack + */ +extern const char *VERACK; +/** + * The addr (IP address) message relays connection information for peers on the + * network. + * @see https://bitcoin.org/en/developer-reference#addr + */ +extern const char *ADDR; +/** + * The inv message (inventory message) transmits one or more inventories of + * objects known to the transmitting peer. + * @see https://bitcoin.org/en/developer-reference#inv + */ +extern const char *INV; +/** + * The getdata message requests one or more data objects from another node. + * @see https://bitcoin.org/en/developer-reference#getdata + */ +extern const char *GETDATA; +/** + * The merkleblock message is a reply to a getdata message which requested a + * block using the inventory type MSG_MERKLEBLOCK. + * @since protocol version 70001 as described by BIP37. + * @see https://bitcoin.org/en/developer-reference#merkleblock + */ +extern const char *MERKLEBLOCK; +/** + * The getblocks message requests an inv message that provides block header + * hashes starting from a particular point in the block chain. + * @see https://bitcoin.org/en/developer-reference#getblocks + */ +extern const char *GETBLOCKS; +/** + * The getheaders message requests a headers message that provides block + * headers starting from a particular point in the block chain. + * @since protocol version 31800. + * @see https://bitcoin.org/en/developer-reference#getheaders + */ +extern const char *GETHEADERS; +/** + * The tx message transmits a single transaction. + * @see https://bitcoin.org/en/developer-reference#tx + */ +extern const char *TX; +/** + * The headers message sends one or more block headers to a node which + * previously requested certain headers with a getheaders message. + * @since protocol version 31800. + * @see https://bitcoin.org/en/developer-reference#headers + */ +extern const char *HEADERS; +/** + * The block message transmits a single serialized block. + * @see https://bitcoin.org/en/developer-reference#block + */ +extern const char *BLOCK; +/** + * The getaddr message requests an addr message from the receiving node, + * preferably one with lots of IP addresses of other receiving nodes. + * @see https://bitcoin.org/en/developer-reference#getaddr + */ +extern const char *GETADDR; +/** + * The mempool message requests the TXIDs of transactions that the receiving + * node has verified as valid but which have not yet appeared in a block. + * @since protocol version 60002. + * @see https://bitcoin.org/en/developer-reference#mempool + */ +extern const char *MEMPOOL; +/** + * The ping message is sent periodically to help confirm that the receiving + * peer is still connected. + * @see https://bitcoin.org/en/developer-reference#ping + */ +extern const char *PING; +/** + * The pong message replies to a ping message, proving to the pinging node that + * the ponging node is still alive. + * @since protocol version 60001 as described by BIP31. + * @see https://bitcoin.org/en/developer-reference#pong + */ +extern const char *PONG; +/** + * The alert message warns nodes of problems that may affect them or the rest + * of the network. + * @since protocol version 311. + * @see https://bitcoin.org/en/developer-reference#alert + */ +extern const char *ALERT; +/** + * The notfound message is a reply to a getdata message which requested an + * object the receiving node does not have available for relay. + * @ince protocol version 70001. + * @see https://bitcoin.org/en/developer-reference#notfound + */ +extern const char *NOTFOUND; +/** + * The filterload message tells the receiving peer to filter all relayed + * transactions and requested merkle blocks through the provided filter. + * @since protocol version 70001 as described by BIP37. + * Only available with service bit NODE_BLOOM since protocol version + * 70011 as described by BIP111. + * @see https://bitcoin.org/en/developer-reference#filterload + */ +extern const char *FILTERLOAD; +/** + * The filteradd message tells the receiving peer to add a single element to a + * previously-set bloom filter, such as a new public key. + * @since protocol version 70001 as described by BIP37. + * Only available with service bit NODE_BLOOM since protocol version + * 70011 as described by BIP111. + * @see https://bitcoin.org/en/developer-reference#filteradd + */ +extern const char *FILTERADD; +/** + * The filterclear message tells the receiving peer to remove a previously-set + * bloom filter. + * @since protocol version 70001 as described by BIP37. + * Only available with service bit NODE_BLOOM since protocol version + * 70011 as described by BIP111. + * @see https://bitcoin.org/en/developer-reference#filterclear + */ +extern const char *FILTERCLEAR; +/** + * The reject message informs the receiving node that one of its previous + * messages has been rejected. + * @since protocol version 70002 as described by BIP61. + * @see https://bitcoin.org/en/developer-reference#reject + */ +extern const char *REJECT; +/** + * Indicates that a node prefers to receive new block announcements via a + * "headers" message rather than an "inv". + * @since protocol version 70012 as described by BIP130. + * @see https://bitcoin.org/en/developer-reference#sendheaders + */ +extern const char *SENDHEADERS; + +}; + +/* Get a vector of all valid message types (see above) */ +const std::vector<std::string> &getAllNetMessageTypes(); + /** nServices flags */ enum { // NODE_NETWORK means that the node is capable of serving the block chain. It is currently diff --git a/src/qt/bantablemodel.cpp b/src/qt/bantablemodel.cpp index 33792af5ba..d95106b5ac 100644 --- a/src/qt/bantablemodel.cpp +++ b/src/qt/bantablemodel.cpp @@ -103,7 +103,7 @@ int BanTableModel::rowCount(const QModelIndex &parent) const int BanTableModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent); - return columns.length();; + return columns.length(); } QVariant BanTableModel::data(const QModelIndex &index, int role) const @@ -178,4 +178,4 @@ bool BanTableModel::shouldShow() if (priv->size() > 0) return true; return false; -}
\ No newline at end of file +} diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc index b70a107397..a8a0253b07 100644 --- a/src/qt/bitcoin_locale.qrc +++ b/src/qt/bitcoin_locale.qrc @@ -1,36 +1,40 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource prefix="/translations"> - <file alias="ach">locale/bitcoin_ach.qm</file> <file alias="af_ZA">locale/bitcoin_af_ZA.qm</file> <file alias="ar">locale/bitcoin_ar.qm</file> <file alias="be_BY">locale/bitcoin_be_BY.qm</file> + <file alias="bg_BG">locale/bitcoin_bg_BG.qm</file> <file alias="bg">locale/bitcoin_bg.qm</file> <file alias="bs">locale/bitcoin_bs.qm</file> <file alias="ca_ES">locale/bitcoin_ca_ES.qm</file> <file alias="ca">locale/bitcoin_ca.qm</file> <file alias="ca@valencia">locale/bitcoin_ca@valencia.qm</file> - <file alias="cmn">locale/bitcoin_cmn.qm</file> + <file alias="cs_CZ">locale/bitcoin_cs_CZ.qm</file> <file alias="cs">locale/bitcoin_cs.qm</file> <file alias="cy">locale/bitcoin_cy.qm</file> <file alias="da">locale/bitcoin_da.qm</file> <file alias="de">locale/bitcoin_de.qm</file> <file alias="el_GR">locale/bitcoin_el_GR.qm</file> + <file alias="el">locale/bitcoin_el.qm</file> + <file alias="en_GB">locale/bitcoin_en_GB.qm</file> <file alias="en">locale/bitcoin_en.qm</file> <file alias="eo">locale/bitcoin_eo.qm</file> <file alias="es_CL">locale/bitcoin_es_CL.qm</file> <file alias="es_DO">locale/bitcoin_es_DO.qm</file> + <file alias="es_ES">locale/bitcoin_es_ES.qm</file> <file alias="es_MX">locale/bitcoin_es_MX.qm</file> <file alias="es">locale/bitcoin_es.qm</file> <file alias="es_UY">locale/bitcoin_es_UY.qm</file> + <file alias="es_VE">locale/bitcoin_es_VE.qm</file> <file alias="et">locale/bitcoin_et.qm</file> <file alias="eu_ES">locale/bitcoin_eu_ES.qm</file> <file alias="fa_IR">locale/bitcoin_fa_IR.qm</file> <file alias="fa">locale/bitcoin_fa.qm</file> <file alias="fi">locale/bitcoin_fi.qm</file> <file alias="fr_CA">locale/bitcoin_fr_CA.qm</file> + <file alias="fr_FR">locale/bitcoin_fr_FR.qm</file> <file alias="fr">locale/bitcoin_fr.qm</file> <file alias="gl">locale/bitcoin_gl.qm</file> - <file alias="gu_IN">locale/bitcoin_gu_IN.qm</file> <file alias="he">locale/bitcoin_he.qm</file> <file alias="hi_IN">locale/bitcoin_hi_IN.qm</file> <file alias="hr">locale/bitcoin_hr.qm</file> @@ -45,6 +49,7 @@ <file alias="la">locale/bitcoin_la.qm</file> <file alias="lt">locale/bitcoin_lt.qm</file> <file alias="lv_LV">locale/bitcoin_lv_LV.qm</file> + <file alias="mk_MK">locale/bitcoin_mk_MK.qm</file> <file alias="mn">locale/bitcoin_mn.qm</file> <file alias="ms_MY">locale/bitcoin_ms_MY.qm</file> <file alias="nb">locale/bitcoin_nb.qm</file> @@ -54,14 +59,15 @@ <file alias="pt_BR">locale/bitcoin_pt_BR.qm</file> <file alias="pt_PT">locale/bitcoin_pt_PT.qm</file> <file alias="ro_RO">locale/bitcoin_ro_RO.qm</file> + <file alias="ru_RU">locale/bitcoin_ru_RU.qm</file> <file alias="ru">locale/bitcoin_ru.qm</file> - <file alias="sah">locale/bitcoin_sah.qm</file> <file alias="sk">locale/bitcoin_sk.qm</file> <file alias="sl_SI">locale/bitcoin_sl_SI.qm</file> <file alias="sq">locale/bitcoin_sq.qm</file> <file alias="sr">locale/bitcoin_sr.qm</file> <file alias="sv">locale/bitcoin_sv.qm</file> <file alias="th_TH">locale/bitcoin_th_TH.qm</file> + <file alias="tr_TR">locale/bitcoin_tr_TR.qm</file> <file alias="tr">locale/bitcoin_tr.qm</file> <file alias="uk">locale/bitcoin_uk.qm</file> <file alias="ur_PK">locale/bitcoin_ur_PK.qm</file> @@ -69,7 +75,7 @@ <file alias="vi">locale/bitcoin_vi.qm</file> <file alias="vi_VN">locale/bitcoin_vi_VN.qm</file> <file alias="zh_CN">locale/bitcoin_zh_CN.qm</file> - <file alias="zh_HK">locale/bitcoin_zh_HK.qm</file> + <file alias="zh">locale/bitcoin_zh.qm</file> <file alias="zh_TW">locale/bitcoin_zh_TW.qm</file> </qresource> </RCC> diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 425b45d918..9c86cb71d4 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -111,13 +111,6 @@ QString BitcoinUnits::format(int unit, const CAmount& nIn, bool fPlus, Separator } -// TODO: Review all remaining calls to BitcoinUnits::formatWithUnit to -// TODO: determine whether the output is used in a plain text context -// TODO: or an HTML context (and replace with -// TODO: BtcoinUnits::formatHtmlWithUnit in the latter case). Hopefully -// TODO: there aren't instances where the result could be used in -// TODO: either context. - // NOTE: Using formatWithUnit in an HTML context risks wrapping // quantities at the thousands separator. More subtly, it also results // in a standard space rather than a thin space, due to a bug in Qt's diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index 1871c33a78..f9f67c9f11 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -88,6 +88,7 @@ public: static QString format(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard); //! Format as string (with unit) static QString formatWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard); + //! Format as HTML string (with unit) static QString formatHtmlWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard); //! Parse string to coin amount static bool parse(int unit, const QString &value, CAmount *val_out); diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index 0f42243047..e2e8601402 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -130,7 +130,7 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *platformStyle, QWidget ui->treeWidget->setColumnWidth(COLUMN_DATE, 110); ui->treeWidget->setColumnWidth(COLUMN_CONFIRMATIONS, 100); ui->treeWidget->setColumnWidth(COLUMN_PRIORITY, 100); - ui->treeWidget->setColumnHidden(COLUMN_TXHASH, true); // store transacton hash in this column, but don't show it + ui->treeWidget->setColumnHidden(COLUMN_TXHASH, true); // store transaction hash in this column, but don't show it ui->treeWidget->setColumnHidden(COLUMN_VOUT_INDEX, true); // store vout index in this column, but don't show it ui->treeWidget->setColumnHidden(COLUMN_AMOUNT_INT64, true); // store amount int64 in this column, but don't show it ui->treeWidget->setColumnHidden(COLUMN_PRIORITY_INT64, true); // store priority int64 in this column, but don't show it @@ -411,7 +411,7 @@ void CoinControlDialog::viewItemChanged(QTreeWidgetItem* item, int column) // todo: this is a temporary qt5 fix: when clicking a parent node in tree mode, the parent node // including all children are partially selected. But the parent node should be fully selected // as well as the children. Children should never be partially selected in the first place. - // Please remove this ugly fix, once the bug is solved upstream. + // Should be fixed in Qt5.4 and above. https://bugreports.qt.io/browse/QTBUG-43473 #if QT_VERSION >= 0x050000 else if (column == COLUMN_CHECKBOX && item->childCount() > 0) { @@ -637,14 +637,14 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) // tool tips QString toolTip1 = tr("This label turns red if the transaction size is greater than 1000 bytes.") + "<br /><br />"; - toolTip1 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CWallet::GetRequiredFee(1000))) + "<br /><br />"; + toolTip1 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, CWallet::GetRequiredFee(1000))) + "<br /><br />"; toolTip1 += tr("Can vary +/- 1 byte per input."); QString toolTip2 = tr("Transactions with higher priority are more likely to get included into a block.") + "<br /><br />"; toolTip2 += tr("This label turns red if the priority is smaller than \"medium\".") + "<br /><br />"; - toolTip2 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, CWallet::GetRequiredFee(1000))); + toolTip2 += tr("This means a fee of at least %1 per kB is required.").arg(BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, CWallet::GetRequiredFee(1000))); - QString toolTip3 = tr("This label turns red if any recipient receives an amount smaller than %1.").arg(BitcoinUnits::formatWithUnit(nDisplayUnit, ::minRelayTxFee.GetFee(546))); + QString toolTip3 = tr("This label turns red if any recipient receives an amount smaller than the current dust threshold."); // how many satoshis the estimated fee can vary per byte we guess wrong double dFeeVary; diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 6dce9370d7..f7b610dbb8 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -62,6 +62,10 @@ #include <QUrlQuery> #endif +#if QT_VERSION >= 0x50200 +#include <QFontDatabase> +#endif + #if BOOST_FILESYSTEM_VERSION >= 3 static boost::filesystem::detail::utf8_codecvt_facet utf8; #endif @@ -90,6 +94,9 @@ QString dateTimeStr(qint64 nTime) QFont fixedPitchFont() { +#if QT_VERSION >= 0x50200 + return QFontDatabase::systemFont(QFontDatabase::FixedFont); +#else QFont font("Monospace"); #if QT_VERSION >= 0x040800 font.setStyleHint(QFont::Monospace); @@ -97,6 +104,7 @@ QFont fixedPitchFont() font.setStyleHint(QFont::TypeWriter); #endif return font; +#endif } void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent) @@ -217,7 +225,7 @@ QString formatBitcoinURI(const SendCoinsRecipient &info) if (!info.message.isEmpty()) { - QString msg(QUrl::toPercentEncoding(info.message));; + QString msg(QUrl::toPercentEncoding(info.message)); ret += QString("%1message=%2").arg(paramCount == 0 ? "?" : "&").arg(msg); paramCount++; } @@ -898,6 +906,9 @@ QString formatServicesStr(quint64 mask) case NODE_GETUTXO: strList.append("GETUTXO"); break; + case NODE_BLOOM: + strList.append("BLOOM"); + break; default: strList.append(QString("%1[%2]").arg("UNKNOWN").arg(check)); } diff --git a/src/qt/locale/bitcoin_ach.ts b/src/qt/locale/bitcoin_ach.ts deleted file mode 100644 index 3365540853..0000000000 --- a/src/qt/locale/bitcoin_ach.ts +++ /dev/null @@ -1,113 +0,0 @@ -<TS language="ach" version="2.1"> -<context> - <name>AddressBookPage</name> - </context> -<context> - <name>AddressTableModel</name> - </context> -<context> - <name>AskPassphraseDialog</name> - </context> -<context> - <name>BanTableModel</name> - </context> -<context> - <name>BitcoinGUI</name> - </context> -<context> - <name>ClientModel</name> - </context> -<context> - <name>CoinControlDialog</name> - </context> -<context> - <name>EditAddressDialog</name> - </context> -<context> - <name>FreespaceChecker</name> - </context> -<context> - <name>HelpMessageDialog</name> - </context> -<context> - <name>Intro</name> - </context> -<context> - <name>OpenURIDialog</name> - </context> -<context> - <name>OptionsDialog</name> - </context> -<context> - <name>OverviewPage</name> - </context> -<context> - <name>PaymentServer</name> - </context> -<context> - <name>PeerTableModel</name> - </context> -<context> - <name>QObject</name> - </context> -<context> - <name>QRImageWidget</name> - </context> -<context> - <name>RPCConsole</name> - </context> -<context> - <name>ReceiveCoinsDialog</name> - </context> -<context> - <name>ReceiveRequestDialog</name> - </context> -<context> - <name>RecentRequestsTableModel</name> - </context> -<context> - <name>SendCoinsDialog</name> - </context> -<context> - <name>SendCoinsEntry</name> - </context> -<context> - <name>ShutdownWindow</name> - </context> -<context> - <name>SignVerifyMessageDialog</name> - </context> -<context> - <name>SplashScreen</name> - </context> -<context> - <name>TrafficGraphWidget</name> - </context> -<context> - <name>TransactionDesc</name> - </context> -<context> - <name>TransactionDescDialog</name> - </context> -<context> - <name>TransactionTableModel</name> - </context> -<context> - <name>TransactionView</name> - </context> -<context> - <name>UnitDisplayStatusBarControl</name> - </context> -<context> - <name>WalletFrame</name> - </context> -<context> - <name>WalletModel</name> - </context> -<context> - <name>WalletView</name> - </context> -<context> - <name>bitcoin-core</name> - </context> -</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_af_ZA.ts b/src/qt/locale/bitcoin_af_ZA.ts index d55d2f58ac..d77aa77f8e 100644 --- a/src/qt/locale/bitcoin_af_ZA.ts +++ b/src/qt/locale/bitcoin_af_ZA.ts @@ -215,6 +215,14 @@ <context> <name>EditAddressDialog</name> <message> + <source>&Label</source> + <translation>&Etiket</translation> + </message> + <message> + <source>&Address</source> + <translation>&Adres</translation> + </message> + <message> <source>New receiving address</source> <translation>Nuwe ontvangende adres</translation> </message> @@ -261,6 +269,10 @@ <source>Options</source> <translation>Opsies</translation> </message> + <message> + <source>W&allet</source> + <translation>&Beursie</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -295,6 +307,14 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>&Bedrag:</translation> + </message> + <message> + <source>&Message:</source> + <translation>&Boodskap:</translation> + </message> + <message> <source>Copy amount</source> <translation>Kopieer bedrag</translation> </message> @@ -348,10 +368,18 @@ <translation>Stuur Munstukke</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Onvoldoende fondse</translation> + </message> + <message> <source>Amount:</source> <translation>Bedrag:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Transaksie fooi:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Stuur aan vele ontvangers op eens</translation> </message> @@ -375,6 +403,10 @@ <context> <name>SendCoinsEntry</name> <message> + <source>A&mount:</source> + <translation>&Bedrag:</translation> + </message> + <message> <source>Message:</source> <translation>Boodskap:</translation> </message> @@ -454,6 +486,10 @@ <translation>Transaksie ID</translation> </message> <message> + <source>Transaction</source> + <translation>Transaksie</translation> + </message> + <message> <source>Amount</source> <translation>Bedrag</translation> </message> diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 8a54f15791..88ce05bbd5 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -93,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> @@ -334,6 +338,10 @@ <translation>محفظة</translation> </message> <message> + <source>&Send</source> + <translation>&ارسل</translation> + </message> + <message> <source>&Receive</source> <translation>&استقبل</translation> </message> @@ -378,6 +386,10 @@ <translation>حول bitcoin core</translation> </message> <message> + <source>%1 and %2</source> + <translation>%1 و %2</translation> + </message> + <message> <source>Error</source> <translation>خطأ</translation> </message> @@ -779,6 +791,10 @@ </context> <context> <name>PaymentServer</name> + <message> + <source>Bad response from server %1</source> + <translation>استجابة سيئة من الملقم %1</translation> + </message> </context> <context> <name>PeerTableModel</name> @@ -790,6 +806,14 @@ <translation>المبلغ</translation> </message> <message> + <source>%1 h</source> + <translation>%1 ساعة</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 دقيقة</translation> + </message> + <message> <source>N/A</source> <translation>غير معروف</translation> </message> @@ -832,6 +856,10 @@ <translation>المعلومات</translation> </message> <message> + <source>Debug window</source> + <translation>نافذة المعالجة</translation> + </message> + <message> <source>General</source> <translation>عام</translation> </message> @@ -908,6 +936,22 @@ <translation>استخدم اسهم الاعلى و الاسفل للتنقل بين السجلات و <b>Ctrl-L</b> لمسح الشاشة</translation> </message> <message> + <source>%1 B</source> + <translation>%1 بايت</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 كيلو بايت</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 ميقا بايت</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 قيقا بايت</translation> + </message> + <message> <source>Yes</source> <translation>نعم</translation> </message> @@ -1076,6 +1120,10 @@ <translation>تعديل :</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>رسوم المعاملة:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>إرسال إلى عدة مستلمين في وقت واحد</translation> </message> @@ -1108,6 +1156,10 @@ <translation>تأكيد الإرسال Coins</translation> </message> <message> + <source>%1 to %2</source> + <translation>%1 الى %2</translation> + </message> + <message> <source>Copy quantity</source> <translation>نسخ الكمية </translation> </message> @@ -1144,6 +1196,10 @@ <translation>القيمة تتجاوز رصيدك</translation> </message> <message> + <source>The total exceeds your balance when the %1 transaction fee is included.</source> + <translation>المجموع يتجاوز رصيدك عندما يتم اضافة %1 رسوم العملية</translation> + </message> + <message> <source>(no label)</source> <translation>(لا وصف)</translation> </message> @@ -1151,6 +1207,10 @@ <context> <name>SendCoinsEntry</name> <message> + <source>A&mount:</source> + <translation>&القيمة</translation> + </message> + <message> <source>Pay &To:</source> <translation>ادفع &الى :</translation> </message> @@ -1178,6 +1238,10 @@ <source>Message:</source> <translation>الرسائل</translation> </message> + <message> + <source>Pay To:</source> + <translation>ادفع &الى :</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1298,10 +1362,22 @@ <context> <name>TransactionDesc</name> <message> + <source>Open until %1</source> + <translation>مفتوح حتى %1</translation> + </message> + <message> <source>conflicted</source> <translation>يتعارض</translation> </message> <message> + <source>%1/offline</source> + <translation>%1 غير متواجد</translation> + </message> + <message> + <source>%1/unconfirmed</source> + <translation>غير مؤكدة/%1</translation> + </message> + <message> <source>%1 confirmations</source> <translation>تأكيد %1</translation> </message> @@ -1412,6 +1488,10 @@ <translation>النوع</translation> </message> <message> + <source>Open until %1</source> + <translation>مفتوح حتى %1</translation> + </message> + <message> <source>This block was not received by any other nodes and will probably not be accepted!</source> <translation>لم يتم تلقى هذه الكتلة (Block) من قبل أي العقد الأخرى وربما لن تكون مقبولة!</translation> </message> @@ -1428,6 +1508,10 @@ <translation>وصف</translation> </message> <message> + <source>Conflicted</source> + <translation>يتعارض</translation> + </message> + <message> <source>Received with</source> <translation>استقبل مع</translation> </message> diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts index c1efc822ec..2709ff37e5 100644 --- a/src/qt/locale/bitcoin_be_BY.ts +++ b/src/qt/locale/bitcoin_be_BY.ts @@ -798,7 +798,7 @@ <source>command-line options</source> <translation>опцыі каманднага радка</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -843,6 +843,10 @@ <source>MB</source> <translation>Мб</translation> </message> + <message> + <source>W&allet</source> + <translation>Гаманец</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -869,10 +873,22 @@ </context> <context> <name>RPCConsole</name> + <message> + <source>&Information</source> + <translation>Інфармацыя</translation> + </message> + <message> + <source>Debug window</source> + <translation>Вакно адладкі</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>&Колькасць:</translation> + </message> + <message> <source>&Label:</source> <translation>Метка:</translation> </message> @@ -888,6 +904,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>Капіяваць адрас</translation> + </message> + <message> <source>Address</source> <translation>Адрас</translation> </message> @@ -934,6 +954,10 @@ <translation>Даслаць Манеты</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Недастаткова сродкаў</translation> + </message> + <message> <source>Quantity:</source> <translation>Колькасць:</translation> </message> @@ -1045,6 +1069,14 @@ <translation>Alt+P</translation> </message> <message> + <source>Message:</source> + <translation>Паведамленне:</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Заплаціць да:</translation> + </message> + <message> <source>Memo:</source> <translation>Памятка:</translation> </message> @@ -1444,10 +1476,6 @@ <translation>Памылка подпісу транзакцыі</translation> </message> <message> - <source>Start minimized</source> - <translation>Стартаваць ммінімізаванай</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Гэта эксперыментальная праграма.</translation> </message> diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 8496a33481..ecd10e5461 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -446,6 +446,36 @@ <translation>Зарежда блокове...</translation> </message> <message> + <source>Date: %1 +</source> + <translation>Дата: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>Сума: %1 +</translation> + </message> + <message> + <source>Type: %1 +</source> + <translation>Тип: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>Етикет: %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>Адрес: %1 +</translation> + </message> + <message> <source>Sent transaction</source> <translation>Изходяща транзакция</translation> </message> @@ -776,7 +806,7 @@ <source>command-line options</source> <translation>Списък с налични команди</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -834,6 +864,10 @@ <translation>Мегабайта</translation> </message> <message> + <source>Number of script &verification threads</source> + <translation>Брой на скриптове и &нишки за потвърждение</translation> + </message> + <message> <source>Accept connections from outside</source> <translation>Приемай връзки отвън</translation> </message> @@ -874,6 +908,10 @@ <translation>Експерт</translation> </message> <message> + <source>Enable coin &control features</source> + <translation>Позволяване на монетите и &техните възможности</translation> + </message> + <message> <source>&Spend unconfirmed change</source> <translation>&Похарчете непотвърденото ресто</translation> </message> @@ -2235,6 +2273,10 @@ <translation>Изнасяне историята на транзакциите</translation> </message> <message> + <source>Watch-only</source> + <translation>само гледане</translation> + </message> + <message> <source>Exporting Failed</source> <translation>Грешка при изнасянето</translation> </message> @@ -2362,10 +2404,6 @@ <translation>Сложете в бял списък пиъри,свързващи се от дадената интернет маска или айпи адрес.Може да бъде заложено неколкократно.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(по подразбиране 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> може да бъде:</translation> </message> @@ -2410,10 +2448,6 @@ <translation>Заложете броя на нишки за генерация на монети ако е включено(-1 = всички ядра, по подразбиране: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Изберете директория при стартиране на програмата.( настройка по подразбиране:0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Свързване чрез SOCKS5 прокси</translation> </message> @@ -2426,6 +2460,10 @@ <translation>Информация</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Невалидна сума за -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Невалидна сума за -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2438,14 +2476,6 @@ <translation>Изпрати локализиращата или дебъг информацията към конзолата, вместо файлът debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Задаване на език,например "de_DE" (по подразбиране: system locale)</translation> - </message> - <message> - <source>Start minimized</source> - <translation>Стартирай минимизирано</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Това е експериментален софтуер.</translation> </message> diff --git a/src/qt/locale/bitcoin_cmn.ts b/src/qt/locale/bitcoin_bg_BG.ts index a6444867c2..353f6d7715 100644 --- a/src/qt/locale/bitcoin_cmn.ts +++ b/src/qt/locale/bitcoin_bg_BG.ts @@ -1,9 +1,25 @@ -<TS language="cmn" version="2.1"> +<TS language="bg_BG" version="2.1"> <context> <name>AddressBookPage</name> <message> + <source>Right-click to edit address or label</source> + <translation>Клик с десен бутон на мишката за промяна на адрес или етикет</translation> + </message> + <message> <source>Create a new address</source> - <translation>创建新地址</translation> + <translation>Създай нов адрес</translation> + </message> + <message> + <source>&New</source> + <translation>Нов</translation> + </message> + <message> + <source>&Copy</source> + <translation>Копирай</translation> + </message> + <message> + <source>C&lose</source> + <translation>Затвори</translation> </message> </context> <context> @@ -17,6 +33,14 @@ </context> <context> <name>BitcoinGUI</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткойн ядро</translation> + </message> + <message> + <source>&About Bitcoin Core</source> + <translation>За Биткойн ядрото</translation> + </message> </context> <context> <name>ClientModel</name> @@ -32,9 +56,21 @@ </context> <context> <name>HelpMessageDialog</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткойн ядро</translation> + </message> + <message> + <source>About Bitcoin Core</source> + <translation>За Биткойн ядрото</translation> + </message> </context> <context> <name>Intro</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткойн ядро</translation> + </message> </context> <context> <name>OpenURIDialog</name> @@ -83,6 +119,10 @@ </context> <context> <name>SplashScreen</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткойн ядро</translation> + </message> </context> <context> <name>TrafficGraphWidget</name> diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index dcbe4dc4cb..38e770f182 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP / Màscara de xarxa</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Bandejat fins</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -874,6 +882,34 @@ <source>command-line options</source> <translation>Opcions de la línia d'ordres</translation> </message> + <message> + <source>UI Options:</source> + <translation>Opcions d'interfície d'usuari:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Trieu el directori de dades a l'inici (per defecte: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Defineix la llengua, per exemple «de_DE» (per defecte: la definida pel sistema)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Inicia minimitzat</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Defineix els certificats arrel SSL per a la sol·licitud de pagament (per defecte: els del sistema)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Mostra la pantalla de benvinguda a l'inici (per defecte: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Reinicialitza tots els canvis de configuració fets des de la interfície gràfica</translation> + </message> </context> <context> <name>Intro</name> @@ -1072,6 +1108,18 @@ <translation>Port del proxy (per exemple 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Utilitzat per arribar als iguals mitjançant:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Mostra si el proxy SOCKS5 per defecte proporcionat s'utilitza per arribar als iguals mitjançant aquest tipus de xarxa.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Finestra</translation> </message> @@ -1458,10 +1506,18 @@ <translation>&Iguals</translation> </message> <message> + <source>Banned peers</source> + <translation>Iguals bandejats</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Seleccioneu un igual per mostrar informació detallada.</translation> </message> <message> + <source>Whitelisted</source> + <translation>A la llista blanca</translation> + </message> + <message> <source>Direction</source> <translation>Direcció</translation> </message> @@ -1470,6 +1526,18 @@ <translation>Versió</translation> </message> <message> + <source>Starting Block</source> + <translation>Bloc d'inici</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Capçaleres sincronitzades</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Blocs sincronitzats</translation> + </message> + <message> <source>User Agent</source> <translation>Agent d'usuari</translation> </message> @@ -1498,6 +1566,14 @@ <translation>Temps de ping</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>La duració d'un ping més destacat actualment.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Espera de ping</translation> + </message> + <message> <source>Time Offset</source> <translation>Diferència horària</translation> </message> @@ -1546,6 +1622,34 @@ <translation>Neteja la consola</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Desconnecta el node</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Bandeja el node durant</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &hora</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &dia</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &setmana</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &any</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Desbandeja el node</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Us donem la benviguda a la consola RPC del Bitcoin Core.</translation> </message> @@ -1574,6 +1678,10 @@ <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(id del node: %1)</translation> + </message> + <message> <source>via %1</source> <translation>a través de %1</translation> </message> @@ -1966,6 +2074,10 @@ <translation>Copia el canvi</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Import total %1</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> @@ -1997,6 +2109,10 @@ <source>Payment request expired.</source> <translation>La sol·licitud de pagament ha vençut.</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Paga només la comissió necessària de %1</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>Estimat per començar la confirmació en %n bloc.</numerusform><numerusform>Estimat per començar la confirmació en %n blocs.</numerusform></translation> @@ -2780,6 +2896,14 @@ <translation>Accepta la línia d'ordres i ordres JSON-RPC </translation> </message> <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Comissions totals màximes (en %s) per utilitzar en una única transacció de moneder; definir-ne una massa baixa pot interrompre les transaccions més grans (per defecte: %s)</translation> + </message> + <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Comissió (en %s/kB) per afegir a les transaccions que envieu (per defecte: %s)</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Executa en segon pla com a programa dimoni i accepta ordres</translation> </message> @@ -2840,10 +2964,6 @@ <translation>Afegeix a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(per defecte: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> pot ser:</translation> </message> @@ -3060,10 +3180,6 @@ <translation>No es pot resoldre l'adreça -whitebind: «%s»</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Tria el directori de dades a l'inici (per defecte: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Connecta a través del proxy SOCKS5</translation> </message> @@ -3140,22 +3256,10 @@ <translation>Envia les transaccions com a transaccions de comissió zero sempre que sigui possible (per defecte: %u) </translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Defineix certificats arrel SSL per a la sol·licitud de pagament (per defecte: -sistema-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Defineix un idioma, per exemple «de_DE» (per defecte: preferències locals de sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Mostra totes les opcions de depuració (ús: --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostra la finestra de benvinguda a l'inici (per defecte: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Redueix el fitxer debug.log durant l'inici del client (per defecte: 1 quan no -debug)</translation> </message> @@ -3164,10 +3268,6 @@ <translation>Ha fallat la signatura de la transacció</translation> </message> <message> - <source>Start minimized</source> - <translation>Inicia minimitzat</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>L'import de la transacció és massa petit per pagar-ne una comissió</translation> </message> @@ -3192,10 +3292,6 @@ <translation>La transacció és massa gran</translation> </message> <message> - <source>UI Options:</source> - <translation>Opcions d'interfície:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>No s'ha pogut vincular a %s en aquest ordinador (la vinculació ha retornat l'error %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index e717f53d47..2c41ec78d4 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -434,6 +434,10 @@ <translation>No hi ha cap font de bloc disponible...</translation> </message> <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Proccessats %n bloc de l'historial de transaccions.</numerusform><numerusform>Proccessats %n blocs de l'historial de transaccions.</numerusform></translation> + </message> + <message numerus="yes"> <source>%n hour(s)</source> <translation><numerusform>%n hora</numerusform><numerusform>%n hores</numerusform></translation> </message> @@ -870,7 +874,7 @@ <source>command-line options</source> <translation>Opcions de la línia d'ordes</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1068,6 +1072,10 @@ <translation>Port del proxy (per exemple 9050)</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Finestra</translation> </message> @@ -2836,10 +2844,6 @@ <translation>Afig a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(per defecte: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> pot ser:</translation> </message> @@ -3056,10 +3060,6 @@ <translation>No es pot resoldre l'adreça -whitebind: «%s»</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Tria el directori de dades a l'inici (per defecte: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Connecta a través del proxy SOCKS5</translation> </message> @@ -3136,22 +3136,10 @@ <translation>Envia les transaccions com a transaccions de comissió zero sempre que siga possible (per defecte: %u) </translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Defineix certificats arrel SSL per a la sol·licitud de pagament (per defecte: -sistema-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Defineix un idioma, per exemple «de_DE» (per defecte: preferències locals de sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Mostra totes les opcions de depuració (ús: --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostra la finestra de benvinguda a l'inici (per defecte: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Redueix el fitxer debug.log durant l'inici del client (per defecte: 1 quan no -debug)</translation> </message> @@ -3160,10 +3148,6 @@ <translation>Ha fallat la signatura de la transacció</translation> </message> <message> - <source>Start minimized</source> - <translation>Inicia minimitzat</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>L'import de la transacció és massa petit per pagar-ne una comissió</translation> </message> @@ -3188,10 +3172,6 @@ <translation>La transacció és massa gran</translation> </message> <message> - <source>UI Options:</source> - <translation>Opcions d'interfície:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>No s'ha pogut vincular a %s en este ordinador (la vinculació ha retornat l'error %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index 331ad835f6..e6a932ebee 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP / Màscara de xarxa</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Bandejat fins</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -874,6 +882,34 @@ <source>command-line options</source> <translation>Opcions de la línia d'ordres</translation> </message> + <message> + <source>UI Options:</source> + <translation>Opcions d'interfície d'usuari:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Trieu el directori de dades a l'inici (per defecte: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Defineix la llengua, per exemple «de_DE» (per defecte: la definida pel sistema)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Inicia minimitzat</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Defineix els certificats arrel SSL per a la sol·licitud de pagament (per defecte: els del sistema)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Mostra la pantalla de benvinguda a l'inici (per defecte: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Reinicialitza tots els canvis de configuració fets des de la interfície gràfica</translation> + </message> </context> <context> <name>Intro</name> @@ -1072,6 +1108,18 @@ <translation>Port del proxy (per exemple 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Utilitzat per arribar als iguals mitjançant:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Mostra si el proxy SOCKS5 per defecte proporcionat s'utilitza per arribar als iguals mitjançant aquest tipus de xarxa.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Utilitza un proxy SOCKS4 apart per a arribar als iguals a través de serveis ocults de Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Finestra</translation> </message> @@ -1458,10 +1506,18 @@ <translation>&Iguals</translation> </message> <message> + <source>Banned peers</source> + <translation>Iguals bandejats</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Seleccioneu un igual per mostrar informació detallada.</translation> </message> <message> + <source>Whitelisted</source> + <translation>A la llista blanca</translation> + </message> + <message> <source>Direction</source> <translation>Direcció</translation> </message> @@ -1470,6 +1526,18 @@ <translation>Versió</translation> </message> <message> + <source>Starting Block</source> + <translation>Bloc d'inici</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Capçaleres sincronitzades</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Blocs sincronitzats</translation> + </message> + <message> <source>User Agent</source> <translation>Agent d'usuari</translation> </message> @@ -1498,6 +1566,14 @@ <translation>Temps de ping</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>La duració d'un ping més destacat actualment.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Espera de ping</translation> + </message> + <message> <source>Time Offset</source> <translation>Diferència horària</translation> </message> @@ -1546,6 +1622,34 @@ <translation>Neteja la consola</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Desconnecta el node</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Bandeja el node durant</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &hora</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &dia</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &setmana</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &any</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Desbandeja el node</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Us donem la benviguda a la consola RPC del Bitcoin Core.</translation> </message> @@ -1574,6 +1678,10 @@ <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(id del node: %1)</translation> + </message> + <message> <source>via %1</source> <translation>a través de %1</translation> </message> @@ -1966,6 +2074,10 @@ <translation>Copia el canvi</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Import total %1</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> @@ -1997,6 +2109,10 @@ <source>Payment request expired.</source> <translation>La sol·licitud de pagament ha vençut.</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Paga només la comissió necessària de %1</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>Estimat per començar la confirmació en %n bloc.</numerusform><numerusform>Estimat per començar la confirmació en %n blocs.</numerusform></translation> @@ -2780,6 +2896,14 @@ <translation>Accepta la línia d'ordres i ordres JSON-RPC </translation> </message> <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Comissions totals màximes (en %s) per utilitzar en una única transacció de moneder; definir-ne una massa baixa pot interrompre les transaccions més grans (per defecte: %s)</translation> + </message> + <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Comissió (en %s/kB) per afegir a les transaccions que envieu (per defecte: %s)</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Executa en segon pla com a programa dimoni i accepta ordres</translation> </message> @@ -2840,10 +2964,6 @@ <translation>Afegeix a la llista blanca els iguals que es connecten de la màscara de xarxa o adreça IP donada. Es pot especificar moltes vegades.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(per defecte: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> pot ser:</translation> </message> @@ -3060,10 +3180,6 @@ <translation>No es pot resoldre l'adreça -whitebind: «%s»</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Tria el directori de dades a l'inici (per defecte: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Connecta a través del proxy SOCKS5</translation> </message> @@ -3140,22 +3256,10 @@ <translation>Envia les transaccions com a transaccions de comissió zero sempre que sigui possible (per defecte: %u) </translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Defineix certificats arrel SSL per a la sol·licitud de pagament (per defecte: -sistema-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Defineix un idioma, per exemple «de_DE» (per defecte: preferències locals de sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Mostra totes les opcions de depuració (ús: --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostra la finestra de benvinguda a l'inici (per defecte: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Redueix el fitxer debug.log durant l'inici del client (per defecte: 1 quan no -debug)</translation> </message> @@ -3164,10 +3268,6 @@ <translation>Ha fallat la signatura de la transacció</translation> </message> <message> - <source>Start minimized</source> - <translation>Inicia minimitzat</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>L'import de la transacció és massa petit per pagar-ne una comissió</translation> </message> @@ -3192,10 +3292,6 @@ <translation>La transacció és massa gran</translation> </message> <message> - <source>UI Options:</source> - <translation>Opcions d'interfície:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>No s'ha pogut vincular a %s en aquest ordinador (la vinculació ha retornat l'error %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index a2232dbe8e..ef1903edd1 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -874,7 +874,7 @@ <source>command-line options</source> <translation>možnosti příkazové řádky</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1072,6 +1072,10 @@ <translation>Port proxy (např. 9050)</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Použít samostatnou SOCKS5 proxy ke spojení s protějšky přes skryté služby v Toru:</translation> + </message> + <message> <source>&Window</source> <translation>O&kno</translation> </message> @@ -2840,10 +2844,6 @@ <translation>Umístit na bílou listinu protějšky připojující se z dané podsítě či IP adresy. Lze zadat i vícekrát.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(výchozí: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> může být:</translation> </message> @@ -3060,10 +3060,6 @@ <translation>Nemohu přeložit -whitebind adresu: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Zvolit adresář pro data při startu (výchozí: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Připojit se přes SOCKS5 proxy</translation> </message> @@ -3140,22 +3136,10 @@ <translation>Posílat transakce pokud možno bez poplatků (výchozí: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Nastavit kořenové SSL certifikáty pro platební požadavky (výchozí: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Nastavit jazyk, například „de_DE“ (výchozí: systémové nastavení)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Zobrazit všechny možnosti ladění (užití: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Zobrazit startovací obrazovku (výchozí: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Při spuštění klienta zmenšit soubor debug.log (výchozí: 1, pokud není zadáno -debug)</translation> </message> @@ -3164,10 +3148,6 @@ <translation>Nepodařilo se podepsat transakci</translation> </message> <message> - <source>Start minimized</source> - <translation>Nastartovat minimalizovaně</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Částka v transakci je příliš malá na pokrytí poplatku</translation> </message> @@ -3192,10 +3172,6 @@ <translation>Transakce je příliš velká</translation> </message> <message> - <source>UI Options:</source> - <translation>Možnosti UI:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Nedaří se mi připojit na %s na tomhle počítači (operace bind vrátila chybu %s)</translation> </message> @@ -3352,6 +3328,10 @@ <translation>Zadej časový limit spojení v milivteřinách (minimum: 1, výchozí: %d)</translation> </message> <message> + <source>Specify pid file (default: %s)</source> + <translation>PID soubor (výchozí: %s)</translation> + </message> + <message> <source>Spend unconfirmed change when sending transactions (default: %u)</source> <translation>Utrácet i ještě nepotvrzené drobné při posílání transakcí (výchozí: %u)</translation> </message> diff --git a/src/qt/locale/bitcoin_cs_CZ.ts b/src/qt/locale/bitcoin_cs_CZ.ts new file mode 100644 index 0000000000..cc0c791154 --- /dev/null +++ b/src/qt/locale/bitcoin_cs_CZ.ts @@ -0,0 +1,645 @@ +<TS language="cs_CZ" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Create a new address</source> + <translation>Vytvořit novou adresu</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Kopírovat aktuálně vybrané adresy do schránky</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Odstranit</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Textový soubor oddělený středníkem (*.csv)</translation> + </message> + </context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Popis</translation> + </message> + <message> + <source>Address</source> + <translation>Adresa</translation> + </message> + <message> + <source>(no label)</source> + <translation>(bez popisu)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Enter passphrase</source> + <translation>Zadej heslo</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Nové heslo</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Zopakujte nové heslo</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Zašifrovat peněženku</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>Tato operace vyžaduje heslo k odemknutí peněženky.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Odemknout peněženku</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>Tato operace vyžaduje heslo k dešifrování peněženky.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Dešifrovat peněženku</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Změnit heslo</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Potvrďte zašifrování peněženky</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Peněženka zašifrována</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Zašifrování peněženky selhalo</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Šifrování peněženky selhalo vinou vnitřní chyby. Vaše peněženka nebyla zašifrována.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>Zadaná hesla nejsou shodná.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Odemčení peněženky selhalo</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>Heslo zadané k dešifrování peněženky nebylo správné</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Deěifrování peněženky selhalo</translation> + </message> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Synchronizing with network...</source> + <translation>Synchronizuji se sítí...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Přehled</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Zobrazit základní přehled o peněžence</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transakce</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Procházení historií transakcí</translation> + </message> + <message> + <source>Quit application</source> + <translation>Ukončit aplikaci</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Možnosti...</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>Změnit heslo k šifrování peněženky</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>&File</source> + <translation>&Soubor</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Nastavení</translation> + </message> + <message> + <source>&Help</source> + <translation>Nápo&věda</translation> + </message> + <message> + <source>Tabs toolbar</source> + <translation>Panely</translation> + </message> + <message> + <source>Up to date</source> + <translation>Aktuální</translation> + </message> + <message> + <source>Catching up...</source> + <translation>Zachytávám...</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>Odeslané transakce</translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>Příchozí transakce</translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> + <translation>Peněženka je <b>zašifrována</b> a momentálně <b>odemčená</b></translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> + <translation>Peněženka je <b>zašifrována</b> a momentálně <b>uzamčená</b></translation> + </message> +</context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Amount:</source> + <translation>Množství:</translation> + </message> + <message> + <source>Amount</source> + <translation>Množství</translation> + </message> + <message> + <source>Date</source> + <translation>Datum</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Potvrzeno</translation> + </message> + <message> + <source>Copy address</source> + <translation>Kopírovat sdresu</translation> + </message> + <message> + <source>Copy label</source> + <translation>Kopírovat popis</translation> + </message> + <message> + <source>(no label)</source> + <translation>(bez popisu)</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Upravit adresu</translation> + </message> + <message> + <source>&Label</source> + <translation>&Popisek</translation> + </message> + <message> + <source>&Address</source> + <translation>&Adresa</translation> + </message> + <message> + <source>New receiving address</source> + <translation>Nová adresa pro příjem</translation> + </message> + <message> + <source>New sending address</source> + <translation>Nová adresa k odeslání</translation> + </message> + <message> + <source>Edit receiving address</source> + <translation>Upravit adresu pro příjem</translation> + </message> + <message> + <source>Edit sending address</source> + <translation>Upravit adresu k odeslání</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>Zadaná adresa "%1" se již v seznamu adres nachází.</translation> + </message> + <message> + <source>Could not unlock wallet.</source> + <translation>Nemohu odemknout peněženku</translation> + </message> + <message> + <source>New key generation failed.</source> + <translation>Generování nového klíče selhalo.</translation> + </message> +</context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Usage:</source> + <translation>Použití:</translation> + </message> + </context> +<context> + <name>Intro</name> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + <message> + <source>Options</source> + <translation>Možnosti</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Mapovat port pomocí &UPnP</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&Minimalizovat do systémové lišty (tray) namísto do hlavního panelu</translation> + </message> + <message> + <source>M&inimize on close</source> + <translation>M&inimalizovat při zavření</translation> + </message> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + <message> + <source>Amount</source> + <translation>Množství</translation> + </message> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + <message> + <source>Name</source> + <translation>Jméno</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>&Label:</source> + <translation>&Popisek:</translation> + </message> + <message> + <source>&Message:</source> + <translation>Zpráva:</translation> + </message> + <message> + <source>Copy label</source> + <translation>Kopírovat popis</translation> + </message> + </context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Address</source> + <translation>Adresa</translation> + </message> + <message> + <source>Amount</source> + <translation>Množství</translation> + </message> + <message> + <source>Label</source> + <translation>Popis</translation> + </message> + <message> + <source>Message</source> + <translation>Zpráva</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Datum</translation> + </message> + <message> + <source>Label</source> + <translation>Popis</translation> + </message> + <message> + <source>Message</source> + <translation>Zpráva</translation> + </message> + <message> + <source>Amount</source> + <translation>Množství</translation> + </message> + <message> + <source>(no label)</source> + <translation>(bez popisu)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Amount:</source> + <translation>Množství:</translation> + </message> + <message> + <source>Balance:</source> + <translation>Zůstatek:</translation> + </message> + <message> + <source>The amount to pay must be larger than 0.</source> + <translation>Částka k zaplacení musí být větší než 0.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(bez popisu)</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>&Label:</source> + <translation>&Popisek:</translation> + </message> + <message> + <source>Message:</source> + <translation>Zpráva:</translation> + </message> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + <message> + <source>[testnet]</source> + <translation>[testnet]</translation> + </message> +</context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>%1/unconfirmed</source> + <translation>%1 potvrzeno</translation> + </message> + <message> + <source>%1 confirmations</source> + <translation>%1 potvrzení</translation> + </message> + <message> + <source>Status</source> + <translation>Stav</translation> + </message> + <message> + <source>Date</source> + <translation>Datum</translation> + </message> + <message> + <source>Message</source> + <translation>Zpráva</translation> + </message> + <message> + <source>Transaction</source> + <translation>Transakce</translation> + </message> + <message> + <source>Amount</source> + <translation>Množství</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + <message> + <source>Transaction details</source> + <translation>Detaily transakce</translation> + </message> + <message> + <source>This pane shows a detailed description of the transaction</source> + <translation>Toto podokno zobrazuje detailní popis transakce</translation> + </message> +</context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Datum</translation> + </message> + <message> + <source>Type</source> + <translation>Typ</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Potvrzeno (%1 potvrzení)</translation> + </message> + <message> + <source>This block was not received by any other nodes and will probably not be accepted!</source> + <translation>Tento blok nebyl přijat žádným dalším uzlem a pravděpodobně nebude akceptován!</translation> + </message> + <message> + <source>Label</source> + <translation>Popis</translation> + </message> + <message> + <source>Received with</source> + <translation>Přijato s</translation> + </message> + <message> + <source>Sent to</source> + <translation>Odesláno na</translation> + </message> + <message> + <source>Payment to yourself</source> + <translation>Platba sobě samému</translation> + </message> + <message> + <source>Mined</source> + <translation>Vytěženo</translation> + </message> + <message> + <source>Type of transaction.</source> + <translation>Typ transakce.</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>All</source> + <translation>Vše</translation> + </message> + <message> + <source>Today</source> + <translation>Dnes</translation> + </message> + <message> + <source>This week</source> + <translation>Tento týden</translation> + </message> + <message> + <source>This month</source> + <translation>Tento měsíc</translation> + </message> + <message> + <source>Last month</source> + <translation>Minulý měsíc</translation> + </message> + <message> + <source>This year</source> + <translation>Tento rok</translation> + </message> + <message> + <source>Range...</source> + <translation>Rozsah...</translation> + </message> + <message> + <source>Received with</source> + <translation>Přijato s</translation> + </message> + <message> + <source>Sent to</source> + <translation>Odesláno na</translation> + </message> + <message> + <source>To yourself</source> + <translation>Sobě samému</translation> + </message> + <message> + <source>Mined</source> + <translation>Vytěženo</translation> + </message> + <message> + <source>Other</source> + <translation>Ostatní</translation> + </message> + <message> + <source>Min amount</source> + <translation>Min. množství</translation> + </message> + <message> + <source>Copy address</source> + <translation>Kopírovat sdresu</translation> + </message> + <message> + <source>Copy label</source> + <translation>Kopírovat popis</translation> + </message> + <message> + <source>Edit label</source> + <translation>Upravit popis</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Textový soubor oddělený středníkem (*.csv)</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Potvrzeno</translation> + </message> + <message> + <source>Date</source> + <translation>Datum</translation> + </message> + <message> + <source>Type</source> + <translation>Typ</translation> + </message> + <message> + <source>Label</source> + <translation>Popis</translation> + </message> + <message> + <source>Address</source> + <translation>Adresa</translation> + </message> + <message> + <source>ID</source> + <translation>ID</translation> + </message> + <message> + <source>Range:</source> + <translation>Rozsah:</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>Možnosti:</translation> + </message> + <message> + <source>Loading addresses...</source> + <translation>Načítání adres...</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>Načítání peněženky...</translation> + </message> + <message> + <source>Done loading</source> + <translation>Načítání dokončeno</translation> + </message> + </context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index eba0363334..c32d236a91 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -348,6 +348,10 @@ <context> <name>CoinControlDialog</name> <message> + <source>Amount:</source> + <translation>Maint</translation> + </message> + <message> <source>Date</source> <translation>Dyddiad</translation> </message> @@ -546,6 +550,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Cyfeiriad Copi</translation> + </message> + <message> <source>Address</source> <translation>Cyfeiriad</translation> </message> @@ -584,6 +592,10 @@ <translation>Anfon arian</translation> </message> <message> + <source>Amount:</source> + <translation>Maint</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Anfon at pobl lluosog ar yr un pryd</translation> </message> @@ -626,6 +638,10 @@ <source>Alt+P</source> <translation>Alt+P</translation> </message> + <message> + <source>Message:</source> + <translation>Neges:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -762,6 +778,10 @@ <context> <name>bitcoin-core</name> <message> + <source>Options:</source> + <translation>Opsiynau:</translation> + </message> + <message> <source>Information</source> <translation>Gwybodaeth</translation> </message> diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index ac194e0520..aa2724a1e8 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>kommandolinjetilvalg</translation> </message> + <message> + <source>UI Options:</source> + <translation>Indstillinger for brugergrænseflade:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Vælg datamappe under opstart (standard: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Vælg sprog; fx "da_DK" (standard: systemsprog)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Start minimeret</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Opsæt SSL-rodcertifikater til betalingsadmodninger (standard: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Vis startskærm under opstart (standard: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Nulstil alle indstillinger, der er foretaget i den grafiske brugerflade</translation> + </message> </context> <context> <name>Intro</name> @@ -925,7 +953,11 @@ <source>%n GB of free space available</source> <translation><numerusform>%n GB fri plads tilgængelig</numerusform><numerusform>%n GB fri plads tilgængelig</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(ud af %n GB behøvet)</numerusform><numerusform>(ud af %n GB behøvet)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -1474,6 +1506,18 @@ <translation>Nuværende antal blokke</translation> </message> <message> + <source>Memory Pool</source> + <translation>Hukommelsespulje</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Aktuelt antal transaktioner</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Hukommelsesforbrug</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Åbn Bitcoin Cores fejlsøgningslogfil fra den aktuelle datamappe. Dette kan tage nogle få sekunder for store logfiler.</translation> </message> @@ -2996,10 +3040,6 @@ <translation>Sæt andre knuder, der forbinder fra den angivne netmaske eller IP, på hvidliste. Kan angives flere gange.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(standard: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool skal være mindst %d MB</translation> </message> @@ -3272,10 +3312,6 @@ <translation>Kan ikke løse -whitebind adresse: "%s"</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Vælg datamappe ved opstart (standard: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Forbind gennem SOCKS5-proxy</translation> </message> @@ -3364,22 +3400,10 @@ <translation>Send transaktioner som nul-gebyr-transaktioner hvis muligt (standard: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Sæt SSL-rodcertifikater for betalingsanmodning (standard: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Angiv sprog, fx "da_DK" (standard: systemlokalitet)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Vis alle tilvalg for fejlsøgning (brug: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Vis opstartsbillede ved opstart (standard: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Formindsk debug.log filen ved klientopstart (standard: 1 hvis ikke -debug)</translation> </message> @@ -3388,10 +3412,6 @@ <translation>Underskrift af transaktion mislykkedes</translation> </message> <message> - <source>Start minimized</source> - <translation>Start minimeret</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Transaktionsbeløbet er for lille til at betale gebyret</translation> </message> @@ -3424,10 +3444,6 @@ <translation>Transaktionen er for stor</translation> </message> <message> - <source>UI Options:</source> - <translation>Indstillinger for brugerflade:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Ikke i stand til at tildele til %s på denne computer (bind returnerede fejl %s)</translation> </message> @@ -3508,6 +3524,10 @@ <translation>Fejl under læsning af wallet.dat! Alle nøgler blev læst korrekt, men transaktionsdata eller indgange i adressebogen kan mangle eller være ukorrekte.</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Gebyrer (i %s/kB) mindre end dette opfattes som intet gebyr under oprettelse af transaktioner (standard: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Hvor gennemarbejdet blokverificeringen for -checkblocks er (0-4; standard: %u)</translation> </message> @@ -3524,6 +3544,10 @@ <translation>Udskriv fejlsøgningsinformation (standard: %u, angivelse af <kategori> er valgfri)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Understøt filtrering af blokke og transaktioner med Bloom-filtre (standard: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>Den totale længde på netværksversionsstrengen (%i) overstiger maksimallængden (%i). Reducér antaller af eller størrelsen på uacomments.</translation> </message> @@ -3540,6 +3564,10 @@ <translation>Brug separat SOCS5-proxy for at nå knuder via skjulte Tor-tjenester (standard: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Brugernavn og hashet adgangskode for JSON-RPC-forbindelser. Feltet <userpw> er i formatet: <BRUGERNAVN>:<SALT>$<HASH>. Et kanonisk Python-skript inkluderes i share/rpcuser. Dette tilvalg kan angives flere gange</translation> + </message> + <message> <source>(default: %s)</source> <translation>(standard: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 6b68b3c74a..84de80aff5 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>Kommandozeilenoptionen</translation> </message> + <message> + <source>UI Options:</source> + <translation>UI Einstellungen:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Datenverzeichnis beim Starten auswählen (Standard: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Sprache einstellen, zum Beispiel "de_DE" (default: system locale)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Minimiert starten</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Startbildschirm beim Starten anzeigen (Standard: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Setze alle Einstellungen zurück, die über die grafische Oberfläche geändert wurden.</translation> + </message> </context> <context> <name>Intro</name> @@ -1080,6 +1108,14 @@ <translation>Port des Proxies (z.B. 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Benutzt um Gegenstellen zu erreichen über:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Zeigt an, ob der eingegebene Standard SOCKS5 Proxy genutzt wird um Peers mit dem Netzwerktyp zu erreichen.</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -1092,6 +1128,14 @@ <translation>Tor</translation> </message> <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Über einen separaten SOCKS5 Proxy für Tor Services mit dem Bitcoint Netzwerk verbinden.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Separaten SOCKS5-Proxy verwenden, um Gegenstellen über versteckte Tor-Dienste zu erreichen:</translation> + </message> + <message> <source>&Window</source> <translation>&Programmfenster</translation> </message> @@ -1462,6 +1506,18 @@ <translation>Aktuelle Anzahl Blöcke</translation> </message> <message> + <source>Memory Pool</source> + <translation>Speicherpool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Aktuelle Anzahl der Transaktionen</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Speichernutzung</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Öffnet die "Bitcoin Core"-Debugprotokolldatei aus dem aktuellen Datenverzeichnis. Dies kann bei großen Protokolldateien einige Sekunden dauern.</translation> </message> @@ -1478,10 +1534,18 @@ <translation>&Gegenstellen</translation> </message> <message> + <source>Banned peers</source> + <translation>Gesperrte Peers</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Gegenstelle auswählen, um detaillierte Informationen zu erhalten.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Zugelassene</translation> + </message> + <message> <source>Direction</source> <translation>Richtung</translation> </message> @@ -1490,6 +1554,10 @@ <translation>Version</translation> </message> <message> + <source>Starting Block</source> + <translation>Start Block</translation> + </message> + <message> <source>Synced Headers</source> <translation>Synchronisierte Kopfdaten</translation> </message> @@ -1526,6 +1594,14 @@ <translation>Pingzeit</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>Die Laufzeit eines aktuell ausstehenden Ping.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Ping Wartezeit</translation> + </message> + <message> <source>Time Offset</source> <translation>Zeitversatz</translation> </message> @@ -1578,6 +1654,10 @@ <translation>Knoten &trennen</translation> </message> <message> + <source>Ban Node for</source> + <translation>Knoten gebannt für</translation> + </message> + <message> <source>1 &hour</source> <translation>1 &Stunde</translation> </message> @@ -1594,6 +1674,10 @@ <translation>1 &Jahr</translation> </message> <message> + <source>&Unban Node</source> + <translation>&Node entsperren</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Willkommen in der "Bitcoin Core"-RPC-Konsole.</translation> </message> @@ -2053,6 +2137,10 @@ <source>Payment request expired.</source> <translation>Zahlungsanforderung abgelaufen.</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Nur die notwendige Gebühr in Höhe von %1 zahlen</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>Voraussichtlicher Beginn der Bestätigung innerhalb von %n Block.</numerusform><numerusform>Voraussichtlicher Beginn der Bestätigung innerhalb von %n Blöcken.</numerusform></translation> @@ -2689,6 +2777,10 @@ <translation>Transaktions-ID kopieren</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Kopiere rohe Transaktion</translation> + </message> + <message> <source>Edit label</source> <translation>Bezeichnung bearbeiten</translation> </message> @@ -2836,6 +2928,14 @@ <translation>Kommandozeilen- und JSON-RPC-Befehle annehmen</translation> </message> <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Maximale Gesamtgebühr (in %s) in einer Börsentransaktion; wird dies zu niedrig gesetzten können große Transaktionen abgebrochen werden (Standard: %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Bitte korrigieren Sie die Datums- und Uhrzeiteinstellungen Ihres Computers, da Bitcoin Core ansonsten nicht ordnungsgemäß funktionieren wird.</translation> + </message> + <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> <translation>Fehler: Ein schwerer interner Fehler ist aufgetreten, siehe debug.log für Details.</translation> </message> @@ -2848,6 +2948,10 @@ <translation>Als Hintergrunddienst ausführen und Befehle annehmen</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Kann HTTP Server nicht starten. Siehe debug log für Details.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Eingehende Verbindungen annehmen (Standard: 1, wenn nicht -proxy oder -connect)</translation> </message> @@ -2904,10 +3008,6 @@ <translation>Gegenstellen die sich von der angegebenen Netzmaske oder IP-Adresse aus verbinden immer zulassen. Kann mehrmals angegeben werden.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(Standard: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool muss mindestens %d MB betragen</translation> </message> @@ -2944,6 +3044,18 @@ <translation>Möchten Sie die Blockdatenbank jetzt neu aufbauen?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Aktiviere das Veröffentlichen des Hash-Blocks in <address></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Aktiviere das Veröffentlichen der Hash-Transaktion in <address></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Aktiviere das Veröffentlichen des Raw-Blocks in <address></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Fehler beim Initialisieren der Blockdatenbank</translation> </message> @@ -3008,6 +3120,18 @@ <translation>Wallet-Datei angeben (innerhalb des Datenverzeichnisses)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Nicht unterstütztes Argument -benchmark wurde ignoriert, bitte -debug=bench verwenden.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Nicht unterstütztes Argument -debugnet wurde ignoriert, bitte -debug=net verwenden.</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Nicht unterstütztes Argument -tor gefunden, bitte -onion verwenden.</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>UPnP verwenden, um eine Portweiterleitung einzurichten (Standard: %u)</translation> </message> @@ -3124,12 +3248,16 @@ <translation>Aktiviere beste Blockkette...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Kann Adresse in -whitebind nicht auflösen: '%s'</translation> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Versuchen, private Schlüssel beim Starten aus einer beschädigten wallet.dat wiederherzustellen</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Automatisch versteckten Tor-Dienst erstellen (Standard: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Datenverzeichnis beim Starten auswählen (Standard: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Kann Adresse in -whitebind nicht auflösen: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3148,6 +3276,10 @@ <translation>Fehler beim lesen der Datenbank, Ausführung wird beendet.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Blöcke beim Starten aus externer Datei blk000??.dat importieren</translation> + </message> + <message> <source>Information</source> <translation>Hinweis</translation> </message> @@ -3200,6 +3332,10 @@ <translation>P2P-Netzwerk-Alarme empfangen und anzeigen (Standard: %u)</translation> </message> <message> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Blockkette beim Starten erneut nach fehlenden Wallet-Transaktionen durchsuchen</translation> + </message> + <message> <source>Send trace/debug info to console instead of debug.log file</source> <translation>Rückverfolgungs- und Debuginformationen an die Konsole senden, anstatt sie in debug.log zu schreiben</translation> </message> @@ -3208,22 +3344,10 @@ <translation>Transaktionen, wenn möglich, als gebührenfreie Transaktion senden (Standard: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Sprache festlegen, z.B. "de_DE" (Standard: Systemstandard)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Zeige alle Debuggingoptionen (Benutzung: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Startbildschirm beim Starten anzeigen (Standard: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Protokolldatei debug.log beim Starten des Clients kürzen (Standard: 1, wenn kein -debug)</translation> </message> @@ -3232,10 +3356,6 @@ <translation>Signierung der Transaktion fehlgeschlagen</translation> </message> <message> - <source>Start minimized</source> - <translation>Minimiert starten</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Der Transaktionsbetrag ist zu niedrig, um die Gebühr zu bezahlen.</translation> </message> @@ -3244,6 +3364,14 @@ <translation>Dies ist experimentelle Software.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>TOR Kontrollport Passwort (Standard: leer)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Zu benutzender TOR Kontrollport wenn Onion Auflistung aktiv ist (Standard: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Transaktionsbetrag zu niedrig</translation> </message> @@ -3260,14 +3388,14 @@ <translation>Transaktion zu groß</translation> </message> <message> - <source>UI Options:</source> - <translation>Benutzeroberflächenoptionen:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Kann auf diesem Computer nicht an %s binden (bind meldete Fehler %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Wallet beim Starten auf das neueste Format aktualisieren</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Benutzername für JSON-RPC-Verbindungen</translation> </message> @@ -3280,6 +3408,10 @@ <translation>Warnung</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Legt fest ob nur Blöcke Modus aktiv sein soll (Standard: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Lösche alle Transaktionen aus Wallet...</translation> </message> @@ -3320,6 +3452,22 @@ <translation>(1 = TX-Metadaten wie z.B. Accountbesitzer und Zahlungsanforderungsinformationen behalten, 2 = TX-Metadaten verwerfen)</translation> </message> <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee ist auf einen sehr hohen Wert festgelegt! Gebühren dieser Höhe könnten für eine einzelne Transaktion bezahlt werden.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee ist auf einen sehr hohen Wert festgelegt! Dies ist die Gebühr die beim Senden einer Transaktion fällig wird.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Die Transaktion nicht länger im Speicherpool behalten als <n> Stunden (Standard: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Lesen von wallet.dat fehlgeschlagen! Alle Schlüssel wurden korrekt gelesen, Transaktionsdaten bzw. Adressbucheinträge fehlen aber möglicherweise oder sind inkorrekt.</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Legt fest, wie gründlich die Blockverifikation von -checkblocks ist (0-4, Standard: %u)</translation> </message> @@ -3336,6 +3484,14 @@ <translation>Debugginginformationen ausgeben (Standard: %u, <category> anzugeben ist optional)</translation> </message> <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Versucht ausgehenden Datenverkehr unter dem gegebenen Wert zu halten (in MiB pro 24h), 0 = kein Limit (default: %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Nicht unterstütztes Argument -socks gefunden. Das Festlegen der SOCKS-Version ist nicht mehr möglich, nur noch SOCKS5-Proxies werden unterstützt.</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Separaten SOCKS5-Proxy verwenden, um Gegenstellen über versteckte Tor-Dienste zu erreichen (Standard: %s)</translation> </message> @@ -3372,6 +3528,10 @@ <translation><port> nach JSON-RPC-Verbindungen abhören (Standard: %u oder Testnetz: %u)</translation> </message> <message> + <source>Listen for connections on <port> (default: %u or testnet: %u)</source> + <translation><port> nach Verbindungen abhören (Standard: %u oder Testnetz: %u)</translation> + </message> + <message> <source>Maintain at most <n> connections to peers (default: %u)</source> <translation>Maximal <n> Verbindungen zu Gegenstellen aufrechterhalten (Standard: %u)</translation> </message> diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts new file mode 100644 index 0000000000..6777961cbc --- /dev/null +++ b/src/qt/locale/bitcoin_el.ts @@ -0,0 +1,321 @@ +<TS language="el" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Create a new address</source> + <translation>Δημιουργία νέου λογαριασμού</translation> + </message> + </context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Ετικέτα</translation> + </message> + <message> + <source>Address</source> + <translation>Διεύθυνση</translation> + </message> + </context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Enter passphrase</source> + <translation>Εισάγετε συνθηματικό</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Νέο συνθηματικό</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Επαναλάβετε νέο συνθηματικό</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Αλλαγή συνθηματικού</translation> + </message> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Quit application</source> + <translation>Κλείσιμο εφαρμογής</translation> + </message> + <message> + <source>Wallet</source> + <translation>Πορτοφόλι</translation> + </message> + <message> + <source>Error</source> + <translation>Σφάλμα</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Date</source> + <translation>Ημερομηνία</translation> + </message> + <message> + <source>Copy address</source> + <translation>Αντιγραφή διεύθυνσης</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Αντιγραφή ποσού</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Αντιγραφή ποσότητας</translation> + </message> + <message> + <source>Copy change</source> + <translation>Αντιγραφή αλλαγής</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Ετικέτα</translation> + </message> + <message> + <source>&Address</source> + <translation>Διεύθυνση</translation> + </message> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>version</source> + <translation>έκδοση</translation> + </message> + </context> +<context> + <name>Intro</name> + <message> + <source>Welcome</source> + <translation>Καλώς Ήλθατε</translation> + </message> + <message> + <source>Error</source> + <translation>Σφάλμα</translation> + </message> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + <message> + <source>W&allet</source> + <translation>Πορτοφόλι</translation> + </message> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + <message> + <source>Services</source> + <translation>Υπηρεσίες</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>Remove</source> + <translation>Αφαίρεση</translation> + </message> + <message> + <source>Copy message</source> + <translation>Αντιγραφή μηνύματος</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Αντιγραφή ποσού</translation> + </message> +</context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Address</source> + <translation>Διεύθυνση</translation> + </message> + <message> + <source>Label</source> + <translation>Ετικέτα</translation> + </message> + <message> + <source>Message</source> + <translation>Μήνυμα</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Ημερομηνία</translation> + </message> + <message> + <source>Label</source> + <translation>Ετικέτα</translation> + </message> + <message> + <source>Message</source> + <translation>Μήνυμα</translation> + </message> + <message> + <source>(no message)</source> + <translation>(κανένα μήνυμα)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Insufficient funds!</source> + <translation>Κεφάλαια μη επαρκή</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Συνίσταται:</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Αντιγραφή ποσότητας</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Αντιγραφή ποσού</translation> + </message> + <message> + <source>Copy change</source> + <translation>Αντιγραφή αλλαγής</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>Message:</source> + <translation>Μήνυμα:</translation> + </message> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>Ημερομηνία</translation> + </message> + <message> + <source>Message</source> + <translation>Μήνυμα</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Ημερομηνία</translation> + </message> + <message> + <source>Label</source> + <translation>Ετικέτα</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Copy address</source> + <translation>Αντιγραφή διεύθυνσης</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Αντιγραφή ποσού</translation> + </message> + <message> + <source>Date</source> + <translation>Ημερομηνία</translation> + </message> + <message> + <source>Label</source> + <translation>Ετικέτα</translation> + </message> + <message> + <source>Address</source> + <translation>Διεύθυνση</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Insufficient funds</source> + <translation>Κεφάλαια μη επαρκή</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>Φόρτωση πορτοφολιού...</translation> + </message> + <message> + <source>Rescanning...</source> + <translation>Επανάληψη σάρωσης</translation> + </message> + <message> + <source>Done loading</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_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts index d9f8dee5ef..90c27c4394 100644 --- a/src/qt/locale/bitcoin_el_GR.ts +++ b/src/qt/locale/bitcoin_el_GR.ts @@ -695,6 +695,10 @@ <translation>Αυτή η ετικέτα γίνεται κόκκινη αν οποιοσδήποτε παραλήπτης λάβει ποσό μικρότερο από %1.</translation> </message> <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Μπορεί να διαφέρει +/- %1 Satoshi (ες) ανά εγγραφή.</translation> + </message> + <message> <source>yes</source> <translation>ναι</translation> </message> @@ -707,6 +711,10 @@ <translation>Ελάχιστο χρεώσιμο ποσό τουλάχιστο %1 ανα kB</translation> </message> <message> + <source>Can vary +/- 1 byte per input.</source> + <translation>Μπορεί να διαφέρει +/- 1 byte ανά εγγραφή.</translation> + </message> + <message> <source>Transactions with higher priority are more likely to get included into a block.</source> <translation>Συναλλαγές με υψηλότερη προτεραιότητα είναι πιο πιθανό να περιλαμβάνονται σε ένα μπλοκ.</translation> </message> @@ -832,7 +840,7 @@ <source>command-line options</source> <translation>επιλογής γραμμής εντολών</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -2543,10 +2551,6 @@ <translation>Προειδοποίηση : το αρχειο wallet.dat ειναι διεφθαρμένο, τα δεδομένα σώζονται ! Original wallet.dat αποθηκεύονται ως wallet.{timestamp}.bak στο %s . Αν το υπόλοιπο του ή τις συναλλαγές σας, είναι λάθος θα πρέπει να επαναφέρετε από ένα αντίγραφο ασφαλείας</translation> </message> <message> - <source>(default: 1)</source> - <translation>(προεπιλογή: 1)</translation> - </message> - <message> <source>Block creation options:</source> <translation>Αποκλεισμός επιλογων δημιουργίας: </translation> </message> @@ -2607,6 +2611,10 @@ <translation>Μόνο σύνδεση σε κόμβους του δικτύου <net> (ipv4, ipv6 ή onion)</translation> </message> <message> + <source>Set maximum block size in bytes (default: %d)</source> + <translation>Ορίστε το μέγιστο μέγεθος block σε bytes (προεπιλογή: %d)</translation> + </message> + <message> <source>Specify wallet file (within data directory)</source> <translation>Επιλέξτε αρχείο πορτοφολιού (μέσα απο κατάλογο δεδομένων)</translation> </message> @@ -2631,14 +2639,14 @@ <translation>Αδυναμία κλειδώματος του φακέλου δεδομένων %s. Πιθανώς το Bitcoin να είναι ήδη ενεργό.</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Επιλογή φακέλου δεδομένων στην εκκίνηση (προεπιλεγμένο: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Σύνδεση μέσω διαμεσολαβητή SOCKS5</translation> </message> <message> + <source>Copyright (C) 2009-%i The Bitcoin Core Developers</source> + <translation>Πνευματικά δικαιώματα 2009-%i Οι προγραμματιστές του Bitcoin Core</translation> + </message> + <message> <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source> <translation>Σφάλμα φόρτωσης wallet.dat: Το Πορτοφόλι απαιτεί μια νεότερη έκδοση του Bitcoin</translation> </message> @@ -2655,6 +2663,10 @@ <translation>Η εκκίνηση ελέγχου ορθότητας απέτυχε. Γίνεται τερματισμός του Bitcoin Core.</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Μη έγκυρο ποσό για την παράμετρο -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=<amount>: '%s'</translation> </message> @@ -2675,22 +2687,10 @@ <translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Ορίστε SSL root certificates για αίτηση πληρωμής (default: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Όρισε γλώσσα, για παράδειγμα "de_DE"(προεπιλογή:τοπικές ρυθμίσεις)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Προβολή όλων των επιλογών εντοπισμού σφαλμάτων (χρήση: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Συρρίκνωση του αρχείο debug.log κατα την εκκίνηση του πελάτη (προεπιλογή: 1 όταν δεν-debug)</translation> </message> @@ -2699,10 +2699,6 @@ <translation>Η υπογραφή συναλλαγής απέτυχε </translation> </message> <message> - <source>Start minimized</source> - <translation>Έναρξη ελαχιστοποιημένο</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Η εφαρμογή είναι σε πειραματικό στάδιο.</translation> </message> @@ -2791,6 +2787,14 @@ <translation>Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή: '%s'</translation> </message> <message> + <source>Maintain at most <n> connections to peers (default: %u)</source> + <translation>Μέγιστες αριθμός συνδέσεων με τους peers <n> (προεπιλογή: %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>Ορισμός λήξης χρονικού ορίου σε χιλιοστά του δευτερολέπτου(προεπιλογή: %d)</translation> </message> diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 0c5529955f..00411741f1 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -1121,6 +1121,41 @@ <source>command-line options</source> <translation type="unfinished">command-line options</translation> </message> + <message> + <location line="+9"/> + <source>UI Options:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Choose data directory on startup (default: %u)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Start minimized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Show splash screen on startup (default: %u)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Reset all settings changed in the GUI</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Intro</name> @@ -2888,7 +2923,7 @@ <context> <name>ShutdownWindow</name> <message> - <location filename="../utilitydialog.cpp" line="+96"/> + <location filename="../utilitydialog.cpp" line="+78"/> <source>Bitcoin Core is shutting down...</source> <translation type="unfinished"></translation> </message> diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts new file mode 100644 index 0000000000..bf912d295e --- /dev/null +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -0,0 +1,3719 @@ +<TS language="en_GB" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Right-click to edit address or label</translation> + </message> + <message> + <source>Create a new address</source> + <translation>Create a new address</translation> + </message> + <message> + <source>&New</source> + <translation>&New</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Copy the currently selected address to the system clipboard</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copy</translation> + </message> + <message> + <source>C&lose</source> + <translation>C&lose</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Copy Address</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Delete the currently selected address from the list</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Export the data in the current tab to a file</translation> + </message> + <message> + <source>&Export</source> + <translation>&Export</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Delete</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Choose the address to send coins to</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Choose the address to receive coins with</translation> + </message> + <message> + <source>C&hoose</source> + <translation>C&hoose</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Sending addresses</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Receiving addresses</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</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>These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction.</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Copy &Label</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Edit</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Export Address List</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Comma separated file (*.csv)</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exporting Failed</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>There was an error trying to save the address list to %1. Please try again.</translation> + </message> +</context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Address</source> + <translation>Address</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Passphrase Dialog</source> + <translation>Passphrase Dialog</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>Enter passphrase</translation> + </message> + <message> + <source>New passphrase</source> + <translation>New passphrase</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Repeat new passphrase</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Encrypt wallet</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>This operation needs your wallet passphrase to unlock the wallet.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Unlock wallet</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>This operation needs your wallet passphrase to decrypt the wallet.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Decrypt wallet</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Change passphrase</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Confirm wallet encryption</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Are you sure you wish to encrypt your wallet?</translation> + </message> + <message> + <source>Bitcoin Core 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 Core 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.</translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Warning: The Caps Lock key is on!</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Wallet encrypted</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>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>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase to the wallet.</source> + <translation>Enter the old passphrase and new passphrase to the wallet.</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Wallet encryption failed</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>The supplied passphrases do not match.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Wallet unlock failed</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>The passphrase entered for the wallet decryption was incorrect.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Wallet decryption failed</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>Wallet passphrase was successfully changed.</translation> + </message> +</context> +<context> + <name>BanTableModel</name> + <message> + <source>IP/Netmask</source> + <translation>IP/Netmask</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Banned Until</translation> + </message> +</context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Sign &message...</source> + <translation>Sign &message...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>Synchronising with network...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Overview</translation> + </message> + <message> + <source>Node</source> + <translation>Node</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Show general overview of wallet</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transactions</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Browse transaction history</translation> + </message> + <message> + <source>E&xit</source> + <translation>E&xit</translation> + </message> + <message> + <source>Quit application</source> + <translation>Quit application</translation> + </message> + <message> + <source>About &Qt</source> + <translation>About &Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>Show information about Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Options...</translation> + </message> + <message> + <source>&Encrypt Wallet...</source> + <translation>&Encrypt Wallet...</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>&Backup Wallet...</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>&Change Passphrase...</translation> + </message> + <message> + <source>&Sending addresses...</source> + <translation>&Sending addresses...</translation> + </message> + <message> + <source>&Receiving addresses...</source> + <translation>&Receiving addresses...</translation> + </message> + <message> + <source>Open &URI...</source> + <translation>Open &URI...</translation> + </message> + <message> + <source>Bitcoin Core client</source> + <translation>Bitcoin Core client</translation> + </message> + <message> + <source>Importing blocks from disk...</source> + <translation>Importing blocks from disk...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>Reindexing blocks on disk...</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Send coins to a Bitcoin address</translation> + </message> + <message> + <source>Backup wallet to another location</source> + <translation>Backup wallet to another location</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>Change the passphrase used for wallet encryption</translation> + </message> + <message> + <source>&Debug window</source> + <translation>&Debug window</translation> + </message> + <message> + <source>Open debugging and diagnostic console</source> + <translation>Open debugging and diagnostic console</translation> + </message> + <message> + <source>&Verify message...</source> + <translation>&Verify message...</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Wallet</source> + <translation>Wallet</translation> + </message> + <message> + <source>&Send</source> + <translation>&Send</translation> + </message> + <message> + <source>&Receive</source> + <translation>&Receive</translation> + </message> + <message> + <source>Show information about Bitcoin Core</source> + <translation>Show information about Bitcoin Core</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>&Show / Hide</translation> + </message> + <message> + <source>Show or hide the main Window</source> + <translation>Show or hide the main Window</translation> + </message> + <message> + <source>Encrypt the private keys that belong to your wallet</source> + <translation>Encrypt the private keys that belong to your wallet</translation> + </message> + <message> + <source>Sign messages with your Bitcoin addresses to prove you own them</source> + <translation>Sign messages with your Bitcoin addresses to prove you own them</translation> + </message> + <message> + <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> + <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> + </message> + <message> + <source>&File</source> + <translation>&File</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Settings</translation> + </message> + <message> + <source>&Help</source> + <translation>&Help</translation> + </message> + <message> + <source>Tabs toolbar</source> + <translation>Tabs toolbar</translation> + </message> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>Request payments (generates QR codes and bitcoin: URIs)</source> + <translation>Request payments (generates QR codes and bitcoin: URIs)</translation> + </message> + <message> + <source>&About Bitcoin Core</source> + <translation>&About Bitcoin Core</translation> + </message> + <message> + <source>Modify configuration options for Bitcoin Core</source> + <translation>Modify configuration options for Bitcoin Core</translation> + </message> + <message> + <source>Show the list of used sending addresses and labels</source> + <translation>Show the list of used sending addresses and labels</translation> + </message> + <message> + <source>Show the list of used receiving addresses and labels</source> + <translation>Show the list of used receiving addresses and labels</translation> + </message> + <message> + <source>Open a bitcoin: URI or payment request</source> + <translation>Open a bitcoin: URI or payment request</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>&Command-line options</translation> + </message> + <message> + <source>Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options</source> + <translation>Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options</translation> + </message> + <message numerus="yes"> + <source>%n active connection(s) to Bitcoin network</source> + <translation><numerusform>%n active connection to Bitcoin network</numerusform><numerusform>%n active connections to Bitcoin network</numerusform></translation> + </message> + <message> + <source>No block source available...</source> + <translation>No block source available...</translation> + </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Processed %n block of transaction history.</numerusform><numerusform>Processed %n blocks of transaction history.</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n day</numerusform><numerusform>%n days</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n week</numerusform><numerusform>%n weeks</numerusform></translation> + </message> + <message> + <source>%1 and %2</source> + <translation>%1 and %2</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n year</numerusform><numerusform>%n years</numerusform></translation> + </message> + <message> + <source>%1 behind</source> + <translation>%1 behind</translation> + </message> + <message> + <source>Last received block was generated %1 ago.</source> + <translation>Last received block was generated %1 ago.</translation> + </message> + <message> + <source>Transactions after this will not yet be visible.</source> + <translation>Transactions after this will not yet be visible.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <source>Warning</source> + <translation>Warning</translation> + </message> + <message> + <source>Information</source> + <translation>Information</translation> + </message> + <message> + <source>Up to date</source> + <translation>Up to date</translation> + </message> + <message> + <source>Catching up...</source> + <translation>Catching up...</translation> + </message> + <message> + <source>Date: %1 +</source> + <translation>Date: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>Amount: %1 +</translation> + </message> + <message> + <source>Type: %1 +</source> + <translation>Type: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>Label: %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>Address: %1 +</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>Sent transaction</translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>Incoming transaction</translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> + <translation>Wallet is <b>encrypted</b> and currently <b>unlocked</b></translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> + <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> + </message> +</context> +<context> + <name>ClientModel</name> + <message> + <source>Network Alert</source> + <translation>Network Alert</translation> + </message> +</context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Coin Selection</source> + <translation>Coin Selection</translation> + </message> + <message> + <source>Quantity:</source> + <translation>Quantity:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Amount:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Priority:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Fee:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Dust:</translation> + </message> + <message> + <source>After Fee:</source> + <translation>After Fee:</translation> + </message> + <message> + <source>Change:</source> + <translation>Change:</translation> + </message> + <message> + <source>(un)select all</source> + <translation>(un)select all</translation> + </message> + <message> + <source>Tree mode</source> + <translation>Tree mode</translation> + </message> + <message> + <source>List mode</source> + <translation>List mode</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Received with label</source> + <translation>Received with label</translation> + </message> + <message> + <source>Received with address</source> + <translation>Received with address</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Confirmations</source> + <translation>Confirmations</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmed</translation> + </message> + <message> + <source>Priority</source> + <translation>Priority</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copy address</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copy transaction ID</translation> + </message> + <message> + <source>Lock unspent</source> + <translation>Lock unspent</translation> + </message> + <message> + <source>Unlock unspent</source> + <translation>Unlock unspent</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copy quantity</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copy fee</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Copy after fee</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copy bytes</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Copy priority</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copy dust</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copy change</translation> + </message> + <message> + <source>highest</source> + <translation>highest</translation> + </message> + <message> + <source>higher</source> + <translation>higher</translation> + </message> + <message> + <source>high</source> + <translation>high</translation> + </message> + <message> + <source>medium-high</source> + <translation>medium-high</translation> + </message> + <message> + <source>medium</source> + <translation>medium</translation> + </message> + <message> + <source>low-medium</source> + <translation>low-medium</translation> + </message> + <message> + <source>low</source> + <translation>low</translation> + </message> + <message> + <source>lower</source> + <translation>lower</translation> + </message> + <message> + <source>lowest</source> + <translation>lowest</translation> + </message> + <message> + <source>(%1 locked)</source> + <translation>(%1 locked)</translation> + </message> + <message> + <source>none</source> + <translation>none</translation> + </message> + <message> + <source>This label turns red if the transaction size is greater than 1000 bytes.</source> + <translation>This label turns red if the transaction size is greater than 1000 bytes.</translation> + </message> + <message> + <source>This label turns red if the priority is smaller than "medium".</source> + <translation>This label turns red if the priority is smaller than "medium".</translation> + </message> + <message> + <source>This label turns red if any recipient receives an amount smaller than %1.</source> + <translation>This label turns red if any recipient receives an amount smaller than %1.</translation> + </message> + <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Can vary +/- %1 satoshi(s) per input.</translation> + </message> + <message> + <source>yes</source> + <translation>yes</translation> + </message> + <message> + <source>no</source> + <translation>no</translation> + </message> + <message> + <source>This means a fee of at least %1 per kB is required.</source> + <translation>This means a fee of at least %1 per kB is required.</translation> + </message> + <message> + <source>Can vary +/- 1 byte per input.</source> + <translation>Can vary +/- 1 byte per input.</translation> + </message> + <message> + <source>Transactions with higher priority are more likely to get included into a block.</source> + <translation>Transactions with higher priority are more likely to get included into a block.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>change from %1 (%2)</source> + <translation>change from %1 (%2)</translation> + </message> + <message> + <source>(change)</source> + <translation>(change)</translation> + </message> +</context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Edit Address</translation> + </message> + <message> + <source>&Label</source> + <translation>&Label</translation> + </message> + <message> + <source>The label associated with this address list entry</source> + <translation>The label associated with this address list entry</translation> + </message> + <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>The address associated with this address list entry. This can only be modified for sending addresses.</translation> + </message> + <message> + <source>&Address</source> + <translation>&Address</translation> + </message> + <message> + <source>New receiving address</source> + <translation>New receiving address</translation> + </message> + <message> + <source>New sending address</source> + <translation>New sending address</translation> + </message> + <message> + <source>Edit receiving address</source> + <translation>Edit receiving address</translation> + </message> + <message> + <source>Edit sending address</source> + <translation>Edit sending address</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>The entered address "%1" is already in the address book.</translation> + </message> + <message> + <source>The entered address "%1" is not a valid Bitcoin address.</source> + <translation>The entered address "%1" is not a valid Bitcoin address.</translation> + </message> + <message> + <source>Could not unlock wallet.</source> + <translation>Could not unlock wallet.</translation> + </message> + <message> + <source>New key generation failed.</source> + <translation>New key generation failed.</translation> + </message> +</context> +<context> + <name>FreespaceChecker</name> + <message> + <source>A new data directory will be created.</source> + <translation>A new data directory will be created.</translation> + </message> + <message> + <source>name</source> + <translation>name</translation> + </message> + <message> + <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> + <translation>Directory already exists. Add %1 if you intend to create a new directory here.</translation> + </message> + <message> + <source>Path already exists, and is not a directory.</source> + <translation>Path already exists, and is not a directory.</translation> + </message> + <message> + <source>Cannot create data directory here.</source> + <translation>Cannot create data directory here.</translation> + </message> +</context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>version</source> + <translation>version</translation> + </message> + <message> + <source>(%1-bit)</source> + <translation>(%1-bit)</translation> + </message> + <message> + <source>About Bitcoin Core</source> + <translation>About Bitcoin Core</translation> + </message> + <message> + <source>Command-line options</source> + <translation>Command-line options</translation> + </message> + <message> + <source>Usage:</source> + <translation>Usage:</translation> + </message> + <message> + <source>command-line options</source> + <translation>command-line options</translation> + </message> + <message> + <source>UI Options:</source> + <translation>UI Options:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Choose data directory on startup (default: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Set language, for example "de_DE" (default: system locale)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Start minimised</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Set SSL root certificates for payment request (default: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Show splash screen on startup (default: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Reset all settings changes made over the GUI</translation> + </message> +</context> +<context> + <name>Intro</name> + <message> + <source>Welcome</source> + <translation>Welcome</translation> + </message> + <message> + <source>Welcome to Bitcoin Core.</source> + <translation>Welcome to Bitcoin Core.</translation> + </message> + <message> + <source>As this is the first time the program is launched, you can choose where Bitcoin Core will store its data.</source> + <translation>As this is the first time the program is launched, you can choose where Bitcoin Core will store its data.</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>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.</translation> + </message> + <message> + <source>Use the default data directory</source> + <translation>Use the default data directory</translation> + </message> + <message> + <source>Use a custom data directory:</source> + <translation>Use a custom data directory:</translation> + </message> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>Error: Specified data directory "%1" cannot be created.</source> + <translation>Error: Specified data directory "%1" cannot be created.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>%n GB of free space available</numerusform><numerusform>%n GB of free space available</numerusform></translation> + </message> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(of %n GB needed)</numerusform><numerusform>(of %n GB needed)</numerusform></translation> + </message> +</context> +<context> + <name>OpenURIDialog</name> + <message> + <source>Open URI</source> + <translation>Open URI</translation> + </message> + <message> + <source>Open payment request from URI or file</source> + <translation>Open payment request from URI or file</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> + <message> + <source>Select payment request file</source> + <translation>Select payment request file</translation> + </message> + <message> + <source>Select payment request file to open</source> + <translation>Select payment request file to open</translation> + </message> +</context> +<context> + <name>OptionsDialog</name> + <message> + <source>Options</source> + <translation>Options</translation> + </message> + <message> + <source>&Main</source> + <translation>&Main</translation> + </message> + <message> + <source>Size of &database cache</source> + <translation>Size of &database cache</translation> + </message> + <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source>Number of script &verification threads</source> + <translation>Number of script &verification threads</translation> + </message> + <message> + <source>Accept connections from outside</source> + <translation>Accept connections from outside</translation> + </message> + <message> + <source>Allow incoming connections</source> + <translation>Allow incoming connections</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Minimise instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> + </message> + <message> + <source>The user interface language can be set here. This setting will take effect after restarting Bitcoin Core.</source> + <translation>The user interface language can be set here. This setting will take effect after restarting Bitcoin Core.</translation> + </message> + <message> + <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> + <translation>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</translation> + </message> + <message> + <source>Third party transaction URLs</source> + <translation>Third party transaction URLs</translation> + </message> + <message> + <source>Active command-line options that override above options:</source> + <translation>Active command-line options that override above options:</translation> + </message> + <message> + <source>Reset all client options to default.</source> + <translation>Reset all client options to default.</translation> + </message> + <message> + <source>&Reset Options</source> + <translation>&Reset Options</translation> + </message> + <message> + <source>&Network</source> + <translation>&Network</translation> + </message> + <message> + <source>Automatically start Bitcoin Core after logging in to the system.</source> + <translation>Automatically start Bitcoin Core after logging in to the system.</translation> + </message> + <message> + <source>&Start Bitcoin Core on system login</source> + <translation>&Start Bitcoin Core on system login</translation> + </message> + <message> + <source>(0 = auto, <0 = leave that many cores free)</source> + <translation>(0 = auto, <0 = leave that many cores free)</translation> + </message> + <message> + <source>W&allet</source> + <translation>W&allet</translation> + </message> + <message> + <source>Expert</source> + <translation>Expert</translation> + </message> + <message> + <source>Enable coin &control features</source> + <translation>Enable coin &control features</translation> + </message> + <message> + <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> + <translation>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</translation> + </message> + <message> + <source>&Spend unconfirmed change</source> + <translation>&Spend unconfirmed change</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>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Map port using &UPnP</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Connect to the Bitcoin network through a SOCKS5 proxy.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Connect through SOCKS5 proxy (default proxy):</translation> + </message> + <message> + <source>Proxy &IP:</source> + <translation>Proxy &IP:</translation> + </message> + <message> + <source>&Port:</source> + <translation>&Port:</translation> + </message> + <message> + <source>Port of the proxy (e.g. 9050)</source> + <translation>Port of the proxy (e.g. 9050)</translation> + </message> + <message> + <source>Used for reaching peers via:</source> + <translation>Used for reaching peers via:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</translation> + </message> + <message> + <source>&Window</source> + <translation>&Window</translation> + </message> + <message> + <source>Show only a tray icon after minimizing the window.</source> + <translation>Show on a tray icon after minimising the window.</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&Minimise to the tray instead of the task bar</translation> + </message> + <message> + <source>M&inimize on close</source> + <translation>M&inimise on close</translation> + </message> + <message> + <source>&Display</source> + <translation>&Display</translation> + </message> + <message> + <source>User Interface &language:</source> + <translation>User Interface &language:</translation> + </message> + <message> + <source>&Unit to show amounts in:</source> + <translation>&Unit to show amounts in:</translation> + </message> + <message> + <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> + <translation>Choose the default subdivision unit to show in the interface and when sending coins.</translation> + </message> + <message> + <source>Whether to show coin control features or not.</source> + <translation>Whether to show coin control features or not.</translation> + </message> + <message> + <source>&OK</source> + <translation>&OK</translation> + </message> + <message> + <source>&Cancel</source> + <translation>&Cancel</translation> + </message> + <message> + <source>default</source> + <translation>default</translation> + </message> + <message> + <source>none</source> + <translation>none</translation> + </message> + <message> + <source>Confirm options reset</source> + <translation>Confirm options reset</translation> + </message> + <message> + <source>Client restart required to activate changes.</source> + <translation>Client restart required to activate changes.</translation> + </message> + <message> + <source>Client will be shut down. Do you want to proceed?</source> + <translation>Client will be shut down. Do you want to proceed?</translation> + </message> + <message> + <source>This change would require a client restart.</source> + <translation>This change would require a client restart.</translation> + </message> + <message> + <source>The supplied proxy address is invalid.</source> + <translation>The supplied proxy address is invalid.</translation> + </message> +</context> +<context> + <name>OverviewPage</name> + <message> + <source>Form</source> + <translation>Form</translation> + </message> + <message> + <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> + <translation>The displayed information may be out of date. Your Wallet automatically synchronises with the Bitcoin Network after a connection is established, but this process has not been completed yet.</translation> + </message> + <message> + <source>Watch-only:</source> + <translation>Watch-only:</translation> + </message> + <message> + <source>Available:</source> + <translation>Available:</translation> + </message> + <message> + <source>Your current spendable balance</source> + <translation>Your current spendable balance</translation> + </message> + <message> + <source>Pending:</source> + <translation>Pending:</translation> + </message> + <message> + <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> + <translation>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</translation> + </message> + <message> + <source>Immature:</source> + <translation>Immature:</translation> + </message> + <message> + <source>Mined balance that has not yet matured</source> + <translation>Mined balance that has not yet matured</translation> + </message> + <message> + <source>Balances</source> + <translation>Balances</translation> + </message> + <message> + <source>Total:</source> + <translation>Total:</translation> + </message> + <message> + <source>Your current total balance</source> + <translation>Your current total balance</translation> + </message> + <message> + <source>Your current balance in watch-only addresses</source> + <translation>Your current balance in watch-only addresses</translation> + </message> + <message> + <source>Spendable:</source> + <translation>Spendable:</translation> + </message> + <message> + <source>Recent transactions</source> + <translation>Recent transactions</translation> + </message> + <message> + <source>Unconfirmed transactions to watch-only addresses</source> + <translation>Unconfirmed transactions to watch-only addresses</translation> + </message> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>Mined balance in watch-only addresses that has not yet matured</translation> + </message> + <message> + <source>Current total balance in watch-only addresses</source> + <translation>Current total balance in watch-only addresses</translation> + </message> +</context> +<context> + <name>PaymentServer</name> + <message> + <source>URI handling</source> + <translation>URI handling</translation> + </message> + <message> + <source>Invalid payment address %1</source> + <translation>Invalid payment address %1</translation> + </message> + <message> + <source>Payment request rejected</source> + <translation>Payment request rejected</translation> + </message> + <message> + <source>Payment request network doesn't match client network.</source> + <translation>Payment request network doesn't match client network.</translation> + </message> + <message> + <source>Payment request is not initialized.</source> + <translation>Payment request is not initialised.</translation> + </message> + <message> + <source>Requested payment amount of %1 is too small (considered dust).</source> + <translation>Requested payment amount of %1 is too small (considered dust).</translation> + </message> + <message> + <source>Payment request error</source> + <translation>Payment request error</translation> + </message> + <message> + <source>Cannot start bitcoin: click-to-pay handler</source> + <translation>Cannot start bitcoin: click-to-pay handler</translation> + </message> + <message> + <source>Payment request fetch URL is invalid: %1</source> + <translation>Payment request fetch URL is invalid: %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 cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> + </message> + <message> + <source>Payment request file handling</source> + <translation>Payment request file handling</translation> + </message> + <message> + <source>Payment request file cannot be read! This can be caused by an invalid payment request file.</source> + <translation>Payment request file cannot be read! This can be caused by an invalid payment request file.</translation> + </message> + <message> + <source>Payment request expired.</source> + <translation>Payment request expired.</translation> + </message> + <message> + <source>Unverified payment requests to custom payment scripts are unsupported.</source> + <translation>Unverified payment requests to custom payment scripts are unsupported.</translation> + </message> + <message> + <source>Invalid payment request.</source> + <translation>Invalid payment request.</translation> + </message> + <message> + <source>Refund from %1</source> + <translation>Refund from %1</translation> + </message> + <message> + <source>Payment request %1 is too large (%2 bytes, allowed %3 bytes).</source> + <translation>Payment request %1 is too large (%2 bytes, allowed %3 bytes).</translation> + </message> + <message> + <source>Error communicating with %1: %2</source> + <translation>Error communicating with %1: %2</translation> + </message> + <message> + <source>Payment request cannot be parsed!</source> + <translation>Payment request cannot be parsed!</translation> + </message> + <message> + <source>Bad response from server %1</source> + <translation>Bad response from server %1</translation> + </message> + <message> + <source>Payment acknowledged</source> + <translation>Payment acknowledged</translation> + </message> + <message> + <source>Network request error</source> + <translation>Network request error</translation> + </message> +</context> +<context> + <name>PeerTableModel</name> + <message> + <source>User Agent</source> + <translation>User Agent</translation> + </message> + <message> + <source>Node/Service</source> + <translation>Node/Service</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Ping Time</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Enter a Bitcoin address (e.g. %1)</source> + <translation>Enter a Bitcoin address (e.g. %1)</translation> + </message> + <message> + <source>%1 d</source> + <translation>%1 d</translation> + </message> + <message> + <source>%1 h</source> + <translation>%1 h</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 m</translation> + </message> + <message> + <source>%1 s</source> + <translation>%1 s</translation> + </message> + <message> + <source>None</source> + <translation>None</translation> + </message> + <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>%1 ms</source> + <translation>%1 ms</translation> + </message> +</context> +<context> + <name>QRImageWidget</name> + <message> + <source>&Save Image...</source> + <translation>&Save Image...</translation> + </message> + <message> + <source>&Copy Image</source> + <translation>&Copy Image</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Save QR Code</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG Image (*.png)</translation> + </message> +</context> +<context> + <name>RPCConsole</name> + <message> + <source>Client name</source> + <translation>Client name</translation> + </message> + <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>Client version</source> + <translation>Client version</translation> + </message> + <message> + <source>&Information</source> + <translation>&Information</translation> + </message> + <message> + <source>Debug window</source> + <translation>Debug window</translation> + </message> + <message> + <source>General</source> + <translation>General</translation> + </message> + <message> + <source>Using OpenSSL version</source> + <translation>Using OpenSSL version</translation> + </message> + <message> + <source>Using BerkeleyDB version</source> + <translation>Using BerkeleyDB version</translation> + </message> + <message> + <source>Startup time</source> + <translation>Startup time</translation> + </message> + <message> + <source>Network</source> + <translation>Network</translation> + </message> + <message> + <source>Name</source> + <translation>Name</translation> + </message> + <message> + <source>Number of connections</source> + <translation>Number of connections</translation> + </message> + <message> + <source>Block chain</source> + <translation>Block chain</translation> + </message> + <message> + <source>Current number of blocks</source> + <translation>Current number of blocks</translation> + </message> + <message> + <source>Memory Pool</source> + <translation>Memory Pool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Current number of transactions</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Memory usage</translation> + </message> + <message> + <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> + <translation>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</translation> + </message> + <message> + <source>Received</source> + <translation>Received</translation> + </message> + <message> + <source>Sent</source> + <translation>Sent</translation> + </message> + <message> + <source>&Peers</source> + <translation>&Peers</translation> + </message> + <message> + <source>Banned peers</source> + <translation>Banned peers</translation> + </message> + <message> + <source>Select a peer to view detailed information.</source> + <translation>Select a peer to view detailed information.</translation> + </message> + <message> + <source>Whitelisted</source> + <translation>Whitelisted</translation> + </message> + <message> + <source>Direction</source> + <translation>Direction</translation> + </message> + <message> + <source>Version</source> + <translation>Version</translation> + </message> + <message> + <source>Starting Block</source> + <translation>Starting Block</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Synced Headers</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Synced Blocks</translation> + </message> + <message> + <source>User Agent</source> + <translation>User Agent</translation> + </message> + <message> + <source>Services</source> + <translation>Services</translation> + </message> + <message> + <source>Ban Score</source> + <translation>Ban Score</translation> + </message> + <message> + <source>Connection Time</source> + <translation>Connection Time</translation> + </message> + <message> + <source>Last Send</source> + <translation>Last Send</translation> + </message> + <message> + <source>Last Receive</source> + <translation>Last Receive</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Ping Time</translation> + </message> + <message> + <source>The duration of a currently outstanding ping.</source> + <translation>The duration of a currently outstanding ping.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Ping Wait</translation> + </message> + <message> + <source>Time Offset</source> + <translation>Time Offset</translation> + </message> + <message> + <source>Last block time</source> + <translation>Last block time</translation> + </message> + <message> + <source>&Open</source> + <translation>&Open</translation> + </message> + <message> + <source>&Console</source> + <translation>&Console</translation> + </message> + <message> + <source>&Network Traffic</source> + <translation>&Network Traffic</translation> + </message> + <message> + <source>&Clear</source> + <translation>&Clear</translation> + </message> + <message> + <source>Totals</source> + <translation>Totals</translation> + </message> + <message> + <source>In:</source> + <translation>In:</translation> + </message> + <message> + <source>Out:</source> + <translation>Out:</translation> + </message> + <message> + <source>Build date</source> + <translation>Build date</translation> + </message> + <message> + <source>Debug log file</source> + <translation>Debug log file</translation> + </message> + <message> + <source>Clear console</source> + <translation>Clear console</translation> + </message> + <message> + <source>&Disconnect Node</source> + <translation>&Disconnect Node</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Ban Node for</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &hour</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &day</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &week</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &year</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Unban Node</translation> + </message> + <message> + <source>Welcome to the Bitcoin Core RPC console.</source> + <translation>Welcome to the Bitcoin Core RPC console.</translation> + </message> + <message> + <source>Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen.</source> + <translation>Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen.</translation> + </message> + <message> + <source>Type <b>help</b> for an overview of available commands.</source> + <translation>Type <b>help</b> for an overview of available commands.</translation> + </message> + <message> + <source>%1 B</source> + <translation>%1 B</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 KB</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 MB</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 GB</translation> + </message> + <message> + <source>(node id: %1)</source> + <translation>(node id: %1)</translation> + </message> + <message> + <source>via %1</source> + <translation>via %1</translation> + </message> + <message> + <source>never</source> + <translation>never</translation> + </message> + <message> + <source>Inbound</source> + <translation>Inbound</translation> + </message> + <message> + <source>Outbound</source> + <translation>Outbound</translation> + </message> + <message> + <source>Yes</source> + <translation>Yes</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Unknown</source> + <translation>Unknown</translation> + </message> +</context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>&Amount:</source> + <translation>&Amount:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Label:</translation> + </message> + <message> + <source>&Message:</source> + <translation>&Message:</translation> + </message> + <message> + <source>Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before.</source> + <translation>Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before.</translation> + </message> + <message> + <source>R&euse an existing receiving address (not recommended)</source> + <translation>R&euse an existing receiving address (not recommended)</translation> + </message> + <message> + <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> + <translation>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address.</source> + <translation>An optional label to associate with the new receiving address.</translation> + </message> + <message> + <source>Use this form to request payments. All fields are <b>optional</b>.</source> + <translation>Use this form to request payments. All fields are <b>optional</b>.</translation> + </message> + <message> + <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> + <translation>An optional amount to request. Leave this empty or zero to not request a specific amount.</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Clear all fields of the form.</translation> + </message> + <message> + <source>Clear</source> + <translation>Clear</translation> + </message> + <message> + <source>Requested payments history</source> + <translation>Requested payments history</translation> + </message> + <message> + <source>&Request payment</source> + <translation>&Request payment</translation> + </message> + <message> + <source>Show the selected request (does the same as double clicking an entry)</source> + <translation>Show the selected request (does the same as double clicking an entry)</translation> + </message> + <message> + <source>Show</source> + <translation>Show</translation> + </message> + <message> + <source>Remove the selected entries from the list</source> + <translation>Remove the selected entries from the list</translation> + </message> + <message> + <source>Remove</source> + <translation>Remove</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy message</source> + <translation>Copy message</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> +</context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>QR Code</source> + <translation>QR Code</translation> + </message> + <message> + <source>Copy &URI</source> + <translation>Copy &URI</translation> + </message> + <message> + <source>Copy &Address</source> + <translation>Copy &Address</translation> + </message> + <message> + <source>&Save Image...</source> + <translation>&Save Image...</translation> + </message> + <message> + <source>Request payment to %1</source> + <translation>Request payment to %1</translation> + </message> + <message> + <source>Payment information</source> + <translation>Payment information</translation> + </message> + <message> + <source>URI</source> + <translation>URI</translation> + </message> + <message> + <source>Address</source> + <translation>Address</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Resulting URI too long, try to reduce the text for label / message.</source> + <translation>Resulting URI too long, try to reduce the text for label / message.</translation> + </message> + <message> + <source>Error encoding URI into QR Code.</source> + <translation>Error encoding URI into QR Code.</translation> + </message> +</context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>(no message)</source> + <translation>(no message)</translation> + </message> + <message> + <source>(no amount)</source> + <translation>(no amount)</translation> + </message> +</context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Send Coins</source> + <translation>Send Coins</translation> + </message> + <message> + <source>Coin Control Features</source> + <translation>Coin Control Features</translation> + </message> + <message> + <source>Inputs...</source> + <translation>Inputs...</translation> + </message> + <message> + <source>automatically selected</source> + <translation>automatically selected</translation> + </message> + <message> + <source>Insufficient funds!</source> + <translation>Insufficient funds!</translation> + </message> + <message> + <source>Quantity:</source> + <translation>Quantity:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Amount:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Priority:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Fee:</translation> + </message> + <message> + <source>After Fee:</source> + <translation>After Fee:</translation> + </message> + <message> + <source>Change:</source> + <translation>Change:</translation> + </message> + <message> + <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> + <translation>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</translation> + </message> + <message> + <source>Custom change address</source> + <translation>Custom change address</translation> + </message> + <message> + <source>Transaction Fee:</source> + <translation>Transaction Fee:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Choose...</translation> + </message> + <message> + <source>collapse fee-settings</source> + <translation>collapse fee-settings</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>per 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>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.</translation> + </message> + <message> + <source>Hide</source> + <translation>Hide</translation> + </message> + <message> + <source>total at least</source> + <translation>total at least</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>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.</translation> + </message> + <message> + <source>(read the tooltip)</source> + <translation>(read the tooltip)</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Recommended:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Custom:</translation> + </message> + <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Smart fee not initialised yet. This usually takes a few blocks...)</translation> + </message> + <message> + <source>Confirmation time:</source> + <translation>Confirmation time:</translation> + </message> + <message> + <source>normal</source> + <translation>normal</translation> + </message> + <message> + <source>fast</source> + <translation>fast</translation> + </message> + <message> + <source>Send as zero-fee transaction if possible</source> + <translation>Send as zero-fee transaction if possible</translation> + </message> + <message> + <source>(confirmation may take longer)</source> + <translation>(confirmation may take longer)</translation> + </message> + <message> + <source>Send to multiple recipients at once</source> + <translation>Send to multiple recipients at once</translation> + </message> + <message> + <source>Add &Recipient</source> + <translation>Add &Recipient</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Clear all fields of the form.</translation> + </message> + <message> + <source>Dust:</source> + <translation>Dust:</translation> + </message> + <message> + <source>Clear &All</source> + <translation>Clear &All</translation> + </message> + <message> + <source>Balance:</source> + <translation>Balance:</translation> + </message> + <message> + <source>Confirm the send action</source> + <translation>Confirm the send action</translation> + </message> + <message> + <source>S&end</source> + <translation>S&end</translation> + </message> + <message> + <source>Confirm send coins</source> + <translation>Confirm send coins</translation> + </message> + <message> + <source>%1 to %2</source> + <translation>%1 to %2</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copy quantity</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copy fee</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Copy after fee</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copy bytes</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Copy priority</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copy change</translation> + </message> + <message> + <source>Total Amount %1</source> + <translation>Total Amount %1</translation> + </message> + <message> + <source>or</source> + <translation>or</translation> + </message> + <message> + <source>The amount to pay must be larger than 0.</source> + <translation>The amount to pay must be larger than 0.</translation> + </message> + <message> + <source>The amount exceeds your balance.</source> + <translation>The amount exceeds your balance.</translation> + </message> + <message> + <source>The total exceeds your balance when the %1 transaction fee is included.</source> + <translation>The total exceeds your balance when the %1 transaction fee is included.</translation> + </message> + <message> + <source>Transaction creation failed!</source> + <translation>Transaction creation failed!</translation> + </message> + <message> + <source>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.</source> + <translation>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.</translation> + </message> + <message> + <source>A fee higher than %1 is considered an absurdly high fee.</source> + <translation>A fee higher than %1 is considered an absurdly high fee.</translation> + </message> + <message> + <source>Payment request expired.</source> + <translation>Payment request expired.</translation> + </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Pay only the required fee of %1</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Estimated to begin confirmation within %n block.</numerusform><numerusform>Estimated to begin confirmation within %n blocks.</numerusform></translation> + </message> + <message> + <source>The recipient address is not valid. Please recheck.</source> + <translation>The recipient address is not valid. Please recheck.</translation> + </message> + <message> + <source>Duplicate address found: addresses should only be used once each.</source> + <translation>Duplicate address found: addresses should only be used once each.</translation> + </message> + <message> + <source>Warning: Invalid Bitcoin address</source> + <translation>Warning: Invalid Bitcoin address</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>Warning: Unknown change address</source> + <translation>Warning: Unknown change address</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copy dust</translation> + </message> + <message> + <source>Are you sure you want to send?</source> + <translation>Are you sure you want to send?</translation> + </message> + <message> + <source>added as transaction fee</source> + <translation>added as transaction fee</translation> + </message> +</context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>A&mount:</translation> + </message> + <message> + <source>Pay &To:</source> + <translation>Pay &To:</translation> + </message> + <message> + <source>Enter a label for this address to add it to your address book</source> + <translation>Enter a label for this address to add it to your address book</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Label:</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Choose previously used address</translation> + </message> + <message> + <source>This is a normal payment.</source> + <translation>This is a normal payment.</translation> + </message> + <message> + <source>The Bitcoin address to send the payment to</source> + <translation>The Bitcoin address to send the payment to</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Remove this entry</source> + <translation>Remove this entry</translation> + </message> + <message> + <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> + <translation>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</translation> + </message> + <message> + <source>S&ubtract fee from amount</source> + <translation>S&ubtract fee from amount</translation> + </message> + <message> + <source>Message:</source> + <translation>Message:</translation> + </message> + <message> + <source>This is an unauthenticated payment request.</source> + <translation>This is an unauthenticated payment request.</translation> + </message> + <message> + <source>This is an authenticated payment request.</source> + <translation>This is an authenticated payment request.</translation> + </message> + <message> + <source>Enter a label for this address to add it to the list of used addresses</source> + <translation>Enter a label for this address to add it to the list of used addresses</translation> + </message> + <message> + <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> + <translation>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Pay To:</translation> + </message> + <message> + <source>Memo:</source> + <translation>Memo:</translation> + </message> +</context> +<context> + <name>ShutdownWindow</name> + <message> + <source>Bitcoin Core is shutting down...</source> + <translation>Bitcoin Core is shutting down...</translation> + </message> + <message> + <source>Do not shut down the computer until this window disappears.</source> + <translation>Do not shut down the computer until this window disappears.</translation> + </message> +</context> +<context> + <name>SignVerifyMessageDialog</name> + <message> + <source>Signatures - Sign / Verify a Message</source> + <translation>Signatures - Sign / Verify a Message</translation> + </message> + <message> + <source>&Sign Message</source> + <translation>&Sign Message</translation> + </message> + <message> + <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> + <translation>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</translation> + </message> + <message> + <source>The Bitcoin address to sign the message with</source> + <translation>The Bitcoin address to sign the message with</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Choose previously used address</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Enter the message you want to sign here</source> + <translation>Enter the message you want to sign here</translation> + </message> + <message> + <source>Signature</source> + <translation>Signature</translation> + </message> + <message> + <source>Copy the current signature to the system clipboard</source> + <translation>Copy the current signature to the system clipboard</translation> + </message> + <message> + <source>Sign the message to prove you own this Bitcoin address</source> + <translation>Sign the message to prove you own this Bitcoin address</translation> + </message> + <message> + <source>Sign &Message</source> + <translation>Sign &Message</translation> + </message> + <message> + <source>Reset all sign message fields</source> + <translation>Reset all sign message fields</translation> + </message> + <message> + <source>Clear &All</source> + <translation>Clear &All</translation> + </message> + <message> + <source>&Verify Message</source> + <translation>&Verify Message</translation> + </message> + <message> + <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> + <translation>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</translation> + </message> + <message> + <source>The Bitcoin address the message was signed with</source> + <translation>The Bitcoin address the message was signed with</translation> + </message> + <message> + <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> + <translation>Verify the message to ensure it was signed with the specified Bitcoin address</translation> + </message> + <message> + <source>Verify &Message</source> + <translation>Verify &Message</translation> + </message> + <message> + <source>Reset all verify message fields</source> + <translation>Reset all verify message fields</translation> + </message> + <message> + <source>Click "Sign Message" to generate signature</source> + <translation>Click "Sign Message" to generate signature</translation> + </message> + <message> + <source>The entered address is invalid.</source> + <translation>The entered address is invalid.</translation> + </message> + <message> + <source>Please check the address and try again.</source> + <translation>Please check the address and try again.</translation> + </message> + <message> + <source>The entered address does not refer to a key.</source> + <translation>The entered address does not refer to a key.</translation> + </message> + <message> + <source>Wallet unlock was cancelled.</source> + <translation>Wallet unlock was cancelled.</translation> + </message> + <message> + <source>Private key for the entered address is not available.</source> + <translation>Private key for the entered address is not available.</translation> + </message> + <message> + <source>Message signing failed.</source> + <translation>Message signing failed.</translation> + </message> + <message> + <source>Message signed.</source> + <translation>Message signed.</translation> + </message> + <message> + <source>The signature could not be decoded.</source> + <translation>The signature could not be decoded.</translation> + </message> + <message> + <source>Please check the signature and try again.</source> + <translation>Please check the signature and try again.</translation> + </message> + <message> + <source>The signature did not match the message digest.</source> + <translation>The signature did not match the message digest.</translation> + </message> + <message> + <source>Message verification failed.</source> + <translation>Message verification failed.</translation> + </message> + <message> + <source>Message verified.</source> + <translation>Message verified.</translation> + </message> +</context> +<context> + <name>SplashScreen</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>The Bitcoin Core developers</source> + <translation>The Bitcoin Core developers</translation> + </message> + <message> + <source>[testnet]</source> + <translation>[testnet]</translation> + </message> +</context> +<context> + <name>TrafficGraphWidget</name> + <message> + <source>KB/s</source> + <translation>KB/s</translation> + </message> +</context> +<context> + <name>TransactionDesc</name> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>conflicted</source> + <translation>conflicted</translation> + </message> + <message> + <source>%1/offline</source> + <translation>%1/offline</translation> + </message> + <message> + <source>%1/unconfirmed</source> + <translation>%1/unconfirmed</translation> + </message> + <message> + <source>%1 confirmations</source> + <translation>%1 confirmations</translation> + </message> + <message> + <source>Status</source> + <translation>Status</translation> + </message> + <message numerus="yes"> + <source>, broadcast through %n node(s)</source> + <translation><numerusform>, broadcast through %n node</numerusform><numerusform>, broadcast through %n nodes</numerusform></translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Source</source> + <translation>Source</translation> + </message> + <message> + <source>Generated</source> + <translation>Generated</translation> + </message> + <message> + <source>From</source> + <translation>From</translation> + </message> + <message> + <source>To</source> + <translation>To</translation> + </message> + <message> + <source>own address</source> + <translation>own address</translation> + </message> + <message> + <source>watch-only</source> + <translation>watch-only</translation> + </message> + <message> + <source>label</source> + <translation>label</translation> + </message> + <message> + <source>Credit</source> + <translation>Credit</translation> + </message> + <message numerus="yes"> + <source>matures in %n more block(s)</source> + <translation><numerusform>matures in %n more block</numerusform><numerusform>matures in %n more blocks</numerusform></translation> + </message> + <message> + <source>not accepted</source> + <translation>not accepted</translation> + </message> + <message> + <source>Debit</source> + <translation>Debit</translation> + </message> + <message> + <source>Total debit</source> + <translation>Total debit</translation> + </message> + <message> + <source>Total credit</source> + <translation>Total credit</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Transaction fee</translation> + </message> + <message> + <source>Net amount</source> + <translation>Net amount</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Comment</source> + <translation>Comment</translation> + </message> + <message> + <source>Transaction ID</source> + <translation>Transaction ID</translation> + </message> + <message> + <source>Merchant</source> + <translation>Merchant</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>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.</translation> + </message> + <message> + <source>Debug information</source> + <translation>Debug information</translation> + </message> + <message> + <source>Transaction</source> + <translation>Transaction</translation> + </message> + <message> + <source>Inputs</source> + <translation>Inputs</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>true</source> + <translation>true</translation> + </message> + <message> + <source>false</source> + <translation>false</translation> + </message> + <message> + <source>, has not been successfully broadcast yet</source> + <translation>, has not been successfully broadcast yet</translation> + </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>unknown</source> + <translation>unknown</translation> + </message> +</context> +<context> + <name>TransactionDescDialog</name> + <message> + <source>Transaction details</source> + <translation>Transaction details</translation> + </message> + <message> + <source>This pane shows a detailed description of the transaction</source> + <translation>This pane shows a detailed description of the transaction</translation> + </message> +</context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation>Immature (%1 confirmations, will be available after %2)</translation> + </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Confirmed (%1 confirmations)</translation> + </message> + <message> + <source>This block was not received by any other nodes and will probably not be accepted!</source> + <translation>This block was not received by any other nodes and will probably not be accepted!</translation> + </message> + <message> + <source>Generated but not accepted</source> + <translation>Generated but not accepted</translation> + </message> + <message> + <source>Offline</source> + <translation>Offline</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Unconfirmed</source> + <translation>Unconfirmed</translation> + </message> + <message> + <source>Confirming (%1 of %2 recommended confirmations)</source> + <translation>Confirming (%1 of %2 recommended confirmations)</translation> + </message> + <message> + <source>Conflicted</source> + <translation>Conflicted</translation> + </message> + <message> + <source>Received with</source> + <translation>Received with</translation> + </message> + <message> + <source>Received from</source> + <translation>Received from</translation> + </message> + <message> + <source>Sent to</source> + <translation>Sent to</translation> + </message> + <message> + <source>Payment to yourself</source> + <translation>Payment to yourself</translation> + </message> + <message> + <source>Mined</source> + <translation>Mined</translation> + </message> + <message> + <source>watch-only</source> + <translation>watch-only</translation> + </message> + <message> + <source>(n/a)</source> + <translation>(n/a)</translation> + </message> + <message> + <source>Transaction status. Hover over this field to show number of confirmations.</source> + <translation>Transaction status. Hover over this field to show number of confirmations.</translation> + </message> + <message> + <source>Date and time that the transaction was received.</source> + <translation>Date and time that the transaction was received.</translation> + </message> + <message> + <source>Type of transaction.</source> + <translation>Type of transaction.</translation> + </message> + <message> + <source>Whether or not a watch-only address is involved in this transaction.</source> + <translation>Whether or not a watch-only address is involved in this transaction.</translation> + </message> + <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>User-defined intent/purpose of the transaction.</translation> + </message> + <message> + <source>Amount removed from or added to balance.</source> + <translation>Amount removed from or added to balance.</translation> + </message> +</context> +<context> + <name>TransactionView</name> + <message> + <source>All</source> + <translation>All</translation> + </message> + <message> + <source>Today</source> + <translation>Today</translation> + </message> + <message> + <source>This week</source> + <translation>This week</translation> + </message> + <message> + <source>This month</source> + <translation>This month</translation> + </message> + <message> + <source>Last month</source> + <translation>Last month</translation> + </message> + <message> + <source>This year</source> + <translation>This year</translation> + </message> + <message> + <source>Range...</source> + <translation>Range...</translation> + </message> + <message> + <source>Received with</source> + <translation>Received with</translation> + </message> + <message> + <source>Sent to</source> + <translation>Sent to</translation> + </message> + <message> + <source>To yourself</source> + <translation>To yourself</translation> + </message> + <message> + <source>Mined</source> + <translation>Mined</translation> + </message> + <message> + <source>Other</source> + <translation>Other</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>Enter address or label to search</translation> + </message> + <message> + <source>Min amount</source> + <translation>Min amount</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copy address</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copy transaction ID</translation> + </message> + <message> + <source>Copy raw transaction</source> + <translation>Copy raw transaction</translation> + </message> + <message> + <source>Edit label</source> + <translation>Edit label</translation> + </message> + <message> + <source>Show transaction details</source> + <translation>Show transaction details</translation> + </message> + <message> + <source>Export Transaction History</source> + <translation>Export Transaction History</translation> + </message> + <message> + <source>Watch-only</source> + <translation>Watch-only</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exporting Failed</translation> + </message> + <message> + <source>There was an error trying to save the transaction history to %1.</source> + <translation>There was an error trying to save the transaction history to %1.</translation> + </message> + <message> + <source>Exporting Successful</source> + <translation>Exporting Successful</translation> + </message> + <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>The transaction history was successfully saved to %1.</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Comma separated file (*.csv)</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmed</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Address</source> + <translation>Address</translation> + </message> + <message> + <source>ID</source> + <translation>ID</translation> + </message> + <message> + <source>Range:</source> + <translation>Range:</translation> + </message> + <message> + <source>to</source> + <translation>to</translation> + </message> +</context> +<context> + <name>UnitDisplayStatusBarControl</name> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Unit to show amounts in. Click to select another unit.</translation> + </message> +</context> +<context> + <name>WalletFrame</name> + <message> + <source>No wallet has been loaded.</source> + <translation>No wallet has been loaded.</translation> + </message> +</context> +<context> + <name>WalletModel</name> + <message> + <source>Send Coins</source> + <translation>Send Coins</translation> + </message> +</context> +<context> + <name>WalletView</name> + <message> + <source>&Export</source> + <translation>&Export</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Export the data in the current tab to a file</translation> + </message> + <message> + <source>Backup Wallet</source> + <translation>Backup Wallet</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Wallet Data (*.dat)</translation> + </message> + <message> + <source>Backup Failed</source> + <translation>Backup Failed</translation> + </message> + <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>There was an error trying to save the wallet data to %1.</translation> + </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>The wallet data was successfully saved to %1.</translation> + </message> + <message> + <source>Backup Successful</source> + <translation>Backup Successful</translation> + </message> +</context> +<context> + <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>Options:</translation> + </message> + <message> + <source>Specify data directory</source> + <translation>Specify data directory</translation> + </message> + <message> + <source>Connect to a node to retrieve peer addresses, and disconnect</source> + <translation>Connect to a node to retrieve peer addresses, and disconnect</translation> + </message> + <message> + <source>Specify your own public address</source> + <translation>Specify your own public address</translation> + </message> + <message> + <source>Accept command line and JSON-RPC commands</source> + <translation>Accept command line and JSON-RPC commands</translation> + </message> + <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>If <category> is not supplied or if <category> = 1, output all debugging information.</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Prune configured below the minimum of %d MiB. Please use a higher number.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</translation> + </message> + <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Error: A fatal internal error occurred, see debug.log for details</translation> + </message> + <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Fee (in %s/kB) to add to transactions you send (default: %s)</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Pruning blockstore...</translation> + </message> + <message> + <source>Run in the background as a daemon and accept commands</source> + <translation>Run in the background as a daemon and accept commands</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Unable to start HTTP server. See debug log for details.</translation> + </message> + <message> + <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> + <translation>Accept connections from outside (default: 1 if no -proxy or -connect)</translation> + </message> + <message> + <source>Bind to given address and always listen on it. Use [host]:port notation for IPv6</source> + <translation>Bind to given address and always listen on it. Use [host]:port notation for IPv6</translation> + </message> + <message> + <source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source> + <translation>Delete all wallet transactions and only recover those parts of the blockchain through -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>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> + <source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source> + <translation>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</translation> + </message> + <message> + <source>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</source> + <translation>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. Bitcoin Core is probably already running.</source> + <translation>Unable to bind to %s on this computer. Bitcoin Core is probably already running.</translation> + </message> + <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</translation> + </message> + <message> + <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> + <translation>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</translation> + </message> + <message> + <source>WARNING: check your network connection, %d blocks received in the last %d hours (%d expected)</source> + <translation>WARNING: check your network connection, %d blocks received in the last %d hours (%d expected)</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</translation> + </message> + <message> + <source>Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup.</source> + <translation>Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup.</translation> + </message> + <message> + <source>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</source> + <translation>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</translation> + </message> + <message> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool must be at least %d MB</translation> + </message> + <message> + <source><category> can be:</source> + <translation><category> can be:</translation> + </message> + <message> + <source>Block creation options:</source> + <translation>Block creation options:</translation> + </message> + <message> + <source>Connect only to the specified node(s)</source> + <translation>Connect only to the specified node(s)</translation> + </message> + <message> + <source>Connection options:</source> + <translation>Connection options:</translation> + </message> + <message> + <source>Corrupted block database detected</source> + <translation>Corrupted block database detected</translation> + </message> + <message> + <source>Debugging/Testing options:</source> + <translation>Debugging/Testing options:</translation> + </message> + <message> + <source>Do not load the wallet and disable wallet RPC calls</source> + <translation>Do not load the wallet and disable wallet RPC calls</translation> + </message> + <message> + <source>Do you want to rebuild the block database now?</source> + <translation>Do you want to rebuild the block database now?</translation> + </message> + <message> + <source>Enable publish hash block in <address></source> + <translation>Enable publish hash block in <address></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Enable publish hash transaction in <address></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Enable publish raw block in <address></translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Enable publish raw transaction in <address></translation> + </message> + <message> + <source>Error initializing block database</source> + <translation>Error initialising block database</translation> + </message> + <message> + <source>Error initializing wallet database environment %s!</source> + <translation>Error initialising wallet database environment %s!</translation> + </message> + <message> + <source>Error loading block database</source> + <translation>Error loading block database</translation> + </message> + <message> + <source>Error opening block database</source> + <translation>Error opening block database</translation> + </message> + <message> + <source>Error: Disk space is low!</source> + <translation>Error: Disk space is low!</translation> + </message> + <message> + <source>Failed to listen on any port. Use -listen=0 if you want this.</source> + <translation>Failed to listen on any port. Use -listen=0 if you want this.</translation> + </message> + <message> + <source>Importing...</source> + <translation>Importing...</translation> + </message> + <message> + <source>Incorrect or no genesis block found. Wrong datadir for network?</source> + <translation>Incorrect or no genesis block found. Wrong datadir for network?</translation> + </message> + <message> + <source>Invalid -onion address: '%s'</source> + <translation>Invalid -onion address: '%s'</translation> + </message> + <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>Keep the transaction memory pool below <n> megabytes (default: %u)</translation> + </message> + <message> + <source>Not enough file descriptors available.</source> + <translation>Not enough file descriptors available.</translation> + </message> + <message> + <source>Only connect to nodes in network <net> (ipv4, ipv6 or onion)</source> + <translation>Only connect to nodes in network <net> (ipv4, ipv6 or onion)</translation> + </message> + <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Prune cannot be configured with a negative value.</translation> + </message> + <message> + <source>Prune mode is incompatible with -txindex.</source> + <translation>Prune mode is incompatible with -txindex.</translation> + </message> + <message> + <source>Set database cache size in megabytes (%d to %d, default: %d)</source> + <translation>Set database cache size in megabytes (%d to %d, default: %d)</translation> + </message> + <message> + <source>Set maximum block size in bytes (default: %d)</source> + <translation>Set maximum block size in bytes (default: %d)</translation> + </message> + <message> + <source>Specify wallet file (within data directory)</source> + <translation>Specify wallet file (within data directory)</translation> + </message> + <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Unsupported argument -benchmark ignored, use -debug=bench.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Unsupported argument -debugnet ignored, use -debug=net.</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Unsupported argument -tor found, use -onion.</translation> + </message> + <message> + <source>Use UPnP to map the listening port (default: %u)</source> + <translation>Use UPnP to map the listening port (default: %u)</translation> + </message> + <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>User Agent comment (%s) contains unsafe characters.</translation> + </message> + <message> + <source>Verifying blocks...</source> + <translation>Verifying blocks...</translation> + </message> + <message> + <source>Verifying wallet...</source> + <translation>Verifying wallet...</translation> + </message> + <message> + <source>Wallet %s resides outside data directory %s</source> + <translation>Wallet %s resides outside data directory %s</translation> + </message> + <message> + <source>Wallet options:</source> + <translation>Wallet options:</translation> + </message> + <message> + <source>Warning: This version is obsolete; upgrade required!</source> + <translation>Warning: This version is obsolete; upgrade required!</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to change -txindex</source> + <translation>You need to rebuild the database using -reindex to change -txindex</translation> + </message> + <message> + <source>Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times</source> + <translation>Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times</translation> + </message> + <message> + <source>Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6</source> + <translation>Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6</translation> + </message> + <message> + <source>Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces)</source> + <translation>Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces)</translation> + </message> + <message> + <source>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</source> + <translation>Cannot obtain a lock on data directory %s. Bitcoin Core is probably already running.</translation> + </message> + <message> + <source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source> + <translation>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</translation> + </message> + <message> + <source>Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)</source> + <translation>Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)</translation> + </message> + <message> + <source>Error: Listening for incoming connections failed (listen returned error %s)</source> + <translation>Error: Listening for incoming connections failed (listen returned error %s)</translation> + </message> + <message> + <source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source> + <translation>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</translation> + </message> + <message> + <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> + <translation>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</translation> + </message> + <message> + <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> + <translation>Maximum size of data in data carrier transactions we relay and mine (default: %u)</translation> + </message> + <message> + <source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source> + <translation>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</translation> + </message> + <message> + <source>Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)</source> + <translation>Randomise credentials for every proxy connection. This enables Tor stream isolation (default: %u)</translation> + </message> + <message> + <source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source> + <translation>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</translation> + </message> + <message> + <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> + <translation>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</translation> + </message> + <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>The transaction amount is too small to send after the fee has been deducted</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>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.</translation> + </message> + <message> + <source>Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway</source> + <translation>Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</translation> + </message> + <message> + <source>(default: %u)</source> + <translation>(default: %u)</translation> + </message> + <message> + <source>Accept public REST requests (default: %u)</source> + <translation>Accept public REST requests (default: %u)</translation> + </message> + <message> + <source>Activating best chain...</source> + <translation>Activating best chain...</translation> + </message> + <message> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Always relay transactions received from whitelisted peers (default: %d)</translation> + </message> + <message> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Attempt to recover private keys from a corrupt wallet.dat on startup</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Automatically create Tor hidden service (default: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Cannot resolve -whitebind address: '%s'</translation> + </message> + <message> + <source>Connect through SOCKS5 proxy</source> + <translation>Connect through SOCKS5 proxy</translation> + </message> + <message> + <source>Copyright (C) 2009-%i The Bitcoin Core Developers</source> + <translation>Copyright (C) 2009-%i The Bitcoin Core Developers</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</source> + <translation>Error loading wallet.dat: Wallet requires newer version of Bitcoin Core</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Error reading from database, shutting down.</translation> + </message> + <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Imports blocks from external blk000??.dat file on startup</translation> + </message> + <message> + <source>Information</source> + <translation>Information</translation> + </message> + <message> + <source>Initialization sanity check failed. Bitcoin Core is shutting down.</source> + <translation>Initialisation sanity check failed. Bitcoin Core is shutting down.</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Invalid amount for -maxtxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Invalid amount for -minrelaytxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Invalid amount for -mintxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> + <translation>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</translation> + </message> + <message> + <source>Invalid netmask specified in -whitelist: '%s'</source> + <translation>Invalid netmask specified in -whitelist: '%s'</translation> + </message> + <message> + <source>Keep at most <n> unconnectable transactions in memory (default: %u)</source> + <translation>Keep at most <n> unconnectable transactions in memory (default: %u)</translation> + </message> + <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Need to specify a port with -whitebind: '%s'</translation> + </message> + <message> + <source>Node relay options:</source> + <translation>Node relay options:</translation> + </message> + <message> + <source>RPC server options:</source> + <translation>RPC server options:</translation> + </message> + <message> + <source>Rebuild block chain index from current blk000??.dat files on startup</source> + <translation>Rebuild block chain index from current blk000??.dat files on startup</translation> + </message> + <message> + <source>Receive and display P2P network alerts (default: %u)</source> + <translation>Receive and display P2P network alerts (default: %u)</translation> + </message> + <message> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Reducing -maxconnections from %d to %d, because of system limitations.</translation> + </message> + <message> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Rescan the block chain for missing wallet transactions on startup</translation> + </message> + <message> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Send trace/debug info to console instead of debug.log file</translation> + </message> + <message> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Send transactions as zero-fee transactions if possible (default: %u)</translation> + </message> + <message> + <source>Show all debugging options (usage: --help -help-debug)</source> + <translation>Show all debugging options (usage: --help -help-debug)</translation> + </message> + <message> + <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> + <translation>Shrink debug.log file on client startup (default: 1 when no -debug)</translation> + </message> + <message> + <source>Signing transaction failed</source> + <translation>Signing transaction failed</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>The transaction amount is too small to pay the fee</translation> + </message> + <message> + <source>This is experimental software.</source> + <translation>This is experimental software.</translation> + </message> + <message> + <source>Tor control port password (default: empty)</source> + <translation>Tor control port password (default: empty)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Tor control port to use if onion listening enabled (default: %s)</translation> + </message> + <message> + <source>Transaction amount too small</source> + <translation>Transaction amount too small</translation> + </message> + <message> + <source>Transaction amounts must be positive</source> + <translation>Transaction amounts must be positive</translation> + </message> + <message> + <source>Transaction too large for fee policy</source> + <translation>Transaction too large for fee policy</translation> + </message> + <message> + <source>Transaction too large</source> + <translation>Transaction too large</translation> + </message> + <message> + <source>Unable to bind to %s on this computer (bind returned error %s)</source> + <translation>Unable to bind to %s on this computer (bind returned error %s)</translation> + </message> + <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Upgrade wallet to latest format on startup</translation> + </message> + <message> + <source>Username for JSON-RPC connections</source> + <translation>Username for JSON-RPC connections</translation> + </message> + <message> + <source>Wallet needed to be rewritten: restart Bitcoin Core to complete</source> + <translation>Wallet needed to be rewritten: restart Bitcoin Core to complete</translation> + </message> + <message> + <source>Warning</source> + <translation>Warning</translation> + </message> + <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Whether to operate in a blocks only mode (default: %u)</translation> + </message> + <message> + <source>Zapping all transactions from wallet...</source> + <translation>Zapping all transactions from wallet...</translation> + </message> + <message> + <source>ZeroMQ notification options:</source> + <translation>ZeroMQ notification options:</translation> + </message> + <message> + <source>wallet.dat corrupt, salvage failed</source> + <translation>wallet.dat corrupt, salvage failed</translation> + </message> + <message> + <source>Password for JSON-RPC connections</source> + <translation>Password for JSON-RPC connections</translation> + </message> + <message> + <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source> + <translation>Execute command when the best block changes (%s in cmd is replaced by block hash)</translation> + </message> + <message> + <source>This help message</source> + <translation>This help message</translation> + </message> + <message> + <source>Allow DNS lookups for -addnode, -seednode and -connect</source> + <translation>Allow DNS lookups for -addnode, -seednode and -connect</translation> + </message> + <message> + <source>Loading addresses...</source> + <translation>Loading addresses...</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet corrupted</source> + <translation>Error loading wallet.dat: Wallet corrupted</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 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)</translation> + </message> + <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Do not keep transactions in the mempool longer than <n> hours (default: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</translation> + </message> + <message> + <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> + <translation>How thorough the block verification of -checkblocks is (0-4, default: %u)</translation> + </message> + <message> + <source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source> + <translation>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</translation> + </message> + <message> + <source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source> + <translation>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</translation> + </message> + <message> + <source>Output debugging information (default: %u, supplying <category> is optional)</source> + <translation>Output debugging information (default: %u, supplying <category> is optional)</translation> + </message> + <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Support filtering of blocks and transaction with bloom filters (default: %u)</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</translation> + </message> + <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> + <translation>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</translation> + </message> + <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</translation> + </message> + <message> + <source>(default: %s)</source> + <translation>(default: %s)</translation> + </message> + <message> + <source>Always query for peer addresses via DNS lookup (default: %u)</source> + <translation>Always query for peer addresses via DNS lookup (default: %u)</translation> + </message> + <message> + <source>Error loading wallet.dat</source> + <translation>Error loading wallet.dat</translation> + </message> + <message> + <source>Generate coins (default: %u)</source> + <translation>Generate coins (default: %u)</translation> + </message> + <message> + <source>How many blocks to check at startup (default: %u, 0 = all)</source> + <translation>How many blocks to check at startup (default: %u, 0 = all)</translation> + </message> + <message> + <source>Include IP addresses in debug output (default: %u)</source> + <translation>Include IP addresses in debug output (default: %u)</translation> + </message> + <message> + <source>Invalid -proxy address: '%s'</source> + <translation>Invalid -proxy address: '%s'</translation> + </message> + <message> + <source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source> + <translation>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</translation> + </message> + <message> + <source>Listen for connections on <port> (default: %u or testnet: %u)</source> + <translation>Listen for connections on <port> (default: %u or testnet: %u)</translation> + </message> + <message> + <source>Maintain at most <n> connections to peers (default: %u)</source> + <translation>Maintain at most <n> connections to peers (default: %u)</translation> + </message> + <message> + <source>Make the wallet broadcast transactions</source> + <translation>Make the wallet broadcast transactions</translation> + </message> + <message> + <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</translation> + </message> + <message> + <source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</translation> + </message> + <message> + <source>Prepend debug output with timestamp (default: %u)</source> + <translation>Prepend debug output with timestamp (default: %u)</translation> + </message> + <message> + <source>Relay and mine data carrier transactions (default: %u)</source> + <translation>Relay and mine data carrier transactions (default: %u)</translation> + </message> + <message> + <source>Relay non-P2SH multisig (default: %u)</source> + <translation>Relay non-P2SH multisig (default: %u)</translation> + </message> + <message> + <source>Set key pool size to <n> (default: %u)</source> + <translation>Set key pool size to <n> (default: %u)</translation> + </message> + <message> + <source>Set minimum block size in bytes (default: %u)</source> + <translation>Set minimum block size in bytes (default: %u)</translation> + </message> + <message> + <source>Set the number of threads to service RPC calls (default: %d)</source> + <translation>Set the number of threads to service RPC calls (default: %d)</translation> + </message> + <message> + <source>Specify configuration file (default: %s)</source> + <translation>Specify configuration file (default: %s)</translation> + </message> + <message> + <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> + <translation>Specify connection timeout in milliseconds (minimum: 1, default: %d)</translation> + </message> + <message> + <source>Specify pid file (default: %s)</source> + <translation>Specify pid file (default: %s)</translation> + </message> + <message> + <source>Spend unconfirmed change when sending transactions (default: %u)</source> + <translation>Spend unconfirmed change when sending transactions (default: %u)</translation> + </message> + <message> + <source>Threshold for disconnecting misbehaving peers (default: %u)</source> + <translation>Threshold for disconnecting misbehaving peers (default: %u)</translation> + </message> + <message> + <source>Unknown network specified in -onlynet: '%s'</source> + <translation>Unknown network specified in -onlynet: '%s'</translation> + </message> + <message> + <source>Cannot resolve -bind address: '%s'</source> + <translation>Cannot resolve -bind address: '%s'</translation> + </message> + <message> + <source>Cannot resolve -externalip address: '%s'</source> + <translation>Cannot resolve -externalip address: '%s'</translation> + </message> + <message> + <source>Invalid amount for -paytxfee=<amount>: '%s'</source> + <translation>Invalid amount for -paytxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Insufficient funds</source> + <translation>Insufficient funds</translation> + </message> + <message> + <source>Loading block index...</source> + <translation>Loading block index...</translation> + </message> + <message> + <source>Add a node to connect to and attempt to keep the connection open</source> + <translation>Add a node to connect to and attempt to keep the connection open</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>Loading wallet...</translation> + </message> + <message> + <source>Cannot downgrade wallet</source> + <translation>Cannot downgrade wallet</translation> + </message> + <message> + <source>Cannot write default address</source> + <translation>Cannot write default address</translation> + </message> + <message> + <source>Rescanning...</source> + <translation>Rescanning...</translation> + </message> + <message> + <source>Done loading</source> + <translation>Done loading</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> +</context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index 4bd64f68d1..ab8dd65f81 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -409,10 +409,22 @@ <source>No block source available...</source> <translation>Neniu fonto de blokoj trovebla...</translation> </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n tago</numerusform><numerusform>%n tagoj</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n semajno</numerusform><numerusform>%n semajnoj</numerusform></translation> + </message> <message> <source>%1 and %2</source> <translation>%1 kaj %2</translation> </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n jaro</numerusform><numerusform>%n jaroj</numerusform></translation> + </message> <message> <source>%1 behind</source> <translation>mankas %1</translation> @@ -446,6 +458,30 @@ <translation>Ĝisdatigante...</translation> </message> <message> + <source>Date: %1 +</source> + <translation>Dato: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>Sumo: %1 +</translation> + </message> + <message> + <source>Type: %1 +</source> + <translation>Tipo: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>Etikedo: %1 +</translation> + </message> + <message> <source>Sent transaction</source> <translation>Sendita transakcio</translation> </message> @@ -776,7 +812,7 @@ <source>command-line options</source> <translation>komandliniaj agordaĵoj</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -854,6 +890,14 @@ <translation>MB</translation> </message> <message> + <source>Accept connections from outside</source> + <translation>Akcepti konektojn el ekstere</translation> + </message> + <message> + <source>Allow incoming connections</source> + <translation>Permesi envenantajn konektojn</translation> + </message> + <message> <source>Reset all client options to default.</source> <translation>Reagordi ĉion al defaŭlataj valoroj.</translation> </message> @@ -866,6 +910,10 @@ <translation>&Reto</translation> </message> <message> + <source>W&allet</source> + <translation>Monujo</translation> + </message> + <message> <source>Expert</source> <translation>Fakulo</translation> </message> @@ -890,6 +938,14 @@ <translation>la pordo de la prokurilo (ekz. 9050)</translation> </message> <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> <source>&Window</source> <translation>&Fenestro</translation> </message> @@ -977,6 +1033,10 @@ <translation>Minita saldo, kiu ankoraŭ ne maturiĝis</translation> </message> <message> + <source>Balances</source> + <translation>Saldoj</translation> + </message> + <message> <source>Total:</source> <translation>Totalo:</translation> </message> @@ -984,6 +1044,14 @@ <source>Your current total balance</source> <translation>via aktuala totala saldo</translation> </message> + <message> + <source>Spendable:</source> + <translation>Elspezebla:</translation> + </message> + <message> + <source>Recent transactions</source> + <translation>Lastaj transakcioj</translation> + </message> </context> <context> <name>PaymentServer</name> @@ -1046,6 +1114,10 @@ <translation>%1 m</translation> </message> <message> + <source>None</source> + <translation>Neniu</translation> + </message> + <message> <source>N/A</source> <translation>neaplikebla</translation> </message> @@ -1124,6 +1196,22 @@ <translation>Aktuala nombro de blokoj</translation> </message> <message> + <source>Received</source> + <translation>Ricevita</translation> + </message> + <message> + <source>Sent</source> + <translation>Sendita</translation> + </message> + <message> + <source>Version</source> + <translation>Versio</translation> + </message> + <message> + <source>Services</source> + <translation>Servoj</translation> + </message> + <message> <source>Last block time</source> <translation>Horo de la lasta bloko</translation> </message> @@ -1376,6 +1464,10 @@ <translation>Restmono:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Krompago:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Sendi samtempe al pluraj ricevantoj</translation> </message> @@ -2210,14 +2302,18 @@ <translation>Plenumi komandon kiam rilata alerto riceviĝas, aŭ kiam ni vidas tre longan forkon (%s en cms anstataŭiĝas per mesaĝo)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Elekti dosierujon por datumoj dum lanĉo (defaŭlte: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Ne eblas trovi la adreson -whitebind: '%s'</translation> </message> <message> <source>Information</source> <translation>Informoj</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Nevalida sumo por -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Nevalida sumo por -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2230,14 +2326,6 @@ <translation>Sendi spurajn/sencimigajn informojn al la konzolo anstataŭ al dosiero debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Agordi lingvon, ekzemple "de_DE" (defaŭlte: tiu de la sistemo)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Montri salutŝildon dum lanĉo (defaŭlte: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Malpligrandigi la sencimigan protokol-dosieron kiam kliento lanĉiĝas (defaŭlte: 1 kiam mankas -debug)</translation> </message> @@ -2246,10 +2334,6 @@ <translation>Subskriba transakcio fiaskis</translation> </message> <message> - <source>Start minimized</source> - <translation>Lanĉiĝi plejete</translation> - </message> - <message> <source>This is experimental software.</source> <translation>ĝi estas eksperimenta programo</translation> </message> diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index 8883aef989..936074210a 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -23,7 +23,7 @@ </message> <message> <source>C&lose</source> - <translation>&Cerrar</translation> + <translation>C&errar</translation> </message> <message> <source>&Copy Address</source> @@ -55,7 +55,7 @@ </message> <message> <source>C&hoose</source> - <translation>&Escoger</translation> + <translation>E&scoger</translation> </message> <message> <source>Sending addresses</source> @@ -93,7 +93,11 @@ <source>Exporting Failed</source> <translation>Fallo al exportar</translation> </message> - </context> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>Hubo un error al tratar de guardar en la lista de direcciones a %1 . Por favor, vuelve a intentarlo .</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> @@ -259,7 +263,7 @@ </message> <message> <source>E&xit</source> - <translation>&Salir</translation> + <translation>S&alir</translation> </message> <message> <source>Quit application</source> @@ -878,7 +882,23 @@ <source>command-line options</source> <translation>opciones de la consola de comandos</translation> </message> -</context> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Elegir directorio de datos al iniciar (predeterminado: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Establecer el idioma, por ejemplo, "es_ES" (predeterminado: configuración regional del sistema)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Arrancar minimizado</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Establecer los certificados raíz SSL para solicitudes de pago (predeterminado: -system-)</translation> + </message> + </context> <context> <name>Intro</name> <message> @@ -1088,6 +1108,10 @@ <translation>Tor</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Usar distintos proxys SOCKS5 para comunicarse vía Tor de forma anónima:</translation> + </message> + <message> <source>&Window</source> <translation>&Ventana</translation> </message> @@ -2022,6 +2046,10 @@ <translation>Copiar Cambio</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Monto Total %1</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> @@ -2046,6 +2074,10 @@ <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>A fee higher than %1 is considered an absurdly high fee.</source> + <translation>Una comisión mayor al %1 se considera demasiado alta.</translation> + </message> + <message> <source>Payment request expired.</source> <translation>Solicitud de pago caducada.</translation> </message> @@ -2855,6 +2887,10 @@ </translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>No se ha podido comenzar el servidor HTTP. Ver debug log para detalles.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Aceptar conexiones desde el exterior (predeterminado: 1 si no -proxy o -connect)</translation> </message> @@ -2911,10 +2947,6 @@ <translation>Poner en lista blanca a los equipos que se conecten desde la máscara de subred o dirección IP especificada. Se puede especificar múltiples veces.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(predeterminado: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool debe ser por lo menos de %d MB</translation> </message> @@ -3079,6 +3111,10 @@ <translation>Si el pago de comisión no está establecido, incluir la cuota suficiente para que las transacciones comiencen la confirmación en una media de n bloques ( por defecto :%u)</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Cantidad no válida para -maxtxfee=<amount>: '%s' (debe ser por lo menos la cuota de comisión mínima de %s para prevenir transacciones atascadas)</translation> + </message> + <message> <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> <translation>El tamaño máximo de los datos en las operaciones de transporte de datos que transmitimos y el mio (default: %u)</translation> </message> @@ -3139,10 +3175,6 @@ <translation>No se puede resolver -whitebind address: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Elegir directorio de datos al iniciar (predeterminado: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Conectar usando SOCKS5 proxy</translation> </message> @@ -3227,22 +3259,10 @@ <translation>Mandar transacciones como comisión-cero si es posible (por defecto: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Establecer los certificados raíz SSL para solicitudes de pago (predeterminado: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Establecer el idioma, por ejemplo, "es_ES" (predeterminado: configuración regional del sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Muestra todas las opciones de depuración (uso: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostrar pantalla de bienvenida en el inicio (predeterminado: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Reducir el archivo debug.log al iniciar el cliente (predeterminado: 1 sin -debug)</translation> </message> @@ -3251,10 +3271,6 @@ <translation>Transacción falló</translation> </message> <message> - <source>Start minimized</source> - <translation>Arrancar minimizado</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Cantidad de la transacción demasiado pequeña para pagar la comisión</translation> </message> @@ -3279,10 +3295,6 @@ <translation>Transacción demasiado grande</translation> </message> <message> - <source>UI Options:</source> - <translation>Opciones de interfaz de usuario</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>No es posible conectar con %s en este sistema (bind ha dado el error %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index df17411ab5..e6d48a29f0 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -302,6 +302,10 @@ <translation>bitcoin core</translation> </message> <message> + <source>%1 and %2</source> + <translation>%1 y %2</translation> + </message> + <message> <source>Error</source> <translation>Error</translation> </message> @@ -352,6 +356,10 @@ <translation>Cantidad:</translation> </message> <message> + <source>Priority:</source> + <translation>prioridad:</translation> + </message> + <message> <source>Amount</source> <translation>Cantidad</translation> </message> @@ -506,6 +514,10 @@ <translation>&Red</translation> </message> <message> + <source>W&allet</source> + <translation>Cartera</translation> + </message> + <message> <source>Expert</source> <translation>experto</translation> </message> @@ -637,6 +649,10 @@ <translation>&Información</translation> </message> <message> + <source>Debug window</source> + <translation>Ventana Debug</translation> + </message> + <message> <source>General</source> <translation>General</translation> </message> @@ -685,6 +701,10 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Cantidad:</translation> + </message> + <message> <source>&Label:</source> <translation>&Etiqueta:</translation> </message> @@ -762,10 +782,22 @@ <translation>Enviar monedas</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Fondos insuficientes</translation> + </message> + <message> <source>Amount:</source> <translation>Cantidad:</translation> </message> <message> + <source>Priority:</source> + <translation>prioridad:</translation> + </message> + <message> + <source>Transaction Fee:</source> + <translation>Comisión transacción:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples destinatarios</translation> </message> @@ -848,6 +880,10 @@ <source>Message:</source> <translation>Mensaje:</translation> </message> + <message> + <source>Pay To:</source> + <translation>Pagar a:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -903,6 +939,10 @@ <translation>Click en "Firmar Mensage" para conseguir firma</translation> </message> <message> + <source>The entered address is invalid.</source> + <translation>La dirección introducida no es una valida.</translation> + </message> + <message> <source>Please check the address and try again.</source> <translation>Por favor, revise la dirección Bitcoin e inténtelo denuevo</translation> </message> @@ -1309,13 +1349,20 @@ <translation>Información</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Enviar informacion de seguimiento a la consola en vez del archivo debug.log</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Cantidad inválida para -maxtxfee=<amount>: '%s'</translation> </message> <message> - <source>Start minimized</source> - <translation>Arranca minimizado -</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Cantidad inválida para -minrelaytxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Cantidad inválida para -mintxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Enviar informacion de seguimiento a la consola en vez del archivo debug.log</translation> </message> <message> <source>Username for JSON-RPC connections</source> diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index c67d642de7..0463c0f6e1 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -740,7 +740,7 @@ <source>command-line options</source> <translation>opciones de la línea de órdenes</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -830,6 +830,10 @@ <translation>&Red</translation> </message> <message> + <source>W&allet</source> + <translation>Monedero</translation> + </message> + <message> <source>Expert</source> <translation>Experto</translation> </message> @@ -1368,6 +1372,10 @@ <translation>Dirección propia</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Comisión de transacción:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples destinatarios de una vez</translation> </message> @@ -1519,6 +1527,10 @@ <translation>Eliminar esta transacción</translation> </message> <message> + <source>Message:</source> + <translation>Mensaje:</translation> + </message> + <message> <source>Enter a label for this address to add it to the list of used addresses</source> <translation>Introduce una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas</translation> </message> @@ -2221,14 +2233,18 @@ <translation>Establecer tamaño máximo de las transacciones de alta prioridad/comisión baja en bytes (por defecto: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Elegir directorio de datos al iniciar (predeterminado: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>No se puede resolver la dirección de -whitebind: '%s'</translation> </message> <message> <source>Information</source> <translation>Información</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Inválido por el monto -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Inválido por el monto -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2245,18 +2261,10 @@ <translation>Enviar información de trazas/depuración a la consola en lugar de al archivo debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Establecer el idioma, por ejemplo, "es_ES" (predeterminado: configuración regional del sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Mostrar todas las opciones de depuración (uso: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostrar pantalla de bienvenida en el inicio (predeterminado: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Reducir el archivo debug.log al iniciar el cliente (predeterminado: 1 sin -debug)</translation> </message> @@ -2265,10 +2273,6 @@ <translation>Transacción falló</translation> </message> <message> - <source>Start minimized</source> - <translation>Arrancar minimizado</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>Monto de la transacción muy pequeño</translation> </message> diff --git a/src/qt/locale/bitcoin_es_ES.ts b/src/qt/locale/bitcoin_es_ES.ts new file mode 100644 index 0000000000..bdbfed4ec6 --- /dev/null +++ b/src/qt/locale/bitcoin_es_ES.ts @@ -0,0 +1,481 @@ +<TS language="es_ES" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Haz clic derecho para editar la dirección o la etiqueta</translation> + </message> + <message> + <source>Create a new address</source> + <translation>Crea una nueva direccióon</translation> + </message> + <message> + <source>&New</source> + <translation>&Nuevo</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Copia la direccón seleccionada al portapapeles del sistema</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copiar</translation> + </message> + <message> + <source>C&lose</source> + <translation>C&errar</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Copiar Direccón</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Elimina la dirección seleccionada de la lista</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exporta los datos de la pestaña actual a un archivo</translation> + </message> + <message> + <source>&Export</source> + <translation>&Exportar</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Eliminar</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Elige la dirección a la que enviar las monedas</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Elige la direccón con la que recibir monedas</translation> + </message> + <message> + <source>C&hoose</source> + <translation>E&legir</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Enviando direcciones</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Recibiendo direcciones</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>Estas son tus direcciones de Bitcoin para enviar pagos. Comprueba siempre la cantidad y la dirección receptora antes de enviar monedas.</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>Estas son tus direcciones de Bitcoin para recibir pagos. Se recomienda usar una nueva dirección receptora para cada transacción</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Copiar &Etiqueta</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Editar</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Exportar Lista de Direcciones</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Archivo separado por comas (*.csv)</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exportacón Fallida</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>Ha ocurrido un error intentando guardar la lista de direcciones en %1. Por favor intentalo de nuevo.</translation> + </message> +</context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Passphrase Dialog</source> + <translation>Dialogo de Contraseña</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>Introduzca la contraseña</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Nueva contraseña</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Repite la nueva contraseña</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Encriptar cartera</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>Esta operacón necesita tu contraseña de la cartera para desbloquear la cartera.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Desbloquear cartera</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>Esta operación requiere tu contraseña de la cartera para desencriptar la cartera.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Desencriptar cartera</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Cambiar contraseña</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Confirmar encriptación de la cartera</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Advertencia: Si encriptas tu cartera y pierdes tu contraseña, <b>PERDERÁS TODOS TUS BITCOINS</B></translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Estás seguro ue deseas encriptar tu cartera?</translation> + </message> + <message> + <source>Bitcoin Core 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 Core se cerrará ahora para finalizar el proceso de encriptación. Recuerda que encriptar tu cartera no protege completamente tus bitcoins de ser robados por malware infectando tu ordenador.</translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>IMPORTANTE: Cualquier copia de seguridad anterior del archivo de tu cartera debería ser remplazado con el nuevo archivo encriptado. Por motivos de seguridad, las copias de seguridad anteriores de la cartera desencriptada quedaran inusables tan pronto como empieces a usar la nueva cartera encriptada.</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Advertencia: La Tecla de Bloqueo de Mayusculas esta activada!</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Cartera encriptada</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>Introduzca la nueva contraseña de la cartera. <br/>Por favor utilice una contraseña de <b>diez o mas caracteres aleatorios</b>, o <b>ocho o mas palabras</b>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase to the wallet.</source> + <translation>Introduzca la antigua contraseña y la nueva contraseña en la cartera.</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Encriptación de la cartera fallida</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>La encriptación de la cartera ha fallado debido a un error interno. Tu cartera no ha sido encriptada.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>Las contraseñas proporcianadas no se corresponden.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Desbloqueo de la cartera fallido</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>La contraseña introducida para desencriptar la cartera es incorrecta.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Desencriptación de la cartera fallida</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>Contraseña de la cartera cambiada correctamente</translation> + </message> +</context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Sign &message...</source> + <translation>Firmar &mensaje...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>Sincronizando con la red...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Vista general</translation> + </message> + <message> + <source>Node</source> + <translation>Nodo</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Mostrar vista general de la cartera</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transacciones</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Navegar historial de transacciones</translation> + </message> + <message> + <source>E&xit</source> + <translation>S&alir</translation> + </message> + <message> + <source>Quit application</source> + <translation>Salir de la aplicación</translation> + </message> + <message> + <source>About &Qt</source> + <translation>Acerca de &Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>Muestra información acerca de Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Opciones...</translation> + </message> + <message> + <source>&Encrypt Wallet...</source> + <translation>&Encriptar Cartera...</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>&Hacer copia de seguridad de la cartera...</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>&Cambiar contraseña...</translation> + </message> + <message> + <source>&Sending addresses...</source> + <translation>&Enviando direcciones...</translation> + </message> + <message> + <source>&Receiving addresses...</source> + <translation>&Recibiendo direcciones..</translation> + </message> + <message> + <source>Open &URI...</source> + <translation>Abrir &URI...</translation> + </message> + <message> + <source>Bitcoin Core client</source> + <translation>Cliente Bitcoin Core</translation> + </message> + <message> + <source>Importing blocks from disk...</source> + <translation>Importando bloques desde disco...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>Reindexando bloques en el disco...</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Envia monedas a una dirección Bitcoin</translation> + </message> + <message> + <source>Backup wallet to another location</source> + <translation>Crea una copia de seguridad de tu cartera en otra ubicación</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>&Address</source> + <translation>Dirección</translation> + </message> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + </context> +<context> + <name>Intro</name> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + </context> +<context> + <name>ReceiveCoinsDialog</name> + </context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Copy &Address</source> + <translation>&Copiar Direccón</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Exporting Failed</source> + <translation>Exportacón Fallida</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Archivo separado por comas (*.csv)</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + <message> + <source>&Export</source> + <translation>&Exportar</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exporta los datos de la pestaña actual a un archivo</translation> + </message> + </context> +<context> + <name>bitcoin-core</name> + </context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 1075fb08bb..fa2b3c0623 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -11,7 +11,7 @@ </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>Copiar el domicilio seleccionado al portapapeles del sistema</translation> + <translation>Copiar la dirección seleccionada al portapapeles del sistema</translation> </message> <message> <source>&Copy</source> @@ -83,7 +83,7 @@ </message> <message> <source>Comma separated file (*.csv)</source> - <translation>Arhchivo separado por comas (*.CSV)</translation> + <translation>Archivo separado por comas (*.CSV)</translation> </message> <message> <source>Exporting Failed</source> @@ -98,7 +98,7 @@ </message> <message> <source>Address</source> - <translation>Domicilio</translation> + <translation>Dirección</translation> </message> <message> <source>(no label)</source> @@ -165,7 +165,7 @@ </message> <message> <source>Wallet encryption failed</source> - <translation>Encriptación de la cartera fallida</translation> + <translation>La encriptación de la cartera fallo</translation> </message> <message> <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> @@ -181,7 +181,7 @@ </message> <message> <source>The passphrase entered for the wallet decryption was incorrect.</source> - <translation>La contraseña ingresada para la desencriptación de la cartera es incorrecto</translation> + <translation>La contraseña ingresada para la desencriptación de la cartera es incorrecta</translation> </message> <message> <source>Wallet decryption failed</source> @@ -199,7 +199,7 @@ <name>BitcoinGUI</name> <message> <source>Sign &message...</source> - <translation>Sign &mensaje</translation> + <translation>Firmar &mensaje</translation> </message> <message> <source>Synchronizing with network...</source> @@ -259,17 +259,21 @@ </message> <message> <source>&Sending addresses...</source> - <translation>&Enviando direcciones...</translation> + <translation>Direcciones de &envío...</translation> </message> <message> <source>&Receiving addresses...</source> - <translation>&Recibiendo direcciones...</translation> + <translation>Direcciones de &recepción...</translation> </message> <message> <source>Open &URI...</source> <translation>Abrir &URL...</translation> </message> <message> + <source>Bitcoin Core client</source> + <translation>cliente Bitcoin Core</translation> + </message> + <message> <source>Importing blocks from disk...</source> <translation>Importando bloques desde el disco...</translation> </message> @@ -295,13 +299,29 @@ </message> <message> <source>Open debugging and diagnostic console</source> - <translation>Abrir la consola de depuración y disgnostico</translation> + <translation>Abrir consola de depuración y diagnostico</translation> </message> <message> <source>&Verify message...</source> <translation>&Verificar mensaje...</translation> </message> <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Wallet</source> + <translation>Cartera</translation> + </message> + <message> + <source>&Send</source> + <translation>&Enviar</translation> + </message> + <message> + <source>&Receive</source> + <translation>&Recibir</translation> + </message> + <message> <source>&File</source> <translation>&Archivo</translation> </message> @@ -322,6 +342,10 @@ <translation>nucleo Bitcoin</translation> </message> <message> + <source>&About Bitcoin Core</source> + <translation>Acerca de Bitcoin Core</translation> + </message> + <message> <source>&Command-line options</source> <translation>opciones de la &Linea de comandos</translation> </message> @@ -335,7 +359,7 @@ </message> <message> <source>Catching up...</source> - <translation>Resiviendo...</translation> + <translation>Recibiendo...</translation> </message> <message> <source>Sent transaction</source> @@ -388,40 +412,44 @@ <translation>Confirmado </translation> </message> <message> + <source>Priority</source> + <translation>Prioridad</translation> + </message> + <message> <source>Copy address</source> <translation>Copiar dirección </translation> </message> <message> <source>Copy label</source> - <translation>Copiar capa </translation> + <translation>Copiar etiqueta</translation> </message> <message> <source>Copy amount</source> - <translation>copiar monto</translation> + <translation>Copiar monto</translation> </message> <message> <source>Copy quantity</source> - <translation>copiar cantidad</translation> + <translation>Copiar cantidad</translation> </message> <message> <source>Copy fee</source> - <translation>copiar cuota</translation> + <translation>Copiar cuota</translation> </message> <message> <source>Copy after fee</source> - <translation>copiar despues de cuota</translation> + <translation>Copiar después de cuota</translation> </message> <message> <source>Copy bytes</source> - <translation>copiar bytes</translation> + <translation>Copiar bytes</translation> </message> <message> <source>Copy priority</source> - <translation>copiar prioridad</translation> + <translation>Copiar prioridad</translation> </message> <message> <source>Copy change</source> - <translation>copiar cambio</translation> + <translation>Copiar cambio</translation> </message> <message> <source>(no label)</source> @@ -444,23 +472,23 @@ </message> <message> <source>New receiving address</source> - <translation>Nueva dirección de entregas</translation> + <translation>Nueva dirección de recepción</translation> </message> <message> <source>New sending address</source> - <translation>Nueva dirección de entregas</translation> + <translation>Nueva dirección de envío</translation> </message> <message> <source>Edit receiving address</source> - <translation>Editar dirección de entregas</translation> + <translation>Editar dirección de recepción</translation> </message> <message> <source>Edit sending address</source> - <translation>Editar dirección de envios</translation> + <translation>Editar dirección de envío</translation> </message> <message> <source>The entered address "%1" is already in the address book.</source> - <translation>El domicilio ingresado "%1" ya existe en la libreta de direcciones</translation> + <translation>La dirección ingresada "%1" ya existe en la libreta de direcciones</translation> </message> <message> <source>Could not unlock wallet.</source> @@ -482,7 +510,7 @@ </message> <message> <source>version</source> - <translation>Versión</translation> + <translation>versión</translation> </message> <message> <source>(%1-bit)</source> @@ -493,6 +521,10 @@ <translation>Acerca de Bitcoin Core</translation> </message> <message> + <source>Command-line options</source> + <translation>opciones de la Linea de comandos</translation> + </message> + <message> <source>Usage:</source> <translation>Uso:</translation> </message> @@ -500,7 +532,7 @@ <source>command-line options</source> <translation>Opciones de comando de lineas</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -521,6 +553,10 @@ <source>Active command-line options that override above options:</source> <translation>Activar las opciones de linea de comando que sobre escriben las siguientes opciones:</translation> </message> + <message> + <source>W&allet</source> + <translation>Cartera</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -547,14 +583,26 @@ </context> <context> <name>RPCConsole</name> + <message> + <source>Debug window</source> + <translation>Depurar ventana</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Monto:</translation> + </message> + <message> <source>&Label:</source> <translation>&Etiqueta</translation> </message> <message> + <source>&Message:</source> + <translation>Mensaje:</translation> + </message> + <message> <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> <translation>Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin.</translation> </message> @@ -568,18 +616,22 @@ </message> <message> <source>Copy label</source> - <translation>Copiar capa </translation> + <translation>Copiar etiqueta</translation> </message> <message> <source>Copy amount</source> - <translation>copiar monto</translation> + <translation>Copiar monto</translation> </message> </context> <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Copiar dirección</translation> + </message> + <message> <source>Address</source> - <translation>Domicilio</translation> + <translation>Dirección</translation> </message> <message> <source>Amount</source> @@ -589,6 +641,10 @@ <source>Label</source> <translation>Etiqueta</translation> </message> + <message> + <source>Message</source> + <translation>Mensaje</translation> + </message> </context> <context> <name>RecentRequestsTableModel</name> @@ -601,6 +657,10 @@ <translation>Etiqueta</translation> </message> <message> + <source>Message</source> + <translation>Mensaje</translation> + </message> + <message> <source>Amount</source> <translation>Monto</translation> </message> @@ -613,7 +673,7 @@ <name>SendCoinsDialog</name> <message> <source>Send Coins</source> - <translation>Mandar monedas</translation> + <translation>Enviar monedas</translation> </message> <message> <source>Bytes:</source> @@ -632,6 +692,10 @@ <translation>Cuota:</translation> </message> <message> + <source>fast</source> + <translation>rápido</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples receptores a la vez</translation> </message> @@ -645,35 +709,35 @@ </message> <message> <source>Confirm send coins</source> - <translation>Confirme para mandar monedas</translation> + <translation>Confirme para enviar monedas</translation> </message> <message> <source>Copy quantity</source> - <translation>copiar cantidad</translation> + <translation>Copiar cantidad</translation> </message> <message> <source>Copy amount</source> - <translation>copiar monto</translation> + <translation>Copiar monto</translation> </message> <message> <source>Copy fee</source> - <translation>copiar cuota</translation> + <translation>Copiar cuota</translation> </message> <message> <source>Copy after fee</source> - <translation>copiar despues de cuota</translation> + <translation>Copiar después de cuota</translation> </message> <message> <source>Copy bytes</source> - <translation>copiar bytes</translation> + <translation>Copiar bytes</translation> </message> <message> <source>Copy priority</source> - <translation>copiar prioridad</translation> + <translation>Copiar prioridad</translation> </message> <message> <source>Copy change</source> - <translation>copiar cambio</translation> + <translation>Copiar cambio</translation> </message> <message> <source>or</source> @@ -685,7 +749,7 @@ </message> <message> <source>Transaction creation failed!</source> - <translation>¡La creación de transacion falló!</translation> + <translation>¡La creación de la transación falló!</translation> </message> <message> <source>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.</source> @@ -776,12 +840,16 @@ <source>Alt+P</source> <translation>Alt+P</translation> </message> + <message> + <source>Signature</source> + <translation>Firma</translation> + </message> </context> <context> <name>SplashScreen</name> <message> <source>Bitcoin Core</source> - <translation>nucleo Bitcoin</translation> + <translation>Bitcoin Core</translation> </message> <message> <source>The Bitcoin Core developers</source> @@ -806,14 +874,42 @@ <translation>%1 confirmaciones</translation> </message> <message> + <source>Status</source> + <translation>Estado</translation> + </message> + <message> <source>Date</source> <translation>Fecha</translation> </message> <message> + <source>From</source> + <translation>De</translation> + </message> + <message> + <source>To</source> + <translation>Para</translation> + </message> + <message> + <source>label</source> + <translation>etiqueta</translation> + </message> + <message> + <source>Message</source> + <translation>Mensaje</translation> + </message> + <message> + <source>Comment</source> + <translation>Comentario</translation> + </message> + <message> <source>Transaction ID</source> <translation>ID</translation> </message> <message> + <source>Transaction</source> + <translation>Transacción</translation> + </message> + <message> <source>Amount</source> <translation>Monto</translation> </message> @@ -869,7 +965,7 @@ </message> <message> <source>Received with</source> - <translation>Recivido con</translation> + <translation>Recibido con</translation> </message> <message> <source>Sent to</source> @@ -928,7 +1024,7 @@ </message> <message> <source>Received with</source> - <translation>Recivido con</translation> + <translation>Recibido con</translation> </message> <message> <source>Sent to</source> @@ -987,6 +1083,10 @@ <translation>Exportacion satisfactoria</translation> </message> <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>el historial de transaciones ha sido guardado exitosamente en %1</translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>Arhchivo separado por comas (*.CSV)</translation> </message> @@ -1050,32 +1150,32 @@ <source>There was an error trying to save the wallet data to %1.</source> <translation>Ocurrio un error tratando de guardar la información de la cartera %1</translation> </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>La información de la cartera fué guardada exitosamente a %1</translation> + </message> </context> <context> <name>bitcoin-core</name> <message> - <source><category> can be:</source> - <translation><categoria> puede ser:</translation> - </message> - <message> - <source>Wallet options:</source> - <translation>Opciones de cartera:</translation> + <source>Options:</source> + <translation>Opciones:</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Escojer el directorio de información al iniciar (por defecto : 0)</translation> + <source><category> can be:</source> + <translation><categoria> puede ser:</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Definir idioma, por ejemplo "de_DE" (por defecto: Sistema local)</translation> + <source>Verifying blocks...</source> + <translation>Verificando bloques...</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostrar pantalla de arraque al iniciar (por defecto: 1)</translation> + <source>Verifying wallet...</source> + <translation>Verificando cartera...</translation> </message> <message> - <source>Start minimized</source> - <translation>Iniciar minimizado</translation> + <source>Wallet options:</source> + <translation>Opciones de cartera:</translation> </message> <message> <source>Loading addresses...</source> diff --git a/src/qt/locale/bitcoin_es_UY.ts b/src/qt/locale/bitcoin_es_UY.ts index 5029333b5b..32d433d6ec 100644 --- a/src/qt/locale/bitcoin_es_UY.ts +++ b/src/qt/locale/bitcoin_es_UY.ts @@ -2,21 +2,70 @@ <context> <name>AddressBookPage</name> <message> + <source>Right-click to edit address or label</source> + <translation>Clic derecho para editar dirección o etiqueta</translation> + </message> + <message> <source>Create a new address</source> <translation>Crear una nueva dirección </translation> </message> <message> + <source>&New</source> + <translation>Nuevo</translation> + </message> + <message> <source>Copy the currently selected address to the system clipboard</source> <translation>Copia la dirección seleccionada al portapapeles del sistema</translation> </message> <message> + <source>&Copy</source> + <translation>Copiar</translation> + </message> + <message> + <source>C&lose</source> + <translation>Cerrar</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>Copiar Dirección</translation> + </message> + <message> + <source>&Export</source> + <translation>Exportar</translation> + </message> + <message> <source>&Delete</source> <translation>&Borrar</translation> </message> <message> + <source>Choose the address to send coins to</source> + <translation>Elige una dirección donde enviar monedas a</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Enviando direcciones</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Recibiendo direcciones +</translation> + </message> + <message> + <source>&Edit</source> + <translation>Editar</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Exportar Lista de Direcciones</translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>Archivos separados por coma (*.csv)</translation> </message> + <message> + <source>Exporting Failed</source> + <translation>Exportación fallida</translation> + </message> </context> <context> <name>AddressTableModel</name> @@ -76,6 +125,14 @@ <translation>Confirme el cifrado del monedero</translation> </message> <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Estas seguro que deseas encriptar tu billetera?</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Atención: la tecla Mayusculas esta activa!</translation> + </message> + <message> <source>Wallet encrypted</source> <translation>Monedero cifrado</translation> </message> @@ -130,18 +187,58 @@ <translation>Buscar en el historial de transacciones</translation> </message> <message> + <source>E&xit</source> + <translation>Salida</translation> + </message> + <message> <source>Quit application</source> <translation>Salir de la aplicacion </translation> </message> <message> + <source>Show information about Qt</source> + <translation>Mostrar informacioón sobre</translation> + </message> + <message> <source>&Options...</source> <translation>&Opciones...</translation> </message> <message> + <source>&Backup Wallet...</source> + <translation>Respaldar Billetera</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>Cambiar contraseña</translation> + </message> + <message> + <source>&Sending addresses...</source> + <translation>Enviando direcciones</translation> + </message> + <message> + <source>&Receiving addresses...</source> + <translation>Recibiendo direcciones</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Enviar monedas a una dirección BItCoin</translation> + </message> + <message> <source>Change the passphrase used for wallet encryption</source> <translation>Cambie la clave utilizada para el cifrado del monedero</translation> </message> <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Wallet</source> + <translation>Billetera</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>Mostrar / Ocultar</translation> + </message> + <message> <source>&File</source> <translation>&Archivo</translation> </message> @@ -158,6 +255,18 @@ <translation>Barra de herramientas</translation> </message> <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <source>Warning</source> + <translation>Alerta</translation> + </message> + <message> + <source>Information</source> + <translation>Información</translation> + </message> + <message> <source>Up to date</source> <translation>A la fecha</translation> </message> @@ -166,6 +275,17 @@ <translation>Ponerse al dia...</translation> </message> <message> + <source>Type: %1 +</source> + <translation>Tipo: %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>Dirección: %1</translation> + </message> + <message> <source>Sent transaction</source> <translation>Transaccion enviada</translation> </message> @@ -188,10 +308,38 @@ <context> <name>CoinControlDialog</name> <message> + <source>Quantity:</source> + <translation>Cantidad:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>AMonto:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Prioridad:</translation> + </message> + <message> + <source>Change:</source> + <translation>Cambio:</translation> + </message> + <message> <source>Date</source> <translation>Fecha</translation> </message> <message> + <source>Confirmed</source> + <translation>Confirmado</translation> + </message> + <message> + <source>Priority</source> + <translation>Prioridad</translation> + </message> + <message> <source>(no label)</source> <translation>(Sin etiqueta)</translation> </message> @@ -227,6 +375,10 @@ <translation>Editar dirección de envío </translation> </message> <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>La dirección introducida "%1" ya está en la libreta de direcciones.</translation> + </message> + <message> <source>Could not unlock wallet.</source> <translation>No se puede abrir el monedero.</translation> </message> @@ -243,6 +395,10 @@ </context> <context> <name>Intro</name> + <message> + <source>Error</source> + <translation>Error</translation> + </message> </context> <context> <name>OpenURIDialog</name> @@ -253,6 +409,10 @@ <source>Options</source> <translation>Opciones</translation> </message> + <message> + <source>W&allet</source> + <translation>Billetera</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -275,6 +435,10 @@ </context> <context> <name>RPCConsole</name> + <message> + <source>&Information</source> + <translation>Información</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> @@ -286,6 +450,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>Copiar Dirección</translation> + </message> + <message> <source>Address</source> <translation>Direccion </translation> </message> @@ -316,6 +484,26 @@ <translation>Enviar monedas</translation> </message> <message> + <source>Quantity:</source> + <translation>Cantidad:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>AMonto:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Prioridad:</translation> + </message> + <message> + <source>Change:</source> + <translation>Cambio:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a varios destinatarios a la vez</translation> </message> @@ -370,6 +558,10 @@ <source>Alt+P</source> <translation>Alt+P</translation> </message> + <message> + <source>Pay To:</source> + <translation>Pagar A:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -410,6 +602,10 @@ <translation>Fecha</translation> </message> <message> + <source>Transaction</source> + <translation>Transaccion</translation> + </message> + <message> <source>unknown</source> <translation>desconocido</translation> </message> @@ -435,10 +631,18 @@ <context> <name>TransactionView</name> <message> + <source>Exporting Failed</source> + <translation>Exportación fallida</translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>Archivos separados por coma (*.csv)</translation> </message> <message> + <source>Confirmed</source> + <translation>Confirmado</translation> + </message> + <message> <source>Date</source> <translation>Fecha</translation> </message> @@ -466,8 +670,28 @@ </context> <context> <name>WalletView</name> + <message> + <source>&Export</source> + <translation>Exportar</translation> + </message> </context> <context> <name>bitcoin-core</name> - </context> + <message> + <source>Options:</source> + <translation>Opciones:</translation> + </message> + <message> + <source>Information</source> + <translation>Información</translation> + </message> + <message> + <source>Warning</source> + <translation>Alerta</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> +</context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts new file mode 100644 index 0000000000..582e728846 --- /dev/null +++ b/src/qt/locale/bitcoin_es_VE.ts @@ -0,0 +1,1133 @@ +<TS language="es_VE" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Click derecho para editar la dirección o etiqueta</translation> + </message> + <message> + <source>Create a new address</source> + <translation>Crear una nueva dirección</translation> + </message> + <message> + <source>&New</source> + <translation>&Nuevo</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Copie las direcciones seleccionadas actualmente al portapapeles del sistema</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copiar</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Copiar Dirección</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Borrar las direcciones seleccionadas recientemente de la lista</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exportar los datos en la pestaña actual a un archivo</translation> + </message> + <message> + <source>&Export</source> + <translation>&Exportar</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Borrar</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Elige la dirección para enviar monedas</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Elige la dirección para recibir monedas</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Envío de direcciones</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Recepción de direcciones</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>Estas son tus direcciones Bitcoin para realizar pagos. Siempre checa el monto y la dirección de recepción antes de enviar monedas.</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>Estas son tus direcciones Bitcoin para recibir pagos. Es recomendable usar una nueva dirección para cada transacción.</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Copiar &Etiqueta</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Editar</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Exportar lista de direcciones</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Archivo separado por comas (*.csv)</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exportación fallida</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>Hubo un error intentando guardar la lista de direcciones al %1. Por favor intente nuevamente.</translation> + </message> +</context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Passphrase Dialog</source> + <translation>Diálogo contraseña</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>Ingresa frase de contraseña</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Nueva frase de contraseña</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Repetir nueva frase de contraseña</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Encriptar billetera</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>Esta operación necesita tu frase de contraseña de la billetera para desbloquearla.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Desbloquear billetera</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>Esta operacción necesita tu frase de contraseña para desepcriptar la billetera</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Desencriptar billetera</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Cambiar frase secreta</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Confirmar encriptación de billetera</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Aviso: Si encriptas tu billetera y pierdes tu frase secreta, ¡PERDERÁS TODOS TUS BITCOINS!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>¿Está seguro que desea encriptar su billetera?</translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>IMPORTANTE: Algunas copias de seguridad que hayas hecho de tu archivo de billetera deberían ser reemplazadas con la billetera encriptada generada recientemente. Por razones de seguridad, las copias de seguridad previas del archivo de billetera sin cifrar serán inútiles tan pronto uses la nueva billetera encriptada.</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Aviso: El bloqueo de mayúsculas está activado.</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Billetera encriptada</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>Introduce la nueva frase secreta a la billetera. Por favor use una frase secreta de diez o más caracteres aleatorios, u ocho o más palabras.</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Encriptación de billetera fallida</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Encriptación de billetera fallida debido a un error interno. Tu billetera no fue encriptada.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>Las frases secretas introducidas no concuerdan.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Desbloqueo de billetera fallido</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>La frase secreta introducida para la desencriptación de la billetera fué incorrecta.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Desencriptación de billetera fallida</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>La frase secreta de la billetera fué cambiada exitosamente.</translation> + </message> +</context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Sign &message...</source> + <translation>Firmar &mensaje...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>Sincronizando con la red...</translation> + </message> + <message> + <source>Node</source> + <translation>Nodo</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Mostrar visión general de la billetera</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transacciones</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Buscar historial de transacciones</translation> + </message> + <message> + <source>Quit application</source> + <translation>Quitar aplicación</translation> + </message> + <message> + <source>&Receiving addresses...</source> + <translation>Recepción de direcciones</translation> + </message> + <message> + <source>Bitcoin Core client</source> + <translation>Cliente Bitcoin Core</translation> + </message> + <message> + <source>Importing blocks from disk...</source> + <translation>Importando bloques desde el disco...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>Reindexando bloques en el disco...</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Enviar monedas a una dirección Bitcoin</translation> + </message> + <message> + <source>Backup wallet to another location</source> + <translation>Respaldar billetera en otra ubicación</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>Cambiar frase secreta usada para la encriptación de la billetera</translation> + </message> + <message> + <source>Open debugging and diagnostic console</source> + <translation>Abre la consola de depuración y diágnostico</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Wallet</source> + <translation>Billetera</translation> + </message> + <message> + <source>&Send</source> + <translation>&Enviar</translation> + </message> + <message> + <source>&Receive</source> + <translation>&Recibir</translation> + </message> + <message> + <source>Show information about Bitcoin Core</source> + <translation>Mostrar información acerca de Bitcoin Core</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>&Mostar / Ocultar</translation> + </message> + <message> + <source>Show or hide the main Window</source> + <translation>Mostar u ocultar la ventana principal</translation> + </message> + <message> + <source>Encrypt the private keys that belong to your wallet</source> + <translation>Encriptar las llaves privadas que pertenecen a tu billetera</translation> + </message> + <message> + <source>Sign messages with your Bitcoin addresses to prove you own them</source> + <translation>Firma mensajes con tus direcciones Bitcoin para probar que eres dueño de ellas</translation> + </message> + <message> + <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> + <translation>Verificar mensajes para asegurar que estaban firmados con direcciones Bitcoin especificas</translation> + </message> + <message> + <source>&File</source> + <translation>&Archivo</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Configuración</translation> + </message> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>&About Bitcoin Core</source> + <translation>Acerca de Bitcoin Core</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>Opciones de línea de comandos</translation> + </message> + <message> + <source>%1 and %2</source> + <translation>%1 y %2</translation> + </message> + <message> + <source>%1 behind</source> + <translation>%1 detrás</translation> + </message> + <message> + <source>Last received block was generated %1 ago.</source> + <translation>El último bloque recibido fue generado hace %1 hora(s).</translation> + </message> + <message> + <source>Transactions after this will not yet be visible.</source> + <translation>Transacciones después de esta no serán visibles todavía.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <source>Warning</source> + <translation>Advertencia</translation> + </message> + <message> + <source>Information</source> + <translation>Información</translation> + </message> + <message> + <source>Up to date</source> + <translation>Al día</translation> + </message> + <message> + <source>Catching up...</source> + <translation>Alcanzando...</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>Transacción enviada</translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>Transacción entrante</translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> + <translation>La billetera está encriptada y desbloqueada recientemente</translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> + <translation>La billetera está encriptada y bloqueada recientemente</translation> + </message> +</context> +<context> + <name>ClientModel</name> + <message> + <source>Network Alert</source> + <translation>Alerta de red</translation> + </message> +</context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Coin Selection</source> + <translation>Selección de moneda</translation> + </message> + <message> + <source>Quantity:</source> + <translation>Cantidad:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Monto:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Prioridad:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Comisión:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Polvo:</translation> + </message> + <message> + <source>Change:</source> + <translation>Cambio:</translation> + </message> + <message> + <source>(un)select all</source> + <translation>(de)seleccionar todo</translation> + </message> + <message> + <source>Tree mode</source> + <translation>Modo de árbol</translation> + </message> + <message> + <source>List mode</source> + <translation>Modo de lista</translation> + </message> + <message> + <source>Amount</source> + <translation>Monto</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> + <message> + <source>Confirmations</source> + <translation>Confirmaciones</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmado</translation> + </message> + <message> + <source>Priority</source> + <translation>Prioridad</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copiar dirección</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copiar etiqueta</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copiar monto</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copiar ID de la transacción</translation> + </message> + <message> + <source>Lock unspent</source> + <translation>Bloqueo no gastado</translation> + </message> + <message> + <source>Unlock unspent</source> + <translation>Desbloqueo no gastado</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copiar cantidad</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copiar comisión</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copiar bytes</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Copiar prioridad</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copiar dust</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copiar cambio</translation> + </message> + <message> + <source>highest</source> + <translation>Más alto</translation> + </message> + <message> + <source>higher</source> + <translation>superior</translation> + </message> + <message> + <source>high</source> + <translation>alto</translation> + </message> + <message> + <source>medium-high</source> + <translation>medio-alto</translation> + </message> + <message> + <source>medium</source> + <translation>medio</translation> + </message> + <message> + <source>low-medium</source> + <translation>bajo-medio</translation> + </message> + <message> + <source>low</source> + <translation>bajo</translation> + </message> + <message> + <source>lower</source> + <translation>inferior</translation> + </message> + <message> + <source>lowest</source> + <translation>más bajo</translation> + </message> + <message> + <source>(%1 locked)</source> + <translation>(%1 bloqueado)</translation> + </message> + <message> + <source>none</source> + <translation>ninguno</translation> + </message> + <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Puede variar +/- %1 satoshi(s) por entrada.</translation> + </message> + <message> + <source>yes</source> + <translation>si</translation> + </message> + <message> + <source>no</source> + <translation>no</translation> + </message> + <message> + <source>This means a fee of at least %1 per kB is required.</source> + <translation>Esto significa que se requiere al menos de una comisión de %1 por kB</translation> + </message> + <message> + <source>Can vary +/- 1 byte per input.</source> + <translation>Puede variar +/- 1 byte por entrada.</translation> + </message> + <message> + <source>Transactions with higher priority are more likely to get included into a block.</source> + <translation>Transacciones con mayor prioridad son más probables de ser incluidas en un bloque.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + <message> + <source>change from %1 (%2)</source> + <translation>Cambio desde %1 (%2)</translation> + </message> + <message> + <source>(change)</source> + <translation>(cambio)</translation> + </message> +</context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Editar dirección</translation> + </message> + <message> + <source>&Label</source> + <translation>&Etiqueta</translation> + </message> + <message> + <source>The label associated with this address list entry</source> + <translation>La etiqueta asociada con esta entrada de la lista de direcciones</translation> + </message> + <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>La dirección asociada con esta entrada de la lista de direcciones. Esta puede ser modificada solo para el envío de direcciones.</translation> + </message> + <message> + <source>&Address</source> + <translation>&Dirección</translation> + </message> + <message> + <source>New receiving address</source> + <translation>Nueva dirección de recibo</translation> + </message> + <message> + <source>New sending address</source> + <translation>Nueva dirección de envío</translation> + </message> + <message> + <source>Edit receiving address</source> + <translation>Editar dirección de envío</translation> + </message> + <message> + <source>Edit sending address</source> + <translation>Editar dirección de envío</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>La dirección introducida "%1" ya está en el libro de direcciones.</translation> + </message> + <message> + <source>The entered address "%1" is not a valid Bitcoin address.</source> + <translation>La dirección introducida "%1" no es una dirección Bitcoin válida.</translation> + </message> + <message> + <source>Could not unlock wallet.</source> + <translation>No se pudo desbloquear la billetera.</translation> + </message> + <message> + <source>New key generation failed.</source> + <translation>Creación de la nueva llave fallida</translation> + </message> +</context> +<context> + <name>FreespaceChecker</name> + <message> + <source>A new data directory will be created.</source> + <translation>Un nuevo directorio de datos será creado.</translation> + </message> + <message> + <source>name</source> + <translation>nombre</translation> + </message> + <message> + <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> + <translation>El directorio ya existe. Agrega %1 si tiene la intención de crear un nuevo directorio aquí.</translation> + </message> + <message> + <source>Path already exists, and is not a directory.</source> + <translation>La ruta ya existe, y no es un directorio.</translation> + </message> + <message> + <source>Cannot create data directory here.</source> + <translation>No puede crear directorio de datos aquí.</translation> + </message> +</context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>version</source> + <translation>versión</translation> + </message> + <message> + <source>(%1-bit)</source> + <translation>(%1-bit)</translation> + </message> + <message> + <source>About Bitcoin Core</source> + <translation>Acerca de Bitcoin Core</translation> + </message> + <message> + <source>Command-line options</source> + <translation>Opciones de línea de comandos</translation> + </message> + <message> + <source>Usage:</source> + <translation>Uso:</translation> + </message> + <message> + <source>command-line options</source> + <translation>opciones de línea de comandos</translation> + </message> + </context> +<context> + <name>Intro</name> + <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>Bitcoin Core descargará y almacenará una copia de la cadena de bloques Bitcoin. Al menos %1GB de datos serán almacenados en este directorio, y crecerá con el tiempo. La billetera será también almacenada en este directorio.</translation> + </message> + <message> + <source>Use the default data directory</source> + <translation>Usar el directorio de datos por defecto</translation> + </message> + <message> + <source>Use a custom data directory:</source> + <translation>Usa un directorio de datos personalizado:</translation> + </message> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>Error: Specified data directory "%1" cannot be created.</source> + <translation>Error: Directorio de datos especificado "%1" no puede ser creado.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + </context> +<context> + <name>OpenURIDialog</name> + <message> + <source>Open URI</source> + <translation>Abrir URI</translation> + </message> + <message> + <source>Open payment request from URI or file</source> + <translation>Abrir solicitud de pago desde URI o archivo</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> + <message> + <source>Select payment request file</source> + <translation>Seleccionar archivo de solicitud de pago</translation> + </message> + <message> + <source>Select payment request file to open</source> + <translation>Seleccionar archivo de solicitud de pago para abrir</translation> + </message> +</context> +<context> + <name>OptionsDialog</name> + <message> + <source>Options</source> + <translation>Opciones</translation> + </message> + <message> + <source>&Main</source> + <translation>&Main</translation> + </message> + <message> + <source>W&allet</source> + <translation>Billetera</translation> + </message> + <message> + <source>none</source> + <translation>ninguno</translation> + </message> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + <message> + <source>Amount</source> + <translation>Monto</translation> + </message> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + <message> + <source>&Information</source> + <translation>Información</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>&Amount:</source> + <translation>Monto:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Etiqueta:</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copiar etiqueta</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copiar monto</translation> + </message> +</context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Copy &Address</source> + <translation>&Copiar Dirección</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + <message> + <source>Amount</source> + <translation>Monto</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Fecha</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>Amount</source> + <translation>Monto</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Quantity:</source> + <translation>Cantidad:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Monto:</translation> + </message> + <message> + <source>Priority:</source> + <translation>Prioridad:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Comisión:</translation> + </message> + <message> + <source>Change:</source> + <translation>Cambio:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Polvo:</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copiar cantidad</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copiar monto</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copiar comisión</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copiar bytes</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Copiar prioridad</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copiar cambio</translation> + </message> + <message> + <source>(no label)</source> + <translation>(sin etiqueta)</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copiar dust</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>Monto:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Etiqueta:</translation> + </message> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>Fecha</translation> + </message> + <message> + <source>Transaction</source> + <translation>Transacción</translation> + </message> + <message> + <source>Amount</source> + <translation>Monto</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Fecha</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Copy address</source> + <translation>Copiar dirección</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copiar etiqueta</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copiar monto</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copiar ID de la transacción</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exportación fallida</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Archivo separado por comas (*.csv)</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmado</translation> + </message> + <message> + <source>Date</source> + <translation>Fecha</translation> + </message> + <message> + <source>Label</source> + <translation>Etiqueta</translation> + </message> + <message> + <source>Address</source> + <translation>Dirección</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + <message> + <source>&Export</source> + <translation>&Exportar</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exportar los datos en la pestaña actual a un archivo</translation> + </message> + <message> + <source>Backup Failed</source> + <translation>Copia de seguridad fallida</translation> + </message> + <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>Hubo un error intentando guardar los datos de la billetera al %1</translation> + </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>Los datos de la billetera fueron guardados exitosamente al %1</translation> + </message> + <message> + <source>Backup Successful</source> + <translation>Copia de seguridad completada</translation> + </message> +</context> +<context> + <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>Opciones:</translation> + </message> + <message> + <source>Specify data directory</source> + <translation>Especifique directorio de datos</translation> + </message> + <message> + <source>Connect to a node to retrieve peer addresses, and disconnect</source> + <translation>Conecte un nodo para recuperar direcciones pares, y desconecte</translation> + </message> + <message> + <source>Specify your own public address</source> + <translation>Especifique su propia dirección pública</translation> + </message> + <message> + <source>Accept command line and JSON-RPC commands</source> + <translation>Aceptar linea de comando y comandos JSON-RPC</translation> + </message> + <message> + <source>Run in the background as a daemon and accept commands</source> + <translation>Correr en segundo plano como daemon y aceptar comandos</translation> + </message> + <message> + <source>Bind to given address and always listen on it. Use [host]:port notation for IPv6</source> + <translation>Enlazar dirección dada y siempre escuchar en ella. Usar [host]:port notación para IPv6</translation> + </message> + <message> + <source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source> + <translation>Borrar todas las transacciones de la billetera y solo recuperar aquellas partes de la cadena de bloques a través de -rescan en el inicio del sistema.</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 licensia de software MIT, ver el archivo adjunto COPYING o <http://www.opensource.org/licenses/mit-license.php>.</translation> + </message> + <message> + <source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source> + <translation>Ejecutar comando cuando una transacción de la billetera cambia (%s en cmd es reemplazado por TxID)</translation> + </message> + <message> + <source>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</source> + <translation>Fija el número de verificación de hilos de script (%u a %d, 0 = auto, <0 = leave that many cores free, default: %d)</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>Esta es una compilación de prueba pre-lanzamiento - use bajo su propio riesgo - no utilizar para aplicaciones de minería o mercantes</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. Bitcoin Core is probably already running.</source> + <translation>Deshabilitar para enlezar a %s en esta computadora. Bitcoin Core probablemente ya está ejecutándose.</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Aviso: ¡La red no parece estar totalmente de acuerdo! Algunos mineros parecen estar teniendo inconvenientes.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Aviso: ¡No parecen estar totalmente de acuerdo con nuestros compañeros! Puede que tengas que actualizar, u otros nodos tengan que actualizarce.</translation> + </message> + <message> + <source>Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup.</source> + <translation>Aviso: wallet.dat está corrupto, ¡datos salvados! wallet.dat original guardado como wallet.{timestamp}.bak en %s; si tus transacciones o balance está incorrecto deberías restaurarlo desde una copia de seguridad.</translation> + </message> + <message> + <source>Information</source> + <translation>Información</translation> + </message> + <message> + <source>Warning</source> + <translation>Advertencia</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> +</context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index 9279834af3..945e4cfa58 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -329,6 +329,14 @@ <source>Bitcoin Core</source> <translation>Bitcoini tuumik</translation> </message> + <message> + <source>&About Bitcoin Core</source> + <translation>Kirjeldus Bitcoini Tuumast</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>Käsurea valikud</translation> + </message> <message numerus="yes"> <source>%n hour(s)</source> <translation><numerusform>%n tund</numerusform><numerusform>%n tundi</numerusform></translation> @@ -606,7 +614,7 @@ <source>command-line options</source> <translation>käsurea valikud</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -640,6 +648,10 @@ <translation>Valikud</translation> </message> <message> + <source>&Main</source> + <translation>&Peamine</translation> + </message> + <message> <source>MB</source> <translation>MB</translation> </message> @@ -810,6 +822,10 @@ <translation>&Informatsioon</translation> </message> <message> + <source>Debug window</source> + <translation>Debugimise aken</translation> + </message> + <message> <source>General</source> <translation>Üldine</translation> </message> @@ -948,6 +964,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Kopeeri Aadress</translation> + </message> + <message> <source>Address</source> <translation>Aadress</translation> </message> @@ -1010,6 +1030,10 @@ <translation>Müntide saatmine</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Liiga suur summa</translation> + </message> + <message> <source>Quantity:</source> <translation>Kogus:</translation> </message> @@ -1022,6 +1046,10 @@ <translation>Tasu:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Tehingu tasu:</translation> + </message> + <message> <source>Choose...</source> <translation>Vali...</translation> </message> @@ -1132,6 +1160,10 @@ <source>Message:</source> <translation>Sõnum:</translation> </message> + <message> + <source>Pay To:</source> + <translation>Maksa :</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1284,6 +1316,10 @@ <translation>Avatud kuni %1</translation> </message> <message> + <source>%1/offline</source> + <translation>%1/offline'is</translation> + </message> + <message> <source>%1/unconfirmed</source> <translation>%1/kinnitamata</translation> </message> @@ -1732,24 +1768,36 @@ <translation>Rahakoti valikud:</translation> </message> <message> + <source>(default: %u)</source> + <translation>(vaikimisi: %u)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Tundmatu -whitebind aadress: '%s'</translation> + </message> + <message> <source>Information</source> <translation>Informatsioon</translation> </message> <message> - <source>RPC server options:</source> - <translation>RPC serveri valikud:</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>-maxtxfee=<amount> jaoks vigane kogus: '%s'</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Saada jälitus/debug, debug.log faili asemel, konsooli</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>-minrelaytxfee=<amount> jaoks vigane kogus: '%s'</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Keele valik, nt "ee_ET" (vaikeväärtus: system locale)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>-mintxfee=<amount> jaoks vigane kogus: '%s'</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Käivitamisel teabeakna kuvamine (vaikeväärtus: 1)</translation> + <source>RPC server options:</source> + <translation>RPC serveri valikud:</translation> + </message> + <message> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Saada jälitus/debug, debug.log faili asemel, konsooli</translation> </message> <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> @@ -1760,10 +1808,6 @@ <translation>Tehingu allkirjastamine ebaõnnestus</translation> </message> <message> - <source>Start minimized</source> - <translation>Käivitu tegumiribale</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Tehingu summa on tasu maksmiseks liiga väikene</translation> </message> @@ -1776,10 +1820,6 @@ <translation>Tehing liiga suur</translation> </message> <message> - <source>UI Options:</source> - <translation>UI Valikud:</translation> - </message> - <message> <source>Username for JSON-RPC connections</source> <translation>JSON-RPC ühenduste kasutajatunnus</translation> </message> diff --git a/src/qt/locale/bitcoin_eu_ES.ts b/src/qt/locale/bitcoin_eu_ES.ts index 4da6cc0dce..ca6b6489d1 100644 --- a/src/qt/locale/bitcoin_eu_ES.ts +++ b/src/qt/locale/bitcoin_eu_ES.ts @@ -250,6 +250,10 @@ <translation>&Aukerak...</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Helbideak jasotzen</translation> + </message> + <message> <source>Change the passphrase used for wallet encryption</source> <translation>Aldatu zorroa enkriptatzeko erabilitako pasahitza</translation> </message> @@ -415,10 +419,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Kopurua</translation> + </message> + <message> <source>&Label:</source> <translation>&Etiketa:</translation> </message> <message> + <source>&Message:</source> + <translation>Mezua</translation> + </message> + <message> <source>Copy label</source> <translation>Kopiatu etiketa</translation> </message> @@ -426,6 +438,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Kopiatu helbidea</translation> + </message> + <message> <source>Address</source> <translation>Helbidea</translation> </message> @@ -437,6 +453,10 @@ <source>Label</source> <translation>Etiketa</translation> </message> + <message> + <source>Message</source> + <translation>Mezua</translation> + </message> </context> <context> <name>RecentRequestsTableModel</name> @@ -449,6 +469,10 @@ <translation>Etiketa</translation> </message> <message> + <source>Message</source> + <translation>Mezua</translation> + </message> + <message> <source>Amount</source> <translation>Kopurua</translation> </message> @@ -526,6 +550,10 @@ <source>Message:</source> <translation>Mezua</translation> </message> + <message> + <source>Pay To:</source> + <translation>Ordaindu honi:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -574,6 +602,14 @@ <translation>Data</translation> </message> <message> + <source>Message</source> + <translation>Mezua</translation> + </message> + <message> + <source>Transaction</source> + <translation>Transakzioaren</translation> + </message> + <message> <source>Amount</source> <translation>Kopurua</translation> </message> diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index fb4e25dfb8..7ab3b77da3 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -397,6 +397,10 @@ <source>Show the list of used receiving addresses and labels</source> <translation>نمایش لیست آدرس های دریافت و لیبل ها</translation> </message> + <message> + <source>&Command-line options</source> + <translation>گزینههای خطفرمان</translation> + </message> <message numerus="yes"> <source>%n active connection(s) to Bitcoin network</source> <translation><numerusform>%n ارتباط فعال با شبکهٔ بیتکوین</numerusform></translation> @@ -418,6 +422,14 @@ <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> @@ -712,7 +724,7 @@ <source>command-line options</source> <translation>گزینههای خط فرمان</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -743,6 +755,10 @@ <source>Error</source> <translation>خطا</translation> </message> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>%n گیگابایت فضا موجود است</numerusform></translation> + </message> </context> <context> <name>OpenURIDialog</name> @@ -770,6 +786,10 @@ <translation>&شبکه</translation> </message> <message> + <source>W&allet</source> + <translation>کیف پول</translation> + </message> + <message> <source>Expert</source> <translation>استخراج</translation> </message> @@ -976,6 +996,10 @@ <translation>&اطلاعات</translation> </message> <message> + <source>Debug window</source> + <translation>پنجرهٔ اشکالزدایی</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>نسخهٔ OpenSSL استفاده شده</translation> </message> @@ -1067,10 +1091,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>مبلغ:</translation> + </message> + <message> <source>&Label:</source> <translation>&برچسب:</translation> </message> <message> + <source>&Message:</source> + <translation>پیام:</translation> + </message> + <message> <source>Show</source> <translation>نمایش</translation> </message> @@ -1094,6 +1126,10 @@ <translation>کد QR</translation> </message> <message> + <source>Copy &Address</source> + <translation>&کپی نشانی</translation> + </message> + <message> <source>Address</source> <translation>نشانی</translation> </message> @@ -1148,6 +1184,10 @@ <translation>ارسال سکه</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>بود جه نا کافی </translation> + </message> + <message> <source>Quantity:</source> <translation>تعداد:</translation> </message> @@ -1176,6 +1216,10 @@ <translation>پول خورد:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>هزینهٔ تراکنش:</translation> + </message> + <message> <source>fast</source> <translation>سریع</translation> </message> @@ -1290,6 +1334,10 @@ <source>Message:</source> <translation>پیام:</translation> </message> + <message> + <source>Pay To:</source> + <translation>پرداخت به:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1926,36 +1974,28 @@ <translation>در حال بازبینی کیف پول...</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>انتخاب مسیر دادهها در ابتدای اجرای برنامه (پیشفرض: 0)</translation> - </message> - <message> <source>Information</source> <translation>اطلاعات</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>اطلاعات ردگیری/اشکالزدایی را به جای فایل لاگ اشکالزدایی به کنسول بفرستید</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>میزان وجه اشتباه برای maxtxfee=<میزان وجه>: %s</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>زبان را تنظیم کنید؛ برای مثال «de_DE» (زبان پیشفرض محلی)</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>میزان وجه اشتباه برای minrelaytxfee=<میزان وجه>: %s</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>نمایش پنجرهٔ خوشامدگویی در ابتدای اجرای برنامه (پیشفرض: 1)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>میزان وجه اشتباه برای mintxfee=<میزان وجه>: %s</translation> </message> <message> - <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> - <translation>فایل debug.log را در startup مشتری کوچک کن (پیش فرض:1 اگر اشکال زدایی روی نداد)</translation> - </message> - <message> - <source>Start minimized</source> - <translation>اجرای برنامه به صورت کوچکشده</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>اطلاعات ردگیری/اشکالزدایی را به جای فایل لاگ اشکالزدایی به کنسول بفرستید</translation> </message> <message> - <source>UI Options:</source> - <translation>گزینههای رابط کاربری:</translation> + <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> + <translation>فایل debug.log را در startup مشتری کوچک کن (پیش فرض:1 اگر اشکال زدایی روی نداد)</translation> </message> <message> <source>Username for JSON-RPC connections</source> diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts index fd9de2e049..8bbfc72424 100644 --- a/src/qt/locale/bitcoin_fa_IR.ts +++ b/src/qt/locale/bitcoin_fa_IR.ts @@ -250,6 +250,10 @@ <translation>تغییر رمز/پَس فرِیز</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>دریافت آدرس ها</translation> + </message> + <message> <source>Backup wallet to another location</source> <translation>گرفتن نسخه پیشتیبان در آدرسی دیگر</translation> </message> @@ -392,6 +396,10 @@ <translation>ویرایش حساب ارسال کننده</translation> </message> <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>حساب وارد شده «%1» از پیش در دفترچه حساب ها موجود است.</translation> + </message> + <message> <source>The entered address "%1" is not a valid Bitcoin address.</source> <translation>آدرس وارد شده "%1" یک آدرس صحیح برای bitcoin نسشت</translation> </message> @@ -435,6 +443,14 @@ <translation>انتخاب/آپشن</translation> </message> <message> + <source>&Network</source> + <translation>شبکه</translation> + </message> + <message> + <source>W&allet</source> + <translation>کیف پول</translation> + </message> + <message> <source>&OK</source> <translation>و تایید</translation> </message> @@ -504,10 +520,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>میزان وجه:</translation> + </message> + <message> <source>&Label:</source> <translation>و برچسب</translation> </message> <message> + <source>&Message:</source> + <translation>پیام:</translation> + </message> + <message> <source>Copy label</source> <translation>برچسب را کپی کنید</translation> </message> @@ -519,6 +543,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>کپی آدرس</translation> + </message> + <message> <source>Address</source> <translation>حساب</translation> </message> @@ -573,6 +601,10 @@ <translation>سکه های ارسالی</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>وجوه ناکافی</translation> + </message> + <message> <source>Amount:</source> <translation>میزان وجه:</translation> </message> @@ -685,6 +717,10 @@ <source>Alt+P</source> <translation>Alt و P</translation> </message> + <message> + <source>Sign &Message</source> + <translation>و امضای پیام </translation> + </message> </context> <context> <name>SplashScreen</name> @@ -1000,6 +1036,18 @@ <translation>مبلغ تراکنش کمتر از آن است که پس از کسر هزینه تراکنش قابل ارسال باشد</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>میزان اشتباه است for -maxtxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>میزان اشتباه است for -minrelaytxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>میزان اشتباه است for -mintxfee=<amount>: '%s'</translation> + </message> + <message> <source>RPC server options:</source> <translation>گزینه های سرویس دهنده RPC:</translation> </message> diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 7026fff1f5..57987b26ec 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/Verkon peite</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Estetty kunnes</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -874,6 +882,34 @@ <source>command-line options</source> <translation>komentorivi parametrit</translation> </message> + <message> + <source>UI Options:</source> + <translation>Käyttöliittymän asetukset:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Valitse datahakemisto käynnistyksen yhteydessä (oletus: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Aseta kieli, esimerkiksi "de_DE" (oletus: järjestelmän kieli)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Käynnistä pienennettynä</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Aseta maksupyynnöille SSL-juurivarmenteet (oletus: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Näytä aloitusruutu käynnistyksen yhteydessä (oletus: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Nollaa kaikki graafisen käyttöliittymän kautta tehdyt muutokset</translation> + </message> </context> <context> <name>Intro</name> @@ -980,6 +1016,14 @@ <translation>IP osoite proxille (esim. IPv4: 127.0.0.1 / IPv6: ::1)</translation> </message> <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Minimoi ikkuna ohjelman sulkemisen sijasta kun ikkuna suljetaan. Kun tämä asetus on käytössä, ohjelma suljetaan vain valittaessa valikosta Poistu.</translation> + </message> + <message> + <source>The user interface language can be set here. This setting will take effect after restarting Bitcoin Core.</source> + <translation>Käyttöliittymän kieli voidaan asettaa tässä. Tämä asetus tulee käyttöön vasta kun Bitcoin Core käynnistetään uudelleen.</translation> + </message> + <message> <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> <translation>Ulkopuoliset URL-osoitteet (esim. block explorer,) jotka esiintyvät siirrot-välilehdellä valikossa. %s URL-osoitteessa korvataan siirtotunnuksella. Useampi URL-osoite on eroteltu pystyviivalla |.</translation> </message> @@ -1064,6 +1108,34 @@ <translation>Proxyn Portti (esim. 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Vertaisten saavuttamiseen käytettävät verkkotyypit:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Ilmoittaa, mikäli oletetettua SOCKS5-välityspalvelinta käytetään tämän verkkotyypin kautta vertaisten saavuttamiseen.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Yhdistä Bitcoin-verkkoon erillisen SOCKS5-välityspalvelimen kautta piilotettuja Tor-palveluja varten.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Käytä erillistä SOCKS5-välityspalvelinta saavuttaaksesi vertaisia piilotettujen Tor-palveluiden kautta:</translation> + </message> + <message> <source>&Window</source> <translation>&Ikkuna</translation> </message> @@ -1434,6 +1506,22 @@ <translation>Nykyinen Lohkojen määrä</translation> </message> <message> + <source>Memory Pool</source> + <translation>Muistiallas</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Tämänhetkinen rahansiirtojen määrä</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Muistin käyttö</translation> + </message> + <message> + <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> + <translation>Avaa Bitcoin Coren debug-loki tämänhetkisestä datahakemistosta. Tämä voi viedä muutaman sekunnin suurille lokitiedostoille.</translation> + </message> + <message> <source>Received</source> <translation>Vastaanotetut</translation> </message> @@ -1446,10 +1534,18 @@ <translation>&Vertaiset</translation> </message> <message> + <source>Banned peers</source> + <translation>Estetyt vertaiset</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Valitse vertainen eriteltyjä tietoja varten.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Sallittu</translation> + </message> + <message> <source>Direction</source> <translation>Suunta</translation> </message> @@ -1458,6 +1554,18 @@ <translation>Versio</translation> </message> <message> + <source>Starting Block</source> + <translation>Alkaen lohkosta</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Synkronoidut ylätunnisteet</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Synkronoidut lohkot</translation> + </message> + <message> <source>User Agent</source> <translation>Käyttöliittymä</translation> </message> @@ -1486,6 +1594,14 @@ <translation>Vasteaika</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>Tämänhetkisen merkittävän yhteyskokeilun kesto.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Yhteyskokeilun odotus</translation> + </message> + <message> <source>Time Offset</source> <translation>Ajan poikkeama</translation> </message> @@ -1534,6 +1650,34 @@ <translation>Tyhjennä konsoli</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Katkaise yhteys solmukohtaan</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Estä solmukohta</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &tunti</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &päivä</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &viikko</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &vuosi</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Poista solmukohdan esto</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Tervetuloa Bitcoin Coren RPC-konsoliin.</translation> </message> @@ -1562,6 +1706,10 @@ <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(solmukohdan id: %1)</translation> + </message> + <message> <source>via %1</source> <translation>%1 kautta</translation> </message> @@ -1942,6 +2090,10 @@ <translation>Kopioi vaihtoraha</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Kokonaismäärä %1</translation> + </message> + <message> <source>or</source> <translation>tai</translation> </message> @@ -1974,10 +2126,22 @@ <translation>Maksupyyntö on vanhentunut.</translation> </message> <message> + <source>Pay only the required fee of %1</source> + <translation>Maksa vain vaadittu kulu kooltaan %1</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Vahvistuminen alkaa arviolta %n lohkon päästä.</numerusform><numerusform>Vahvistuminen alkaa arviolta %n lohkon päästä.</numerusform></translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Vastaanottajan osoite ei ole kelvollinen. Tarkistathan uudelleen.</translation> </message> <message> + <source>Duplicate address found: addresses should only be used once each.</source> + <translation>Duplikaattiosoite löytyi: kutakin osoitetta pitäisi käyttää vain kerran.</translation> + </message> + <message> <source>Warning: Invalid Bitcoin address</source> <translation>Varoitus: Virheellinen Bitcoin osoite</translation> </message> @@ -2506,6 +2670,10 @@ <translation>Onko rahansiirrossa mukana ainoastaan katseltava osoite vai ei.</translation> </message> <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>Käyttäjän määrittämä käyttötarkoitus rahansiirrolle.</translation> + </message> + <message> <source>Amount removed from or added to balance.</source> <translation>Saldoon lisätty tai siitä vähennetty määrä.</translation> </message> @@ -2585,6 +2753,10 @@ <translation>Kopioi siirtotunnus</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Kopioi rahansiirron raakavedos</translation> + </message> + <message> <source>Edit label</source> <translation>Muokkaa nimeä</translation> </message> @@ -2732,10 +2904,22 @@ <translation>Hyväksy merkkipohjaiset- ja JSON-RPC-käskyt</translation> </message> <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>Jos <category> on toimittamatta tai jos <category> = 1, tulosta kaikki debug-tieto.</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Virhe: Kriittinen sisäinen virhe kohdattiin, katso debug.log lisätietoja varten</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Aja taustalla daemonina ja hyväksy komennot</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>HTTP-palvelinta ei voitu käynnistää. Katso debug-lokista lisätietoja.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Hyväksy yhteyksiä ulkopuolelta (vakioasetus: 1 jos -proxy tai -connect ei määritelty)</translation> </message> @@ -2760,6 +2944,18 @@ <translation>Ei voida yhdistää %s tässä tietokoneessa. Bitcoin Core on luultavasti jo käynnissä.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Käytä UPnP:ta kuuntelevan portin kartoitukseen (oletus: 1 kun kuunnellaan ja -proxy ei käytössä)</translation> + </message> + <message> + <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> + <translation>VAROITUS: epätavallisen monta lohkoa generoitu, vastaanotettu %d lohkoa viimeisen %d tunnin aikana (odotettavissa %d)</translation> + </message> + <message> + <source>WARNING: check your network connection, %d blocks received in the last %d hours (%d expected)</source> + <translation>VAROITUS: tarkista verkkoyhteytesi, vastaanotettu %d lohkoa viimeisen %d tunnin aikana (odotettavissa %d)</translation> + </message> + <message> <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> <translation>Varoitus: Tietoverkko ei ole sovussa! Luohijat näyttävät kokevan virhetilanteita.</translation> </message> @@ -2772,8 +2968,8 @@ <translation>Varoitus: wallet.dat -lompakkotiedosto on korruptoitunut, tiedot pelastettu. Alkuperäinen wallet.dat -lompakkotiedosto on tallennettu wallet.{timestamp}.bak kansioon %s; jos balanssisi tai siirtohistoria on virheellinen, sinun tulisi palauttaa lompakkotiedosto varmuuskopiosta.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(oletus: 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool on oltava vähintään %d MB</translation> </message> <message> <source><category> can be:</source> @@ -2808,6 +3004,10 @@ <translation>Haluatko uudelleenrakentaa lohkotietokannan nyt?</translation> </message> <message> + <source>Enable publish raw transaction in <address></source> + <translation>Ota rahansiirtojen raakavedosten julkaisu käyttöön osoitteessa <address></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Virhe alustaessa lohkotietokantaa</translation> </message> @@ -2924,12 +3124,12 @@ <translation>Aktivoidaan parhainta ketjua...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>-whitebind -osoitetta '%s' ei voida jäsentää</translation> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Yritä palauttaa yksityiset avaimet korruptoituneesta wallet.dat-tiedostosta käynnistyksen yhteydessä</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Valitse data-hakemisto käynnistyksessä (oletus: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>-whitebind -osoitetta '%s' ei voida jäsentää</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -2952,6 +3152,10 @@ <translation>Tietoa</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Virheellinen määrä -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Virheellinen määrä -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2972,26 +3176,18 @@ <translation>Vastaanota ja näytä P2P-verkon hälytyksiä (oletus: %u)</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Lähetä jäljitys/debug-tieto konsoliin, debug.log-tiedoston sijaan</translation> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Uudelleenskannaa lohkoketju käynnistyksen yhteydessä puuttuvien lompakon rahansiirtojen vuoksi</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Aseta SSL root varmenne maksupyynnöille (oletus: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Set language, for example "de_DE" (default: system locale)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Lähetä jäljitys/debug-tieto konsoliin, debug.log-tiedoston sijaan</translation> </message> <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Näytä kaikki debuggaus valinnat: (käyttö: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Näytä aloitusruutu käynnistettäessä (oletus: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Pienennä debug.log tiedosto käynnistyksen yhteydessä (vakioasetus: 1 kun ei -debug)</translation> </message> @@ -3000,14 +3196,22 @@ <translation>Siirron vahvistus epäonnistui</translation> </message> <message> - <source>Start minimized</source> - <translation>Käynnistä pienennettynä</translation> + <source>The transaction amount is too small to pay the fee</source> + <translation>Rahansiirron määrä on liian pieni kattaakseen maksukulun</translation> </message> <message> <source>This is experimental software.</source> <translation>Tämä on ohjelmistoa kokeelliseen käyttöön.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Tor-hallintaportin salasana (oletus: tyhjä)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Tor-hallintaportti jota käytetään jos onion-kuuntelu on käytössä (oletus: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Siirtosumma liian pieni</translation> </message> @@ -3016,12 +3220,16 @@ <translation>Siirtosumman tulee olla positiivinen</translation> </message> <message> + <source>Transaction too large for fee policy</source> + <translation>Rahansiirto on liian suuri maksukulukäytännölle</translation> + </message> + <message> <source>Transaction too large</source> <translation>Siirtosumma liian iso</translation> </message> <message> - <source>UI Options:</source> - <translation>Ulkoasun asetukset:</translation> + <source>Upgrade wallet to latest format on startup</source> + <translation>Päivitä lompakko viimeisimpään formaattiin käynnistyksen yhteydessä</translation> </message> <message> <source>Username for JSON-RPC connections</source> @@ -3036,10 +3244,18 @@ <translation>Varoitus</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Toimitaanko tilassa jossa ainoastaan lohkot sallitaan (oletus: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Tyhjennetään kaikki rahansiirrot lompakosta....</translation> </message> <message> + <source>ZeroMQ notification options:</source> + <translation>ZeroMQ-ilmoitusasetukset:</translation> + </message> + <message> <source>wallet.dat corrupt, salvage failed</source> <translation>wallet.dat -lompakkotiedosto korruptoitunut, korjaaminen epäonnistui</translation> </message> @@ -3068,6 +3284,14 @@ <translation>Virhe ladattaessa wallet.dat-tiedostoa: Lompakko vioittunut</translation> </message> <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Älä pidä rahansiirtoja muistivarannoissa kauemmin kuin <n> tuntia (oletus: %u)</translation> + </message> + <message> + <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> + <translation>Kuinka läpikäyvä lohkojen -checkblocks -todennus on (0-4, oletus: %u)</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Käytä erillistä SOCKS5-proxyä tavoittaaksesi vertaisia Tor-piilopalveluiden kautta (oletus: %s)</translation> </message> @@ -3096,6 +3320,10 @@ <translation>Virheellinen proxy-osoite '%s'</translation> </message> <message> + <source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source> + <translation>Kuuntele JSON-RPC-yhteyksiä portissa <port> (oletus: %u tai testnet: %u)</translation> + </message> + <message> <source>Listen for connections on <port> (default: %u or testnet: %u)</source> <translation>Kuuntele yhteyksiä portissa <port> (oletus: %u tai testnet: %u)</translation> </message> @@ -3104,6 +3332,18 @@ <translation>Aseta lompakko kuuluttamaan rahansiirtoja</translation> </message> <message> + <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maksimi yhteyttä kohden käytettävä vastaanottopuskurin koko, <n>*1000 tavua (oletus: %u)</translation> + </message> + <message> + <source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source> + <translation>Maksimi yhteyttä kohden käytettävä lähetyspuskurin koko, <n>*1000 tavua (oletus: %u)</translation> + </message> + <message> + <source>Relay and mine data carrier transactions (default: %u)</source> + <translation>Välitä ja louhi dataa kantavia rahansiirtoja (oletus: %u)</translation> + </message> + <message> <source>Relay non-P2SH multisig (default: %u)</source> <translation>Välitä ei-P2SH-multisig (oletus: %u)</translation> </message> diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 97dccdac06..a0b9feb9ad 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/masque réseau</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Banni jusqu'au</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -726,6 +734,10 @@ <translation>Cette étiquette devient rouge si la priorité est plus basse que « moyenne ».</translation> </message> <message> + <source>This label turns red if any recipient receives an amount smaller than %1.</source> + <translation>Cette étiquette devient rouge si un destinataire reçoit un montant inférieur à %1.</translation> + </message> + <message> <source>Can vary +/- %1 satoshi(s) per input.</source> <translation>Peut varier +/- %1 satoshi(s) par entrée.</translation> </message> @@ -870,6 +882,34 @@ <source>command-line options</source> <translation>options de ligne de commande</translation> </message> + <message> + <source>UI Options:</source> + <translation>Options de l'IU :</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Choisir un répertoire de données au démarrage (par défaut : %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Définir la langue, par exemple « fr_CA » (par défaut : la langue du système)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Démarrer minimisé</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Définir les certificats SSL racine pour les requêtes de paiement (par défaut : -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Afficher l'écran d'accueil au démarrage (par défaut : %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Réinitialiser tous les changements de paramètres appliqués à l'IUG</translation> + </message> </context> <context> <name>Intro</name> @@ -913,7 +953,11 @@ <source>%n GB of free space available</source> <translation><numerusform>%n Go d'espace libre disponible</numerusform><numerusform>%n Go d'espace libre disponibles</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(sur %n Go nécessaire)</numerusform><numerusform>(sur %n Go nécessaires)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -1064,6 +1108,34 @@ <translation>Port du serveur mandataire (par ex. 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Utilisé pour rejoindre les pairs par :</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>S'affiche, si le mandataire SOCKS5 par défaut fourni est utilisé pour atteindre les pairs par ce type de réseau.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Se connecter au réseau Bitcoin au travers d'un mandataire SOCKS5 séparé pour les services cachés de Tor.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Utiliser un mandataire SOCKS5 séparé pour atteindre les pairs grâce aux services cachés de Tor :</translation> + </message> + <message> <source>&Window</source> <translation>&Fenêtre</translation> </message> @@ -1329,7 +1401,7 @@ </message> <message> <source>%1 d</source> - <translation>%1 d</translation> + <translation>%1 j</translation> </message> <message> <source>%1 h</source> @@ -1434,6 +1506,18 @@ <translation>Nombre actuel de blocs</translation> </message> <message> + <source>Memory Pool</source> + <translation>Réserve de mémoire</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Nombre actuel de transactions</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Utilisation de la mémoire</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Ouvrir le journal de débogage du répertoire de données actuel. Ceci pourrait prendre quelques secondes pour les gros fichiers de journalisation.</translation> </message> @@ -1450,10 +1534,18 @@ <translation>&Pairs</translation> </message> <message> + <source>Banned peers</source> + <translation>Pairs bannis</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Choisir un pair pour voir l'information détaillée.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Dans la liste blanche</translation> + </message> + <message> <source>Direction</source> <translation>Direction</translation> </message> @@ -1462,6 +1554,18 @@ <translation>Version</translation> </message> <message> + <source>Starting Block</source> + <translation>Bloc de départ</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>En-têtes synchronisés</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Blocs synchronisés</translation> + </message> + <message> <source>User Agent</source> <translation>Agent utilisateur</translation> </message> @@ -1490,6 +1594,14 @@ <translation>Temps de ping</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>La durée d'un ping actuellement en cours.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Attente du ping</translation> + </message> + <message> <source>Time Offset</source> <translation>Décalage temporel</translation> </message> @@ -1538,6 +1650,34 @@ <translation>Nettoyer la console</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Déconnecter le nœud</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Bannir le nœud pendant</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &heure</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &jour</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &semaine</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &an</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Réhabiliter le nœud</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Bienvenue dans le console RPC de Bitcoin Core.</translation> </message> @@ -1566,6 +1706,10 @@ <translation>%1 Go</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(ID de nœud : %1)</translation> + </message> + <message> <source>via %1</source> <translation>par %1</translation> </message> @@ -1958,6 +2102,10 @@ <translation>Copier la monnaie</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Montant total %1</translation> + </message> + <message> <source>or</source> <translation>ou</translation> </message> @@ -1989,6 +2137,10 @@ <source>Payment request expired.</source> <translation>Demande de paiement expirée.</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Payer seulement les frais exigés de %1</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>Il est estimé que la confirmation commencera dans %n bloc.</numerusform><numerusform>Il est estimé que la confirmation commencera dans %n blocs.</numerusform></translation> @@ -2625,6 +2777,10 @@ <translation>Copier l'ID de la transaction</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Copier la transaction brute</translation> + </message> + <message> <source>Edit label</source> <translation>Modifier l’étiquette</translation> </message> @@ -2772,14 +2928,54 @@ <translation>Accepter les commandes de JSON-RPC et de la ligne de commande</translation> </message> <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>Si <category> n'est pas indiqué ou si <category> = 1, extraire toutes les données de débogage.</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Frais totaux maximaux (en %s) à utiliser en une seule transaction de portefeuille. Les définir trop bas pourrait interrompre les grosses transactions (par défaut : %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Veuillez vérifier que l'heure et la date de votre ordinateur sont justes ! Si votre horloge n'est pas à l'heure, Bitcoin Core ne fonctionnera pas correctement.</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>L'élagage est configuré au-dessous du minimum de %d Mio. Veuillez utiliser un nombre plus élevé.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Élagage : la dernière synchronisation de portefeuille va par-delà les données élaguées. Vous devez -reindex (réindexer, télécharger de nouveau toute la chaîne de blocs en cas de nœud élagué)</translation> + </message> + <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Réduire les exigences de stockage en élaguant (supprimant) les anciens blocs. Ce mode est incompatible avec -txindex et -rescan. Avertissement : ramener ce paramètre à sa valeur antérieure exige un nouveau téléchargement de la chaîne de blocs en entier (par défaut : 0 = désactiver l'élagage des blocs, >%u = taille cible en Mio à utiliser pour les fichiers de blocs).</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>Les rebalayages sont impossibles en mode élagage. Vous devrez utiliser -reindex, ce qui téléchargera de nouveau la chaîne de blocs en entier.</translation> + </message> + <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> <translation>Erreur : une erreur interne fatale s'est produite. Voir debug.log pour plus de détails</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Les frais (en %s/ko) à ajouter aux transactions que vous envoyez (par défaut : %s)</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Élagage du magasin de blocs...</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Fonctionner en arrière-plan en tant que démon et accepter les commandes</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Impossible de démarrer le serveur HTTP. Voir le journal de débogage pour plus de détails.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Accepter les connexions entrantes (par défaut : 1 si aucun -proxy ou -connect )</translation> </message> @@ -2789,7 +2985,7 @@ </message> <message> <source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source> - <translation>Supprimer toutes les transactions du portefeuille et ne récupérer que ces parties de la chaîne de bloc avec -rescan au démarrage</translation> + <translation>Supprimer toutes les transactions du portefeuille et ne récupérer que ces parties de la chaîne de blocs avec -rescan au démarrage</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> @@ -2804,6 +3000,10 @@ <translation>Définir le nombre d'exétrons de vérification des scripts (%u à %d, 0 = auto, < 0 = laisser ce nombre de cœurs inutilisés, par défaut : %d)</translation> </message> <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>La base de données de blocs contient un bloc qui semble provenir du futur. Cela pourrait être causé par la date et l'heure erronées de votre ordinateur. Ne reconstruisez la base de données de blocs que si vous êtes certain que la date et l'heure de votre ordinateur sont justes.</translation> + </message> + <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> <translation>Ceci est une pré-version de test - l'utiliser à vos risques et périls - ne pas l'utiliser pour miner ou pour des applications marchandes</translation> </message> @@ -2812,6 +3012,10 @@ <translation>Impossible de se lier à %s sur cet ordinateur. Bitcoin Core fonctionne probablement déjà.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Utiliser l'UPnP pour mapper le port d'écoute (par défaut : 1 lors de l'écoute et pas de mandataire -proxy)</translation> + </message> + <message> <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> <translation>AVERTISSEMENT : un nombre anormalement élevé de blocs a été généré, %d blocs reçus durant les %d dernières heures (%d attendus)</translation> </message> @@ -2836,8 +3040,8 @@ <translation>Pairs de la liste blanche se connectant à partir du masque réseau ou de l'IP donné. Peut être spécifié plusieurs fois.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(par défaut : 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool doit être d'au moins %d Mo</translation> </message> <message> <source><category> can be:</source> @@ -2872,6 +3076,22 @@ <translation>Voulez-vous reconstruire la base de données des blocs maintenant ?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Activer la publication du bloc de hachage dans <address></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Activer la publication de la transaction de hachage dans <address></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Activer la publication du bloc brut dans <address></translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Activer la publication de la transaction brute dans <address></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Erreur lors de l'initialisation de la base de données des blocs</translation> </message> @@ -2908,6 +3128,10 @@ <translation>Adresse -onion invalide : « %s »</translation> </message> <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>Garder la réserve de mémoire transactionnelle sous <n> mégaoctets (par défaut : %u)</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>Pas assez de descripteurs de fichiers proposés.</translation> </message> @@ -2936,10 +3160,26 @@ <translation>Spécifiez le fichier de portefeuille (dans le répertoire de données)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Argument non pris en charge -benchmark ignoré, utiliser -debug=bench.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Argument non pris en charge -debugnet ignoré, utiliser -debug=net.</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Argument non pris en charge -tor trouvé, utiliser -onion</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>Utiliser l'UPnP pour mapper le port d'écoute (par défaut : %u)</translation> </message> <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>Le commentaire d'agent utilisateur (%s) contient des caractères dangereux.</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Vérification des blocs en cours...</translation> </message> @@ -2996,6 +3236,10 @@ <translation>Exécuter une commande lorsqu'une alerte pertinente est reçue ou si nous voyons une bifurcation vraiment étendue (%s dans la commande est remplacé par le message)</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Les frais (en %s/Ko) inférieurs à ce seuil sont considérés comme étant nuls pour le relais, le minage et la création de transactions (par défaut : %s)</translation> + </message> + <message> <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> <translation>Si paytxfee n'est pas défini, inclure suffisamment de frais afin que les transactions commencent la confirmation en moyenne avant n blocs (par défaut : %u)</translation> </message> @@ -3052,12 +3296,20 @@ <translation>Activation de la meilleure chaîne...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Impossible de résoudre l'adresse -whitebind : « %s »</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Toujours relayer les transactions reçues des pairs de la liste blanche (par défaut : %d)</translation> + </message> + <message> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Tenter de récupérer les clefs privées d'un wallet.dat corrompu lors du démarrage</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Créer automatiquement un service caché Tor (par défaut : %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Choisir un répertoire de données au démarrage (par défaut : 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Impossible de résoudre l'adresse -whitebind : « %s »</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3076,6 +3328,10 @@ <translation>Erreur de lecture de la base de données, fermeture en cours.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Importe des blocs depuis un fichier blk000??.dat externe lors du démarrage</translation> + </message> + <message> <source>Information</source> <translation>Informations</translation> </message> @@ -3128,30 +3384,26 @@ <translation>Recevoir et afficher les alertes du réseau poste à poste (%u par défaut)</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log</translation> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Réduction de -maxconnections de %d à %d, due aux restrictions du système</translation> </message> <message> - <source>Send transactions as zero-fee transactions if possible (default: %u)</source> - <translation>Envoyer si possible les transactions comme étant sans frais (par défaut : %u)</translation> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Réanalyser la chaîne de blocs au démarrage, à la recherche de transactions de portefeuille manquantes</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Définir les certificats racine SSL pour les demandes de paiement (par défaut : -système-)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Définir la langue, par exemple « fr_CA » (par défaut : la langue du système)</translation> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Envoyer si possible les transactions comme étant sans frais (par défaut : %u)</translation> </message> <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Montrer toutes les options de débogage (utilisation : --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Afficher la page de garde au démarrage (par défaut : 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Réduire le fichier debug.log lors du démarrage du client (par défaut : 1 lorsque -debug n'est pas présent)</translation> </message> @@ -3160,10 +3412,6 @@ <translation>La signature de la transaction a échoué</translation> </message> <message> - <source>Start minimized</source> - <translation>Démarrer minimisé</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Le montant de la transaction est trop bas pour que les frais soient payés</translation> </message> @@ -3172,6 +3420,14 @@ <translation>Ceci est un logiciel expérimental.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Mot de passe du port de contrôle Tor (par défaut : vide)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Port de contrôle Tor à utiliser si l'écoute onion est activée (par défaut :%s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Montant de la transaction trop bas</translation> </message> @@ -3188,14 +3444,14 @@ <translation>Transaction trop volumineuse</translation> </message> <message> - <source>UI Options:</source> - <translation>Options de l'IU :</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Impossible de se lier à %s sur cet ordinateur (bind a retourné l'erreur %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Mettre à niveau le portefeuille au démarrage vers le format le plus récent</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Nom d'utilisateur pour les connexions JSON-RPC</translation> </message> @@ -3208,10 +3464,18 @@ <translation>Avertissement</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Faut-il fonctionner en mode blocs seulement (par défaut : %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Supprimer toutes les transactions du portefeuille...</translation> </message> <message> + <source>ZeroMQ notification options:</source> + <translation>Options de notification ZeroMQ</translation> + </message> + <message> <source>wallet.dat corrupt, salvage failed</source> <translation>wallet.dat corrompu, la récupération a échoué</translation> </message> @@ -3244,6 +3508,26 @@ <translation>(1 = conserver les métadonnées de transmission, par ex. les informations du propriétaire du compte et de la demande de paiement, 2 = abandonner les métadonnées de transmission)</translation> </message> <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee est défini très haut ! Des frais aussi élevés pourraient être payés en une seule transaction.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee est réglé sur un montant très élevé ! Il s'agit des frais de transaction que vous payerez si vous envoyez une transaction.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Ne pas conserver de transactions dans la réserve de mémoire plus de <n> heures (par défaut : %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Une erreur est survenue lors de la lecture de wallet.dat ! Toutes les clefs ont été lues correctement, mais les données transactionnelles ou les entrées du carnet d'adresses sont peut-être manquantes ou incorrectes.</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Les frais (en %s/Ko) inférieurs à ce seuil sont considérés comme étant nuls pour la création de transactions (par défaut : %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Degré de profondeur de la vérification des blocs -checkblocks (0-4, par défaut : %u)</translation> </message> @@ -3260,10 +3544,30 @@ <translation>Extraire les informations de débogage (par défaut : %u, fournir <category> est optionnel)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Prendre en charge le filtrage des blocs et des transactions avec les filtres bloom (par défaut : %u)</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>La taille totale de la chaîne de version de réseau (%i) dépasse la longueur maximale (%i). Réduire le nombre ou la taille des commentaires uacomments.</translation> + </message> + <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Tente de garder le trafic sortant sous la cible donnée (en Mio par 24 h), 0 = sans limite (par défaut : %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>L'argument non pris en charge -socks a été trouvé. Il n'est plus possible de définir la version de SOCKS, seuls les mandataires SOCKS5 sont pris en charge.</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Utiliser un serveur mandataire SOCKS5 séparé pour atteindre les pairs par les services cachés de Tor (par défaut : %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Nom d'utilisateur et mot de passe haché pour les connexions JSON-RPC. Le champ <userpw> vient au format : <USERNAME>:<SALT>$<HASH>. Un script python canonique est inclus dans share/rpcuser. Cette option peut être spécifiée plusieurs fois.</translation> + </message> + <message> <source>(default: %s)</source> <translation>(par défaut : %s)</translation> </message> @@ -3336,6 +3640,10 @@ <translation>Définir la taille de bloc minimale en octets (par défaut : %u)</translation> </message> <message> + <source>Set the number of threads to service RPC calls (default: %d)</source> + <translation>Définir le nombre d'exétrons pour desservir les appels RPC (par défaut : %d)</translation> + </message> + <message> <source>Specify configuration file (default: %s)</source> <translation>Spécifier le fichier de configuration (par défaut : %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_fr_CA.ts b/src/qt/locale/bitcoin_fr_CA.ts index 75f970f554..7e6925f96f 100644 --- a/src/qt/locale/bitcoin_fr_CA.ts +++ b/src/qt/locale/bitcoin_fr_CA.ts @@ -14,6 +14,10 @@ <translation>&Supprimer</translation> </message> <message> + <source>Sending addresses</source> + <translation>envoyer adresse de reception </translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>Fichier séparé par une virgule (*.csv)</translation> </message> @@ -76,12 +80,28 @@ <context> <name>CoinControlDialog</name> <message> + <source>(un)select all</source> + <translation>Toute sélectionner </translation> + </message> + <message> + <source>Copy address</source> + <translation>copier l'adresse </translation> + </message> + <message> <source>(no label)</source> <translation>(pas de record)</translation> </message> </context> <context> <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Record</translation> + </message> + <message> + <source>&Address</source> + <translation>Addresse</translation> + </message> </context> <context> <name>FreespaceChecker</name> @@ -91,6 +111,10 @@ </context> <context> <name>Intro</name> + <message> + <source>Welcome</source> + <translation>Bienvenue </translation> + </message> </context> <context> <name>OpenURIDialog</name> @@ -179,6 +203,10 @@ <context> <name>TransactionView</name> <message> + <source>Copy address</source> + <translation>copier l'adresse </translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>Fichier séparé par une virgule (*.csv)</translation> </message> diff --git a/src/qt/locale/bitcoin_fr_FR.ts b/src/qt/locale/bitcoin_fr_FR.ts new file mode 100644 index 0000000000..df63243353 --- /dev/null +++ b/src/qt/locale/bitcoin_fr_FR.ts @@ -0,0 +1,897 @@ +<TS language="fr_FR" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Create a new address</source> + <translation>Créer une nouvelle adresse</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Copier l'adresse surlignée dans votre presse-papiers</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exporter les données de l'onglet courant vers un fichier</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Supprimer</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Valeurs séparées par des virgules (*.csv)</translation> + </message> + </context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Étiquette</translation> + </message> + <message> + <source>Address</source> + <translation>Adresse</translation> + </message> + <message> + <source>(no label)</source> + <translation>(aucune étiquette)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Enter passphrase</source> + <translation>Entrez la phrase de passe</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Nouvelle phrase de passe</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Répétez la phrase de passe</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Chiffrer le porte-monnaie</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>Cette opération nécessite votre phrase de passe pour déverrouiller le porte-monnaie.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Déverrouiller le porte-monnaie</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>Cette opération nécessite votre phrase de passe pour décrypter le porte-monnaie.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Décrypter le porte-monnaie</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Changer la phrase de passe</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Confirmer le chiffrement du porte-monnaie</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Porte-monnaie chiffré</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Le chiffrement du porte-monnaie a échoué</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Le chiffrement du porte-monnaie a échoué en raison d'une erreur interne. Votre porte-monnaie n'a pas été chiffré.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>Les phrases de passe entrées ne correspondent pas.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Le déverrouillage du porte-monnaie a échoué</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>La phrase de passe entrée pour décrypter le porte-monnaie était erronée.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Le décryptage du porte-monnaie a échoué</translation> + </message> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Synchronizing with network...</source> + <translation>Synchronisation avec le réseau...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Vue d'ensemble</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Affiche une vue d'ensemble du porte-monnaie</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transactions</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Permet de parcourir l'historique des transactions</translation> + </message> + <message> + <source>E&xit</source> + <translation>Qui&tter</translation> + </message> + <message> + <source>Quit application</source> + <translation>Quitter l'application</translation> + </message> + <message> + <source>About &Qt</source> + <translation>À propos de &Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>Afficher des informations sur Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Options...</translation> + </message> + <message> + <source>Backup wallet to another location</source> + <translation>Sauvegarder le porte-monnaie à un autre emplacement</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>Modifier la phrase de passe utilisée pour le cryptage du porte-monnaie</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>&Send</source> + <translation>&Envoyer</translation> + </message> + <message> + <source>&File</source> + <translation>&Fichier</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Réglages</translation> + </message> + <message> + <source>&Help</source> + <translation>&Aide</translation> + </message> + <message> + <source>Tabs toolbar</source> + <translation>Barre d'outils des onglets</translation> + </message> + <message> + <source>Up to date</source> + <translation>À jour</translation> + </message> + <message> + <source>Catching up...</source> + <translation>Rattrapage...</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>Transaction envoyée</translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>Transaction entrante</translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> + <translation>Le porte-monnaie est <b>chiffré</b> et est actuellement <b>déverrouillé</b></translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> + <translation>Le porte-monnaie est <b>chiffré</b> et est actuellement <b>verrouillé</b></translation> + </message> +</context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Amount:</source> + <translation>Montant :</translation> + </message> + <message> + <source>Amount</source> + <translation>Montant</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmée</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copier l'adresse</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copier l'étiquette</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copier le montant</translation> + </message> + <message> + <source>(no label)</source> + <translation>(aucune étiquette)</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Éditer l'adresse</translation> + </message> + <message> + <source>&Label</source> + <translation>&Étiquette</translation> + </message> + <message> + <source>&Address</source> + <translation>&Adresse</translation> + </message> + <message> + <source>New receiving address</source> + <translation>Nouvelle adresse de réception</translation> + </message> + <message> + <source>New sending address</source> + <translation>Nouvelle adresse d'envoi</translation> + </message> + <message> + <source>Edit receiving address</source> + <translation>Éditer l'adresse de réception</translation> + </message> + <message> + <source>Edit sending address</source> + <translation>Éditer l'adresse d'envoi</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book.</source> + <translation>L'adresse fournie « %1 » est déjà présente dans le carnet d'adresses.</translation> + </message> + <message> + <source>Could not unlock wallet.</source> + <translation>Impossible de déverrouiller le porte-monnaie.</translation> + </message> + <message> + <source>New key generation failed.</source> + <translation>Échec de la génération de la nouvelle clef.</translation> + </message> +</context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Usage:</source> + <translation>Utilisation :</translation> + </message> + </context> +<context> + <name>Intro</name> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + <message> + <source>Options</source> + <translation>Options</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>Ouvrir le port du client Bitcoin automatiquement sur le routeur. Cela ne fonctionne que si votre routeur supporte l'UPnP et si la fonctionnalité est activée.</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Ouvrir le port avec l'&UPnP</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&Minimiser dans la barre système au lieu de la barre des tâches</translation> + </message> + <message> + <source>M&inimize on close</source> + <translation>Mi&nimiser lors de la fermeture</translation> + </message> + </context> +<context> + <name>OverviewPage</name> + <message> + <source>Form</source> + <translation>Formulaire</translation> + </message> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + <message> + <source>Amount</source> + <translation>Montant</translation> + </message> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>&Amount:</source> + <translation>Montant :</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Étiquette :</translation> + </message> + <message> + <source>&Message:</source> + <translation>Message :</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copier l'étiquette</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copier le montant</translation> + </message> +</context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>QR Code</source> + <translation>QR Code</translation> + </message> + <message> + <source>Address</source> + <translation>Adresse</translation> + </message> + <message> + <source>Amount</source> + <translation>Montant</translation> + </message> + <message> + <source>Label</source> + <translation>Étiquette</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Label</source> + <translation>Étiquette</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Amount</source> + <translation>Montant</translation> + </message> + <message> + <source>(no label)</source> + <translation>(aucune étiquette)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Send Coins</source> + <translation>Envoyer des pièces</translation> + </message> + <message> + <source>Insufficient funds!</source> + <translation>Fonds insuffisants</translation> + </message> + <message> + <source>Amount:</source> + <translation>Montant :</translation> + </message> + <message> + <source>Send to multiple recipients at once</source> + <translation>Envoyer des pièces à plusieurs destinataires à la fois</translation> + </message> + <message> + <source>Balance:</source> + <translation>Solde :</translation> + </message> + <message> + <source>Confirm the send action</source> + <translation>Confirmer l'action d'envoi</translation> + </message> + <message> + <source>Confirm send coins</source> + <translation>Confirmer l'envoi des pièces</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copier le montant</translation> + </message> + <message> + <source>The amount to pay must be larger than 0.</source> + <translation>Le montant à payer doit être supérieur à 0.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(aucune étiquette)</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>&Montant :</translation> + </message> + <message> + <source>Pay &To:</source> + <translation>Payer &à :</translation> + </message> + <message> + <source>Enter a label for this address to add it to your address book</source> + <translation>Entrez une étiquette pour cette adresse afin de l'ajouter à votre carnet d'adresses</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Étiquette :</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Coller une adresse depuis le presse-papiers</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Message:</source> + <translation>Message :</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Payer à :</translation> + </message> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + <message> + <source>&Sign Message</source> + <translation>&Signer le message</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Coller une adresse depuis le presse-papiers</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Enter the message you want to sign here</source> + <translation>Entrez ici le message que vous désirez signer</translation> + </message> + <message> + <source>Sign &Message</source> + <translation>&Signer le message</translation> + </message> + </context> +<context> + <name>SplashScreen</name> + <message> + <source>[testnet]</source> + <translation>[testnet]</translation> + </message> +</context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Open until %1</source> + <translation>Ouvert jusqu'à %1</translation> + </message> + <message> + <source>%1/unconfirmed</source> + <translation>%1/non confirmée</translation> + </message> + <message> + <source>%1 confirmations</source> + <translation>%1 confirmations</translation> + </message> + <message> + <source>Status</source> + <translation>État</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Generated</source> + <translation>Généré</translation> + </message> + <message> + <source>Credit</source> + <translation>Crédit</translation> + </message> + <message> + <source>Debit</source> + <translation>Débit</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Amount</source> + <translation>Montant</translation> + </message> + <message> + <source>, has not been successfully broadcast yet</source> + <translation>, n'a pas encore été diffusée avec succès</translation> + </message> + <message> + <source>unknown</source> + <translation>inconnue</translation> + </message> +</context> +<context> + <name>TransactionDescDialog</name> + <message> + <source>Transaction details</source> + <translation>Détails de la transaction</translation> + </message> + <message> + <source>This pane shows a detailed description of the transaction</source> + <translation>Ce panneau affiche une description détaillée de la transaction</translation> + </message> +</context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Open until %1</source> + <translation>Ouvert jusqu'à %1</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Confirmée (%1 confirmations)</translation> + </message> + <message> + <source>This block was not received by any other nodes and will probably not be accepted!</source> + <translation>Ce bloc n'a été reçu par aucun autre nœud et ne sera probablement pas accepté !</translation> + </message> + <message> + <source>Generated but not accepted</source> + <translation>Généré mais pas accepté</translation> + </message> + <message> + <source>Label</source> + <translation>Étiquette</translation> + </message> + <message> + <source>Received with</source> + <translation>Reçues avec</translation> + </message> + <message> + <source>Received from</source> + <translation>Reçue de</translation> + </message> + <message> + <source>Sent to</source> + <translation>Envoyées à</translation> + </message> + <message> + <source>Payment to yourself</source> + <translation>Paiement à vous-même</translation> + </message> + <message> + <source>Mined</source> + <translation>Extraction</translation> + </message> + <message> + <source>(n/a)</source> + <translation>(indisponible)</translation> + </message> + <message> + <source>Transaction status. Hover over this field to show number of confirmations.</source> + <translation>État de la transaction. Laissez le pointeur de la souris sur ce champ pour voir le nombre de confirmations.</translation> + </message> + <message> + <source>Date and time that the transaction was received.</source> + <translation>Date et heure de réception de la transaction.</translation> + </message> + <message> + <source>Type of transaction.</source> + <translation>Type de transaction.</translation> + </message> + <message> + <source>Amount removed from or added to balance.</source> + <translation>Montant ajouté au ou enlevé du solde.</translation> + </message> +</context> +<context> + <name>TransactionView</name> + <message> + <source>All</source> + <translation>Toutes</translation> + </message> + <message> + <source>Today</source> + <translation>Aujourd'hui</translation> + </message> + <message> + <source>This week</source> + <translation>Cette semaine</translation> + </message> + <message> + <source>This month</source> + <translation>Ce mois</translation> + </message> + <message> + <source>Last month</source> + <translation>Mois dernier</translation> + </message> + <message> + <source>This year</source> + <translation>Cette année</translation> + </message> + <message> + <source>Range...</source> + <translation>Intervalle...</translation> + </message> + <message> + <source>Received with</source> + <translation>Reçues avec</translation> + </message> + <message> + <source>Sent to</source> + <translation>Envoyées à</translation> + </message> + <message> + <source>To yourself</source> + <translation>À vous-même</translation> + </message> + <message> + <source>Mined</source> + <translation>Extraction</translation> + </message> + <message> + <source>Other</source> + <translation>Autres</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>Entrez une adresse ou une étiquette à rechercher</translation> + </message> + <message> + <source>Min amount</source> + <translation>Montant min</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copier l'adresse</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copier l'étiquette</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copier le montant</translation> + </message> + <message> + <source>Edit label</source> + <translation>Éditer l'étiquette</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Valeurs séparées par des virgules (*.csv)</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmée</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Label</source> + <translation>Étiquette</translation> + </message> + <message> + <source>Address</source> + <translation>Adresse</translation> + </message> + <message> + <source>ID</source> + <translation>ID</translation> + </message> + <message> + <source>Range:</source> + <translation>Intervalle :</translation> + </message> + <message> + <source>to</source> + <translation>à</translation> + </message> +</context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + <message> + <source>Send Coins</source> + <translation>Envoyer des pièces</translation> + </message> +</context> +<context> + <name>WalletView</name> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Exporter les données de l'onglet courant vers un fichier</translation> + </message> + <message> + <source>Backup Wallet</source> + <translation>Sauvegarder le porte-monnaie</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Données de porte-monnaie (*.dat)</translation> + </message> + <message> + <source>Backup Failed</source> + <translation>La sauvegarde a échoué</translation> + </message> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>Options :</translation> + </message> + <message> + <source>Specify data directory</source> + <translation>Spécifier le répertoire de données</translation> + </message> + <message> + <source>Accept command line and JSON-RPC commands</source> + <translation>Accepter les commandes de JSON-RPC et de la ligne de commande</translation> + </message> + <message> + <source>Run in the background as a daemon and accept commands</source> + <translation>Fonctionner en arrière-plan en tant que démon et accepter les commandes</translation> + </message> + <message> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log</translation> + </message> + <message> + <source>Username for JSON-RPC connections</source> + <translation>Nom d'utilisateur pour les connexions JSON-RPC</translation> + </message> + <message> + <source>Password for JSON-RPC connections</source> + <translation>Mot de passe pour les connexions JSON-RPC</translation> + </message> + <message> + <source>This help message</source> + <translation>Ce message d'aide</translation> + </message> + <message> + <source>Loading addresses...</source> + <translation>Chargement des adresses...</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet corrupted</source> + <translation>Erreur lors du chargement de wallet.dat : porte-monnaie corrompu</translation> + </message> + <message> + <source>Error loading wallet.dat</source> + <translation>Erreur lors du chargement de wallet.dat</translation> + </message> + <message> + <source>Insufficient funds</source> + <translation>Fonds insuffisants</translation> + </message> + <message> + <source>Loading block index...</source> + <translation>Chargement de l'index des blocs...</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>Chargement du porte-monnaie...</translation> + </message> + <message> + <source>Rescanning...</source> + <translation>Nouvelle analyse...</translation> + </message> + <message> + <source>Done loading</source> + <translation>Chargement terminé</translation> + </message> + </context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_gl.ts b/src/qt/locale/bitcoin_gl.ts index 79f0d46d3f..96d4adeba9 100644 --- a/src/qt/locale/bitcoin_gl.ts +++ b/src/qt/locale/bitcoin_gl.ts @@ -262,6 +262,10 @@ <translation>&Cambiar contrasinal...</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Direccións para recibir</translation> + </message> + <message> <source>Importing blocks from disk...</source> <translation>Importando bloques de disco...</translation> </message> @@ -370,6 +374,10 @@ <translation>Abrir un bitcoin: URI ou solicitude de pago</translation> </message> <message> + <source>&Command-line options</source> + <translation>Opcións da liña de comandos</translation> + </message> + <message> <source>No block source available...</source> <translation>Non hai orixe de bloques dispoñible...</translation> </message> @@ -696,7 +704,7 @@ <source>command-line options</source> <translation>opcións da liña de comandos</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -766,6 +774,10 @@ <translation>&Rede</translation> </message> <message> + <source>W&allet</source> + <translation>Moedeiro</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>Abrir automáticamente o porto do cliente Bitcoin no router. Esto so funciona se o teu router soporta UPnP e está habilitado.</translation> </message> @@ -968,6 +980,10 @@ <translation>&Información</translation> </message> <message> + <source>Debug window</source> + <translation>Ventana de Depuración</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>Usar versión OpenSSL</translation> </message> @@ -1188,6 +1204,10 @@ <translation>Moedas Enviadas</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Fondos insuficientes</translation> + </message> + <message> <source>Quantity:</source> <translation>Cantidade:</translation> </message> @@ -1212,6 +1232,10 @@ <translation>Cambiar:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Tarifa de transacción:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples receptores á vez</translation> </message> @@ -1351,6 +1375,10 @@ <translation>Eliminar esta entrada</translation> </message> <message> + <source>Message:</source> + <translation>Mensaxe:</translation> + </message> + <message> <source>Enter a label for this address to add it to the list of used addresses</source> <translation>Introduce unha etiqueta para esta dirección para engadila á listaxe de direccións empregadas</translation> </message> @@ -2042,14 +2070,18 @@ <translation>Executar comando cando se recibe unha alerta relevante ou vemos un fork realmente longo (%s no cmd é substituído pola mensaxe)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Escolle directorio de datos ao arrancar (por defecto: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Non se pode resolver dirección -whitebind: '%s'</translation> </message> <message> <source>Information</source> <translation>Información</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Cantidade inválida para -maxtxfee=<cantidade>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Cantidade inválida para -minrelaytxfee=<cantidade>: '%s'</translation> </message> @@ -2062,14 +2094,6 @@ <translation>Enviar traza/información de depuración á consola en lugar de ao arquivo debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Fixar idioma, por exemplo "de_DE" (por defecto: locale del sistema)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Amosar pantalla splash no arranque (por defecto: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Recortar o arquivo debug.log ao arrancar o cliente (por defecto: 1 cando no-debug)</translation> </message> @@ -2078,10 +2102,6 @@ <translation>Fallou a sinatura da transacción</translation> </message> <message> - <source>Start minimized</source> - <translation>Comezar minimizado</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>A cantidade da transacción é demasiado pequena</translation> </message> diff --git a/src/qt/locale/bitcoin_gu_IN.ts b/src/qt/locale/bitcoin_gu_IN.ts deleted file mode 100644 index 5de6a6109a..0000000000 --- a/src/qt/locale/bitcoin_gu_IN.ts +++ /dev/null @@ -1,113 +0,0 @@ -<TS language="gu_IN" version="2.1"> -<context> - <name>AddressBookPage</name> - </context> -<context> - <name>AddressTableModel</name> - </context> -<context> - <name>AskPassphraseDialog</name> - </context> -<context> - <name>BanTableModel</name> - </context> -<context> - <name>BitcoinGUI</name> - </context> -<context> - <name>ClientModel</name> - </context> -<context> - <name>CoinControlDialog</name> - </context> -<context> - <name>EditAddressDialog</name> - </context> -<context> - <name>FreespaceChecker</name> - </context> -<context> - <name>HelpMessageDialog</name> - </context> -<context> - <name>Intro</name> - </context> -<context> - <name>OpenURIDialog</name> - </context> -<context> - <name>OptionsDialog</name> - </context> -<context> - <name>OverviewPage</name> - </context> -<context> - <name>PaymentServer</name> - </context> -<context> - <name>PeerTableModel</name> - </context> -<context> - <name>QObject</name> - </context> -<context> - <name>QRImageWidget</name> - </context> -<context> - <name>RPCConsole</name> - </context> -<context> - <name>ReceiveCoinsDialog</name> - </context> -<context> - <name>ReceiveRequestDialog</name> - </context> -<context> - <name>RecentRequestsTableModel</name> - </context> -<context> - <name>SendCoinsDialog</name> - </context> -<context> - <name>SendCoinsEntry</name> - </context> -<context> - <name>ShutdownWindow</name> - </context> -<context> - <name>SignVerifyMessageDialog</name> - </context> -<context> - <name>SplashScreen</name> - </context> -<context> - <name>TrafficGraphWidget</name> - </context> -<context> - <name>TransactionDesc</name> - </context> -<context> - <name>TransactionDescDialog</name> - </context> -<context> - <name>TransactionTableModel</name> - </context> -<context> - <name>TransactionView</name> - </context> -<context> - <name>UnitDisplayStatusBarControl</name> - </context> -<context> - <name>WalletFrame</name> - </context> -<context> - <name>WalletModel</name> - </context> -<context> - <name>WalletView</name> - </context> -<context> - <name>bitcoin-core</name> - </context> -</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 048b268200..926d206206 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -418,6 +418,10 @@ <translation>%1 ו%2</translation> </message> <message> + <source>%1 behind</source> + <translation>%1 מאחור</translation> + </message> + <message> <source>Last received block was generated %1 ago.</source> <translation>המקטע האחרון שהתקבל נוצר לפני %1.</translation> </message> @@ -624,6 +628,10 @@ <translation>הנמוך ביותר</translation> </message> <message> + <source>(%1 locked)</source> + <translation>(%1 נעול)</translation> + </message> + <message> <source>none</source> <translation>ללא</translation> </message> @@ -772,7 +780,7 @@ <source>command-line options</source> <translation>אפשרויות שורת פקודה</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1660,6 +1668,10 @@ <translation>כתובת לעודף מותאמת אישית</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>עמלת העברה:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>שליחה למספר מוטבים בו־זמנית</translation> </message> @@ -2518,10 +2530,6 @@ <translation>אזהרה: הקובץ wallet.dat הושחת, המידע חולץ! קובץ ה־wallet.dat המקורי נשמר בשם wallet.{timestamp}.bak במיקום %s; אם המאזן או ההעברות שגויים עליך לשחזר גיבוי.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(בררת מחדל: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><קטגוריה> יכולה להיות:</translation> </message> @@ -2638,10 +2646,6 @@ <translation>לא ניתן לפתור את הכתובת -whitebind: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>בחירת תיקיית נתונים עם ההפעלה (בררת מחדל: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>התחברות דרך מתווך SOCKS5</translation> </message> @@ -2662,6 +2666,10 @@ <translation>בדיקת התקינות ההתחלתית נכשלה. ליבת ביטקוין תיסגר כעת.</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>כמות לא תקינה עבור -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>כמות לא תקינה עבור -paytxfee=<amount>: '%s'</translation> </message> @@ -2694,22 +2702,10 @@ <translation>שלח מידע דיבאג ועקבה לקונסולה במקום לקובץ debug.log</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>הגדרות אישורי בסיס של SSL לבקשות תשלום (בררת המחדל: -מערכת-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>הגדרת שפה, למשל „he_il“ (בררת מחדל: שפת המערכת)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>הצגת כל אפשרויות הניפוי (שימוש: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>הצגת מסך פתיחה בעת הפעלה (בררת מחדל: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>כיווץ הקובץ debug.log בהפעלת הלקוח (בררת מחדל: 1 ללא -debug)</translation> </message> @@ -2718,10 +2714,6 @@ <translation>החתימה על ההעברה נכשלה</translation> </message> <message> - <source>Start minimized</source> - <translation>התחלה במצב ממוזער</translation> - </message> - <message> <source>This is experimental software.</source> <translation>זוהי תכנית נסיונית.</translation> </message> diff --git a/src/qt/locale/bitcoin_hi_IN.ts b/src/qt/locale/bitcoin_hi_IN.ts index fbdaf1ba7c..377ff3a3fa 100644 --- a/src/qt/locale/bitcoin_hi_IN.ts +++ b/src/qt/locale/bitcoin_hi_IN.ts @@ -335,6 +335,10 @@ <translation>विकल्प</translation> </message> <message> + <source>W&allet</source> + <translation>वॉलेट</translation> + </message> + <message> <source>&OK</source> <translation>&ओके</translation> </message> @@ -386,6 +390,10 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>राशि :</translation> + </message> + <message> <source>&Label:</source> <translation>लेबल:</translation> </message> @@ -401,6 +409,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&पता कॉपी करे</translation> + </message> + <message> <source>Address</source> <translation>पता</translation> </message> @@ -501,6 +513,10 @@ <source>Alt+P</source> <translation>Alt-P</translation> </message> + <message> + <source>Pay To:</source> + <translation>प्राप्तकर्ता:</translation> + </message> </context> <context> <name>ShutdownWindow</name> diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index aa28ecf24f..413dc21857 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -774,7 +774,7 @@ <source>command-line options</source> <translation>opcije programa u naredbenoj liniji</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1014,6 +1014,10 @@ <translation>&Informacije</translation> </message> <message> + <source>Debug window</source> + <translation>Konzola za dijagnostiku</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>OpenSSL verzija u upotrebi</translation> </message> @@ -1214,6 +1218,10 @@ <translation>Slanje novca</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Nedovoljna sredstva</translation> + </message> + <message> <source>Quantity:</source> <translation>Količina:</translation> </message> @@ -1238,6 +1246,10 @@ <translation>Vraćeno:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Naknada za transakciju:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Pošalji novce većem broju primatelja u jednoj transakciji</translation> </message> @@ -1367,6 +1379,10 @@ <translation>Potpis</translation> </message> <message> + <source>Sign &Message</source> + <translation>&Potpišite poruku</translation> + </message> + <message> <source>Clear &All</source> <translation>Obriši &sve</translation> </message> @@ -1375,6 +1391,10 @@ <translation>&Potvrdite poruku</translation> </message> <message> + <source>Verify &Message</source> + <translation>&Potvrdite poruku</translation> + </message> + <message> <source>Wallet unlock was cancelled.</source> <translation>Otključavanje novčanika je otkazano.</translation> </message> @@ -1780,12 +1800,20 @@ <translation>Informacija</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Šalji trace/debug informacije na konzolu umjesto u debug.log datoteku</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Nevaljali iznos za opciju -maxtxfee=<iznos>: '%s'</translation> </message> <message> - <source>Start minimized</source> - <translation>Pokreni minimiziran</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Nevaljali iznos za opciju -minrelaytxfee=<iznos>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Nevaljali iznos za opciju -mintxfee=<iznos>: '%s'</translation> + </message> + <message> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Šalji trace/debug informacije na konzolu umjesto u debug.log datoteku</translation> </message> <message> <source>Username for JSON-RPC connections</source> diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 27cfedc728..ab4517ccfa 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -866,7 +866,7 @@ <source>command-line options</source> <translation>parancssoros opciók</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1012,6 +1012,18 @@ <translation>Proxy portja (pl.: 9050)</translation> </message> <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> <source>&Window</source> <translation>&Ablak</translation> </message> @@ -1278,6 +1290,10 @@ <translation>Aktuális blokkok száma</translation> </message> <message> + <source>Memory usage</source> + <translation>Memóriahasználat</translation> + </message> + <message> <source>Received</source> <translation>Fogadott</translation> </message> @@ -1366,6 +1382,22 @@ <translation>Konzol törlése</translation> </message> <message> + <source>1 &hour</source> + <translation>1 &óra</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &nap</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &hét</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &év</translation> + </message> + <message> <source>Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen.</source> <translation>Navigálhat a fel és le nyilakkal, és <b>Ctrl-L</b> -vel törölheti a képernyőt.</translation> </message> @@ -1622,6 +1654,14 @@ <translation>Elrejtés</translation> </message> <message> + <source>Recommended:</source> + <translation>Ajánlott:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Egyéni:</translation> + </message> + <message> <source>normal</source> <translation>normál</translation> </message> @@ -1774,6 +1814,10 @@ <translation>Üzenet:</translation> </message> <message> + <source>Pay To:</source> + <translation>Címzett:</translation> + </message> + <message> <source>Memo:</source> <translation>Jegyzet:</translation> </message> @@ -1844,6 +1888,10 @@ <translation>Üzenet ellenőrzése</translation> </message> <message> + <source>Verify &Message</source> + <translation>Üzenet ellenőrzése</translation> + </message> + <message> <source>The entered address is invalid.</source> <translation>A megadott cím nem érvényes.</translation> </message> @@ -2186,6 +2234,10 @@ <translation>Tranzakciós részletek megjelenítése</translation> </message> <message> + <source>Watch-only</source> + <translation>Csak megfigyelés</translation> + </message> + <message> <source>Exporting Failed</source> <translation>Az exportálás sikertelen volt</translation> </message> @@ -2373,8 +2425,8 @@ <translation>Az adatbázist újra kell építeni -reindex használatával (módosítás -tindex).</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Adatkönyvtár kiválasztása induláskor (alapbeállítás: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Külső cím (-whitebind address) feloldása nem sikerült: '%s'</translation> </message> <message> <source>Copyright (C) 2009-%i The Bitcoin Core Developers</source> @@ -2389,6 +2441,10 @@ <translation>Információ</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Érvénytelen -maxtxfee=<amount>: '%s' összeg</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Érvénytelen -minrelaytxfee=<amount>: '%s' összeg</translation> </message> @@ -2401,27 +2457,10 @@ <translation>trace/debug információ küldése a konzolra a debog.log fájl helyett</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>SLL gyökér-igazolások megadása fizetési kérelmekhez (alapértelmezett: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Nyelvbeállítás, például "de_DE" (alapértelmezett: rendszer nyelve)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Indítóképernyő mutatása induláskor (alapértelmezett: 1)</translation> - </message> - <message> <source>Signing transaction failed</source> <translation>Tranzakció aláírása sikertelen</translation> </message> <message> - <source>Start minimized</source> - <translation>Indítás lekicsinyítve -</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Ez egy kísérleti szoftver.</translation> </message> @@ -2438,10 +2477,6 @@ <translation>Túl nagy tranzakció</translation> </message> <message> - <source>UI Options:</source> - <translation>Kezelőfelület beállításai:</translation> - </message> - <message> <source>Username for JSON-RPC connections</source> <translation>Felhasználói név JSON-RPC csatlakozásokhoz </translation> diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts index 22ce3efecb..1b626fbf23 100644 --- a/src/qt/locale/bitcoin_id_ID.ts +++ b/src/qt/locale/bitcoin_id_ID.ts @@ -254,6 +254,10 @@ <translation>&Pilihan...</translation> </message> <message> + <source>&Encrypt Wallet...</source> + <translation>&Enkripsi Dompet...</translation> + </message> + <message> <source>&Backup Wallet...</source> <translation>&Cadangkan Dompet...</translation> </message> @@ -795,6 +799,10 @@ <translation>Mengenai Bitcoin Core</translation> </message> <message> + <source>Command-line options</source> + <translation>pilihan Perintah-baris</translation> + </message> + <message> <source>Usage:</source> <translation>Penggunaan:</translation> </message> @@ -802,7 +810,7 @@ <source>command-line options</source> <translation>pilihan perintah-baris</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1556,6 +1564,10 @@ <translation>Alamat uang kembali yang kustom</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Biaya Transaksi:</translation> + </message> + <message> <source>Recommended:</source> <translation>Disarankan</translation> </message> @@ -1584,6 +1596,10 @@ <translation>Hapus informasi dari form.</translation> </message> <message> + <source>Clear &All</source> + <translation>Hapus &Semua</translation> + </message> + <message> <source>Balance:</source> <translation>Saldo:</translation> </message> @@ -1805,6 +1821,10 @@ <translation>Hapus semua bidang penanda pesan</translation> </message> <message> + <source>Clear &All</source> + <translation>Hapus &Semua</translation> + </message> + <message> <source>&Verify Message</source> <translation>&Verifikasi Pesan</translation> </message> @@ -2362,10 +2382,6 @@ <translation>Peringatan: Kami tidak bersetujuh dengan peer-peer kami! Kemungkinan Anda harus upgrade, atau node-node lain yang harus diupgrade.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(pengaturan awal: 1)</translation> - </message> - <message> <source>Block creation options:</source> <translation>Pilihan pembuatan blok:</translation> </message> @@ -2458,6 +2474,10 @@ <translation>Tidak bisa mengunci data directory %s. Kemungkinan Bitcoin Core sudah mulai.</translation> </message> <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Tidak dapat menyelesaikan alamat -whitebind: '%s'</translation> + </message> + <message> <source>Connect through SOCKS5 proxy</source> <translation>Hubungkan melalui proxy SOCKS5</translation> </message> @@ -2466,6 +2486,10 @@ <translation>Informasi</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Nilai salah untuk -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Nilai yang salah untuk -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2482,14 +2506,6 @@ <translation>Kirim info jejak/debug ke konsol bukan berkas debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Atur bahasa, sebagai contoh "id_ID" (standar: system locale)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Tampilkan layar pembuka saat nyala (standar: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Mengecilkan berkas debug.log saat klien berjalan (Standar: 1 jika tidak -debug)</translation> </message> @@ -2498,10 +2514,6 @@ <translation>Tandatangani transaksi tergagal</translation> </message> <message> - <source>Start minimized</source> - <translation>Memulai terminimalisi</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>Nilai transaksi terlalu kecil</translation> </message> diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 7a2b7bd843..d510b1063b 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/Netmask</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Bannato fino a</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -874,6 +882,34 @@ <source>command-line options</source> <translation>opzioni della riga di comando</translation> </message> + <message> + <source>UI Options:</source> + <translation>Opzioni interfaccia:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Seleziona la directory dei dati all'avvio (default: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Imposta la lingua, ad esempio "it_IT" (default: locale di sistema)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Avvia ridotto a icona</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Imposta un certificato SSL root per le richieste di pagamento (default: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Mostra schermata iniziale all'avvio (default: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Reset di tutte le modifiche alle impostazioni eseguite da interfaccia grafica</translation> + </message> </context> <context> <name>Intro</name> @@ -913,7 +949,11 @@ <source>Error</source> <translation>Errore</translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(di %nGB richiesti)</numerusform><numerusform>(%n GB richiesti)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -1065,6 +1105,34 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Porta del proxy (ad es. 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Utilizzata per connettersi attraverso:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Mostra se la proxy SOCKS5 fornita viene utilizzata per raggiungere i peers attraverso questo tipo di rete.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Connette alla rete Bitcoin attraverso un proxy SOCKS5 separato per Tor.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Usa un proxy SOCKS5 separato per connettersi ai peers attraverso Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Finestra</translation> </message> @@ -1435,6 +1503,18 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Numero attuale di blocchi</translation> </message> <message> + <source>Memory Pool</source> + <translation>Memory Pool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Numero attuale di transazioni</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Utilizzo memoria</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Apre il file log di debug di Bitcoin Core dalla cartella dati attuale. Questa azione può richiedere alcuni secondi per file log di grandi dimensioni.</translation> </message> @@ -1451,10 +1531,18 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>&Peer</translation> </message> <message> + <source>Banned peers</source> + <translation>Peers bannati</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Seleziona un peer per visualizzare informazioni più dettagliate.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Whitelisted/sicuri</translation> + </message> + <message> <source>Direction</source> <translation>Direzione</translation> </message> @@ -1463,6 +1551,18 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Versione</translation> </message> <message> + <source>Starting Block</source> + <translation>Blocco di partenza</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Headers sincronizzati</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Blocchi sincronizzati</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> @@ -1491,6 +1591,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Tempo di Ping</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>La durata di un ping attualmente in corso.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Attesa ping</translation> + </message> + <message> <source>Time Offset</source> <translation>Scarto Temporale</translation> </message> @@ -1539,6 +1647,34 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Cancella console</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Nodo Disconnesso</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Nodo Bannato perché</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &ora</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &giorno</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &settimana</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &anno</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Elimina Ban Nodo</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Benvenuto nella console RPC di Bitcoin Core.</translation> </message> @@ -1567,6 +1703,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(id nodo: %1)</translation> + </message> + <message> <source>via %1</source> <translation>via %1</translation> </message> @@ -1959,6 +2099,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Copia resto</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Ammontare Totale %1</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> @@ -1991,6 +2135,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Richiesta di pagamento scaduta.</translation> </message> <message> + <source>Pay only the required fee of %1</source> + <translation>Paga solamente la commissione richiesta di %1</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Inizio delle conferme stimato entro %n blocco.</numerusform><numerusform>Inizio delle conferme stimato entro %n blocchi.</numerusform></translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>L'indirizzo del beneficiario non è valido. Si prega di ricontrollare.</translation> </message> @@ -2622,6 +2774,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Copia l'ID transazione</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Copia la transazione raw</translation> + </message> + <message> <source>Edit label</source> <translation>Modifica l'etichetta</translation> </message> @@ -2769,14 +2925,54 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Accetta comandi da riga di comando e JSON-RPC</translation> </message> <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>Se <category> non è specificato oppure se <category> = 1, mostra tutte le informazioni di debug.</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Totale massimo di commissioni (in %s) da usare in una singola transazione del wallet; valori troppo bassi possono abortire grandi transazioni (default: %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Per favore controllate che la data del computer e l'ora siano corrette. Se il vostro orologio è sbagliato Bitcoin non funzionerà correttamente.</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>La modalità prune è configurata al di sotto del minimo di %d MB. Si prega di utilizzare un valore più elevato.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Prune: l'ultima sincronizzazione del wallet risulta essere oltre la riduzione dei dati. È necessario eseguire un -reindex (scaricare nuovamente la blockchain in caso di nodo pruned)</translation> + </message> + <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Riduce i requisiti di spazio di archiviazione attraverso la rimozione dei vecchi blocchi (pruning). Questa modalità è incompatibile con l'opzione -txindex e -rescan. Attenzione: ripristinando questa opzione l'intera blockchain dovrà essere riscaricata. (default: 0 = disabilita il pruning, >%u = dimensione desiderata in MiB per i file dei blocchi)</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>Non è possibile un Rescan in modalità pruned. Sarà necessario utilizzare -reindex che farà scaricare nuovamente tutta la blockchain.</translation> + </message> + <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> <translation>Errore: si è presentato un errore interno fatale, consulta il file debug.log per maggiori dettagli</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Commissione (in %s/kB) da aggiungere alle transazioni inviate (default: %s)</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Pruning del blockstore...</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Esegui in background come demone ed accetta i comandi</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Impossibile avviare il server HTTP. Dettagli nel log di debug.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Accetta connessioni dall'esterno (predefinito: 1 se -proxy o -connect non sono utilizzati)</translation> </message> @@ -2801,6 +2997,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Imposta il numero di thread per la verifica degli script (da %u a %d, 0 = automatico, <0 = lascia questo numero di core liberi, predefinito: %d)</translation> </message> <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>Il database dei blocchi contiene un blocco che sembra provenire dal futuro. Questo può essere dovuto alla data e ora del tuo computer impostate in modo scorretto. Ricostruisci il database dei blocchi se sei certo che la data e l'ora sul tuo computer siano corrette</translation> + </message> + <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> <translation>Questa versione è una compilazione pre-rilascio - usala a tuo rischio - non utilizzarla per la generazione o per applicazioni di commercio</translation> </message> @@ -2809,6 +3009,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Impossibile associarsi a %s su questo computer. Probabilmente Bitcoin Core è già in esecuzione.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Utilizza UPnP per mappare la porta in ascolto (default: 1 quando in ascolto e -proxy non è specificato)</translation> + </message> + <message> <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> <translation>ATTENZIONE, il numero di blocchi generati è insolitamente elevato: %d blocchi ricevuti nelle ultime %d ore (%d previsti)</translation> </message> @@ -2833,8 +3037,8 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Inserisce in whitelist i peer che si connettono da un dato indirizzo IP o netmask. Può essere specificato più volte.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(predefinito: 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool deve essere almeno %d MB</translation> </message> <message> <source><category> can be:</source> @@ -2869,6 +3073,22 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Vuoi ricostruire ora il database dei blocchi?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Abilita pubblicazione hash blocco in <address></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Abilità pubblicazione hash transazione in <address></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Abilita pubblicazione blocchi raw in <address></translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Abilita pubblicazione transazione raw in <address></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Errore durante l'inizializzazione del database dei blocchi</translation> </message> @@ -2905,6 +3125,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Indirizzo -onion non valido: '%s'</translation> </message> <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>Mantieni la memory pool delle transazioni al di sotto di <n> megabytes (default: %u)</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>Non ci sono abbastanza descrittori di file disponibili.</translation> </message> @@ -2933,10 +3157,26 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Specifica il file del portamonete (all'interno della cartella dati)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Ignorata opzione -benchmark non supportata, utilizzare -debug=bench.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Argomento -debugnet ignorato in quanto non supportato, usare -debug=net.</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Rilevato argomento -tor non supportato, utilizzare -onion.</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>Usa UPnP per mappare la porta di ascolto (predefinito: %u)</translation> </message> <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>Il commento del User Agent (%s) contiene caratteri non sicuri.</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Verifica blocchi...</translation> </message> @@ -2993,6 +3233,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Esegue un comando in caso di ricezione di un allarme pertinente o se si rileva un fork molto lungo (%s in cmd è sostituito dal messaggio)</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Le commissioni (in %s/kB) inferiori a questo valore sono considerate pari a zero per trasmissione, mining e creazione della transazione (default: %s)</translation> + </message> + <message> <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> <translation>Nel caso in cui paytxfee non sia impostato, include una commissione tale da ottenere un avvio delle conferme entro una media di n blocchi (predefinito: %u)</translation> </message> @@ -3049,12 +3293,20 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Attivazione della blockchain migliore...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Impossibile risolvere indirizzo -whitebind: '%s'</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Trasmetti sempre le transazioni ricevute da peers whitelisted (default: %d)</translation> + </message> + <message> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Prova a recuperare le chiavi private da un wallet corrotto all'avvio</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Seleziona la cartella dati all'avvio (predefinito: 0)</translation> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Crea automaticamente il servizio Tor (default: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Impossibile risolvere indirizzo -whitebind: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3073,6 +3325,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Errore durante lalettura del database. Arresto in corso.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Importa blocchi da un file blk000??.dat esterno all'avvio</translation> + </message> + <message> <source>Information</source> <translation>Informazioni</translation> </message> @@ -3125,30 +3381,26 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Ricevi e visualizza gli alerts della rete P2P (default: %u)</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Riduzione -maxconnections da %d a %d a causa di limitazioni di sistema.</translation> </message> <message> - <source>Send transactions as zero-fee transactions if possible (default: %u)</source> - <translation>Invia transazioni a zero commissioni se possibile (predefinito: %u)</translation> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Ripete la scansione della block chain per individuare le transazioni che mancano dal wallet all'avvio</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Imposta i certificati radice SSL per le richieste di pagamento (predefinito: -system-)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Imposta lingua, ad esempio "it_IT" (predefinito: lingua di sistema)</translation> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Invia transazioni a zero commissioni se possibile (predefinito: %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> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostra finestra di presentazione all'avvio (predefinito: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Riduce il file debug.log all'avvio del client (predefinito: 1 se -debug non è impostato)</translation> </message> @@ -3157,10 +3409,6 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Firma transazione fallita</translation> </message> <message> - <source>Start minimized</source> - <translation>Avvia ridotto a icona</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>L'importo della transazione è troppo basso per pagare la commissione</translation> </message> @@ -3169,6 +3417,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Questo è un software sperimentale.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Password porta controllo Tor (default: empty)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Porta di controllo Tor da usare se in ascolto su onion (default: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Importo transazione troppo piccolo</translation> </message> @@ -3185,14 +3441,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Transazione troppo grande</translation> </message> <message> - <source>UI Options:</source> - <translation>Opzioni Interfaccia Utente:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Impossibile associarsi a %s su questo computer (l'associazione ha restituito l'errore %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Aggiorna il wallet all'ultimo formato all'avvio</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Nome utente per connessioni JSON-RPC</translation> </message> @@ -3205,10 +3461,18 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Attenzione</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Imposta se operare in modalità solo blocchi (default: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Eliminazione dal portamonete di tutte le transazioni...</translation> </message> <message> + <source>ZeroMQ notification options:</source> + <translation>Opzioni di notifica ZeroMQ</translation> + </message> + <message> <source>wallet.dat corrupt, salvage failed</source> <translation>wallet.dat corrotto, recupero fallito</translation> </message> @@ -3241,6 +3505,26 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>(1 = mantiene metadati tx, ad es. proprietario account ed informazioni di richiesta di pagamento, 2 = scarta metadati tx)</translation> </message> <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee è impostato molto alto! Commissioni così alte possono venir pagate anche su una singola transazione.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee è impostato su un valore molto elevato. Questa è la commissione che si paga quando si invia una transazione.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Non mantenere le transazioni nella mempool più a lungo di <n> ore (default: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Errore di lettura di wallet.dat! Tutte le chiavi sono state lette correttamente, ma i dati delle transazioni o della rubrica potrebbero essere mancanti o non corretti.</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Le commissioni (in %s/kB) inferiori a questo valore sono considerate pari a zero per la creazione della transazione (default: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Determina quanto sarà approfondita la verifica da parte di -checkblocks (0-4, predefinito: %u)</translation> </message> @@ -3257,10 +3541,30 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Emette informazioni di debug (predefinito: %u, fornire <category> è opzionale)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Supporta filtraggio di blocchi e transazioni con filtri bloom (default: %u)</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>La lunghezza totale della stringa di network version (%i) eccede la lunghezza massima (%i). Ridurre il numero o la dimensione di uacomments.</translation> + </message> + <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Cerca di mantenere il traffico in uscita al di sotto della soglia scelta (in MiB ogni 24h), 0 = nessun limite (default: %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Argomento -socks non supportato. Non è più possibile impostare la versione SOCKS, solamente i proxy SOCKS5 sono supportati.</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Usa un proxy SOCKS5 a parte per raggiungere i peer attraverso gli hidden services di Tor (predefinito: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Username e hash password per connessioni JSON-RPC. Il campo <userpw> utilizza il formato: <USERNAME>:<SALT>$<HASH>. Uno script python standard è incluso in share/rpcuser. Questa opzione può essere specificata più volte</translation> + </message> + <message> <source>(default: %s)</source> <translation>(predefinito: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index a80874652b..4344fd0436 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>コマンドライン オプション</translation> </message> + <message> + <source>UI Options:</source> + <translation>UIオプション:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>起動時にデータ ディレクトリを選ぶ (初期値: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>言語設定 例: "de_DE" (初期値: システムの言語)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>最小化された状態で起動する</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>支払いリクエスト用にSSLルート証明書を設定する (デフォルト:-system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>起動時にスプラッシュ画面を表示する (初期値: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>GUI 経由で行われた設定の変更を全てリセット</translation> + </message> </context> <context> <name>Intro</name> @@ -1478,6 +1506,18 @@ <translation>現在のブロック数</translation> </message> <message> + <source>Memory Pool</source> + <translation>メモリ・プール</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>現在のトランザクション数</translation> + </message> + <message> + <source>Memory usage</source> + <translation>メモリ使用量</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>現在のデータディレクトリからBitcoin Coreのデバッグ用ログファイルを開きます。ログファイルが巨大な場合、数秒かかることがあります。</translation> </message> @@ -3000,10 +3040,6 @@ <translation>与えられたネットマスクやIPアドレスから接続を行う、ホワイトリストのピア。複数回指定できます。</translation> </message> <message> - <source>(default: 1)</source> - <translation>(デフォルト: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempoolは最低でも %d MB必要です</translation> </message> @@ -3277,10 +3313,6 @@ <translation>-whitebind アドレス '%s' を解決できません</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>起動時にデータ ディレクトリを選ぶ (初期値: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>SOCKS5 プロキシ経由で接続する</translation> </message> @@ -3369,22 +3401,10 @@ <translation>可能な場合には手数料ゼロのトランザクションとしてトランザクションを送信する (初期値: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>支払いリクエスト用にSSLルート証明書を設定する(デフォルト:-system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>言語設定 例: "de_DE" (初期値: システムの言語)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>すべてのデバッグオプションを表示する (使い方: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>起動時にスプラッシュ画面を表示する (初期値: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>クライアント起動時に debug.log ファイルを縮小 (初期値: -debug オプションを指定しない場合は1)</translation> </message> @@ -3393,10 +3413,6 @@ <translation>取引の署名に失敗しました</translation> </message> <message> - <source>Start minimized</source> - <translation>最小化された状態で起動する</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>トランザクションの金額が小さすぎて手数料を支払えません</translation> </message> @@ -3429,10 +3445,6 @@ <translation>取引が大き過ぎます</translation> </message> <message> - <source>UI Options:</source> - <translation>UIオプション:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>このコンピュータの %s にバインドすることができません (バインドが返したエラーは %s)</translation> </message> @@ -3513,6 +3525,10 @@ <translation>wallet.dat の読み込みエラー! すべてのキーは正しく読み取れますが、取引データやアドレス帳のエントリが失われたか、正しくない可能性があります。</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>トランザクション作成の際、この値未満の手数料 (%s/kB単位) はゼロであるとみなす (デフォルト: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>-checkblocks のブロックの検証レベル (0-4, 初期値: %u)</translation> </message> @@ -3529,6 +3545,10 @@ <translation>デバッグ情報を出力する (初期値: %u, <category> の指定は任意です)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Bloomフィルタによる、ブロックおよびトランザクションのフィルタリングを有効化する (初期値: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>ネットワークバージョン文字 (%i) の長さが最大の長さ (%i) を超えています。UAコメントの数や長さを削減してください。</translation> </message> @@ -3545,6 +3565,10 @@ <translation>Tor 秘匿サービスを通し、別々の SOCKS5 プロキシを用いることでピアに到達する (初期値: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>JSON-RPC接続時のユーザ名とハッシュ化されたパスワード。<userpw> フィールドのフォーマットは <USERNAME>:<SALT>$<HASH>。標準的な Python スクリプトが share/rpcuser 内に含まれています。このオプションは複数回指定できます。</translation> + </message> + <message> <source>(default: %s)</source> <translation>(デフォルト: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index e8f5286697..11c73ec767 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -748,7 +748,7 @@ <source>command-line options</source> <translation>კომანდების ზოლის ოპციები</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -764,6 +764,10 @@ <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>Bitcoin Core გადმოტვირთავს და შეინახავს Bitcoin-ის ბლოკთა ჯაჭვს. მითითებულ კატალოგში დაგროვდება სულ ცოტა %1 გბ მონაცემები, და მომავალში უფრო გაიზრდება. საფულეც ამავე კატალოგში შეინახება.</translation> + </message> + <message> <source>Use the default data directory</source> <translation>ნაგულისხმევი კატალოგის გამოყენება</translation> </message> @@ -1432,6 +1436,10 @@ <translation>ხურდის მისამართი</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>ტრანსაქციის საფასური - საკომისიო:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>გაგზავნა რამდენიმე რეციპიენტთან ერთდროულად</translation> </message> @@ -1508,6 +1516,10 @@ <translation>თანხა აღემატება თქვენს ბალანსს</translation> </message> <message> + <source>The total exceeds your balance when the %1 transaction fee is included.</source> + <translation>საკომისიო %1-ის დამატების შემდეგ თანხა აჭარბებს თქვენს ბალანსს</translation> + </message> + <message> <source>Transaction creation failed!</source> <translation>შეცდომა ტრანსაქციის შექმნისას!</translation> </message> @@ -2326,14 +2338,18 @@ <translation>მაღალპრიორიტეტული/დაბალსაკომისიოიანი ტრანსაქციების მაქსიმალური ზომა ბაიტებში (ნაგულისხმევი: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>მონაცემთა კატალოგის მითითება ყოველი გაშვებისას (ნაგულისხმევი: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>ვერ ხერხდება -whitebind მისამართის გარკვევა: '%s'</translation> </message> <message> <source>Information</source> <translation>ინფორმაცია</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>დაუშვებელი მნიშვნელობა -pmaxtxfee<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>დაუშვებელი მნიშვნელობა -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -2346,14 +2362,6 @@ <translation>ტრასირების/დახვეწის ინფოს გაგზავნა კონსოლზე debug.log ფაილის ნაცვლად</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>აირჩიეთ ენა, მაგალითად "de_DE" (ნაგულისხმევია სისტემური ლოკალი)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>მისალმების ეკრანის ჩვენება გაშვებისას (ნაგულისხმევი:1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>debug.log ფაილის შეკუმშვა გაშვებისას (ნაგულისხმევია: 1 როცა არ აყენია -debug)</translation> </message> @@ -2362,10 +2370,6 @@ <translation>ტრანსაქციების ხელმოწერა ვერ მოხერხდა</translation> </message> <message> - <source>Start minimized</source> - <translation>გაშვება მინიმიზებული ეკრანით</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>ტრანსაქციების რაოდენობა ძალიან ცოტაა</translation> </message> diff --git a/src/qt/locale/bitcoin_kk_KZ.ts b/src/qt/locale/bitcoin_kk_KZ.ts index 4de8f1b57e..cfa19d13f0 100644 --- a/src/qt/locale/bitcoin_kk_KZ.ts +++ b/src/qt/locale/bitcoin_kk_KZ.ts @@ -231,6 +231,10 @@ <context> <name>EditAddressDialog</name> <message> + <source>&Label</source> + <translation>таңба</translation> + </message> + <message> <source>&Address</source> <translation>Адрес</translation> </message> @@ -253,6 +257,10 @@ </context> <context> <name>OptionsDialog</name> + <message> + <source>W&allet</source> + <translation>Әмиян</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -275,9 +283,17 @@ </context> <context> <name>RPCConsole</name> + <message> + <source>&Information</source> + <translation>Информация</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> + <message> + <source>&Amount:</source> + <translation>Саны</translation> + </message> </context> <context> <name>ReceiveRequestDialog</name> @@ -342,6 +358,10 @@ </context> <context> <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>Саны</translation> + </message> </context> <context> <name>ShutdownWindow</name> diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index 0213c09aa7..ce48ce249f 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -810,7 +810,7 @@ <source>command-line options</source> <translation>명령줄 옵션</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1176,6 +1176,14 @@ <translation>비트코인 주소를 입력하기 (예. %1)</translation> </message> <message> + <source>%1 h</source> + <translation>%1 시간</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 분</translation> + </message> + <message> <source>%1 s</source> <translation>%1 초</translation> </message> @@ -1333,6 +1341,22 @@ <source>Type <b>help</b> for an overview of available commands.</source> <translation>사용할 수 있는 명령을 둘러보려면 <b>help</b>를 입력하십시오.</translation> </message> + <message> + <source>%1 B</source> + <translation>%1 바이트</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 킬로바이트</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 메가바이트</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 기가바이트</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> @@ -2201,6 +2225,10 @@ <translation>거래 기록 내보내기</translation> </message> <message> + <source>Watch-only</source> + <translation>모니터링 지갑</translation> + </message> + <message> <source>Exporting Failed</source> <translation>내보내기 실패</translation> </message> @@ -2360,10 +2388,6 @@ <translation>경고 : wallet.dat가 손상되어 데이터가 복구되었습니다. 원래의 wallet.dat 파일은 %s 후에 wallet.{timestamp}.bak 이름으로 저장됩니다. 잔액과 거래 내역이 정확하지 않다면 백업 파일로 부터 복원해야 합니다. </translation> </message> <message> - <source>(default: 1)</source> - <translation>(기본값: 1)</translation> - </message> - <message> <source>Block creation options:</source> <translation>블록 생성 옵션:</translation> </message> @@ -2396,6 +2420,10 @@ <translation>블록 데이터베이스를 초기화하는데 오류</translation> </message> <message> + <source>Error initializing wallet database environment %s!</source> + <translation>지갑 데이터베이스 환경 초기화하는데 오류 %s</translation> + </message> + <message> <source>Error loading block database</source> <translation>블록 데이터베이스를 불러오는데 오류</translation> </message> @@ -2472,14 +2500,18 @@ <translation>최대 크기를 최우선으로 설정 / 바이트당 최소 수수료로 거래(기본값: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>파일목록을 선택하여 시작하시오(기본값: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>-whitebind 주소를 확인할 수 없습니다: '%s'</translation> </message> <message> <source>Information</source> <translation>정보</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>-maxtxfee=<amount>에 대한 양이 잘못되었습니다: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>노드로 전달하기 위한 최저 거래 수수료가 부족합니다. - minrelaytxfee=<amount>: '%s' -</translation> </message> @@ -2496,22 +2528,10 @@ <translation>추적오류 정보를 degug.log 자료로 보내는 대신 콘솔로 보내기</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>지불 요청을 위해 SSL 최상위 인증을 설정합니다. (기본값: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>"de_DE"와 같이 언어를 설정하십시오 (기본값: 시스템 로캘)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>모든 디버그 설정 보기(설정: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>시작시 시작 화면 표시 (기본값: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>클라이언트 시작시 debug.log 파일 비우기(기본값: 디버그 안할때 1)</translation> </message> @@ -2520,10 +2540,6 @@ <translation>거래를 서명하는것을 실패하였습니다.</translation> </message> <message> - <source>Start minimized</source> - <translation>최소화 상태에서 시작</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>거래량이 너무 적습니다</translation> </message> diff --git a/src/qt/locale/bitcoin_ky.ts b/src/qt/locale/bitcoin_ky.ts index 495f11b1f4..51efd519c3 100644 --- a/src/qt/locale/bitcoin_ky.ts +++ b/src/qt/locale/bitcoin_ky.ts @@ -126,6 +126,10 @@ <translation>&Тармак</translation> </message> <message> + <source>W&allet</source> + <translation>Капчык</translation> + </message> + <message> <source>&Port:</source> <translation>&Порт:</translation> </message> @@ -176,6 +180,10 @@ <translation>Жалпы</translation> </message> <message> + <source>Network</source> + <translation>&Тармак</translation> + </message> + <message> <source>Name</source> <translation>Аты</translation> </message> @@ -194,6 +202,10 @@ </context> <context> <name>ReceiveCoinsDialog</name> + <message> + <source>&Message:</source> + <translation>Билдирүү:</translation> + </message> </context> <context> <name>ReceiveRequestDialog</name> diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/bitcoin_la.ts index b297a35d4b..e3dcd505fe 100644 --- a/src/qt/locale/bitcoin_la.ts +++ b/src/qt/locale/bitcoin_la.ts @@ -306,6 +306,10 @@ <translation>Bitcoin Nucleus</translation> </message> <message> + <source>&Command-line options</source> + <translation>Optiones mandati initiantis</translation> + </message> + <message> <source>No block source available...</source> <translation>Nulla fons frustorum absens...</translation> </message> @@ -476,7 +480,7 @@ <source>command-line options</source> <translation>Optiones mandati intiantis</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -514,6 +518,10 @@ <translation>&Rete</translation> </message> <message> + <source>W&allet</source> + <translation>Cassidile</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>Aperi per se portam clientis Bitcoin in itineratore. Hoc tantum effectivum est si itineratrum tuum supportat UPnP et id activum est.</translation> </message> @@ -656,6 +664,10 @@ <translation>&Informatio</translation> </message> <message> + <source>Debug window</source> + <translation>Fenestra Debug</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>Utens OpenSSL versione</translation> </message> @@ -715,10 +727,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Quantitas:</translation> + </message> + <message> <source>&Label:</source> <translation>&Titulus:</translation> </message> <message> + <source>&Message:</source> + <translation>Nuntius:</translation> + </message> + <message> <source>Copy label</source> <translation>Copia titulum</translation> </message> @@ -730,6 +750,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Copia Inscriptionem</translation> + </message> + <message> <source>Address</source> <translation>Inscriptio</translation> </message> @@ -784,10 +808,18 @@ <translation>Mitte Nummos</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Inopia nummorum</translation> + </message> + <message> <source>Amount:</source> <translation>Quantitas:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Transactionis merces:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Mitte pluribus accipientibus simul</translation> </message> @@ -870,6 +902,10 @@ <source>Message:</source> <translation>Nuntius:</translation> </message> + <message> + <source>Pay To:</source> + <translation>Pensa Ad:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1462,10 +1498,18 @@ <translation>Verificante cassidilem...</translation> </message> <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Non posse resolvere -whitebind inscriptionem: '%s'</translation> + </message> + <message> <source>Information</source> <translation>Informatio</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Quantitas non valida pro -maxtxfee=<amount>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Quantitas non valida pro -minrelaytxfee=<amount>: '%s'</translation> </message> @@ -1478,14 +1522,6 @@ <translation>Mitte informationem vestigii/debug ad terminale potius quam plicam debug.log</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Constitue linguam, exempli gratia "de_DE" (praedefinitum: lingua systematis)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Monstra principem imaginem ad initium (praedefinitum: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Diminue plicam debug.log ad initium clientis (praedefinitum: 1 nisi -debug)</translation> </message> @@ -1494,10 +1530,6 @@ <translation>Signandum transactionis abortum est</translation> </message> <message> - <source>Start minimized</source> - <translation>Incipe minifactum ut icon</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>Magnitudo transactionis nimis parva</translation> </message> diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index 7820977375..b98976dfea 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -190,7 +190,11 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>Banned Until</source> + <translation>Užblokuotas iki</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -358,6 +362,10 @@ <translation>&Apie Bitcoin Core</translation> </message> <message> + <source>&Command-line options</source> + <translation>Komandinės eilutės parametrai</translation> + </message> + <message> <source>Error</source> <translation>Klaida</translation> </message> @@ -551,7 +559,11 @@ <source>(no label)</source> <translation>(nėra žymės)</translation> </message> - </context> + <message> + <source>(change)</source> + <translation>(Graža)</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -632,7 +644,7 @@ <source>command-line options</source> <translation>komandinės eilutės parametrai</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -666,10 +678,26 @@ <translation>&Pagrindinės</translation> </message> <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>Proxy IP adresas (Pvz. IPv4: 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>&Reset Options</source> + <translation>&Atstatyti Parinktis</translation> + </message> + <message> <source>&Network</source> <translation>&Tinklas</translation> </message> <message> + <source>W&allet</source> + <translation>Piniginė</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>Automatiškai atidaryti Bitcoin kliento prievadą maršrutizatoriuje. Tai veikia tik tada, kai jūsų maršrutizatorius palaiko UPnP ir ji įjungta.</translation> </message> @@ -690,6 +718,18 @@ <translation>Tarpinio serverio preivadas (pvz, 9050)</translation> </message> <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> <source>&Window</source> <translation>&Langas</translation> </message> @@ -742,6 +782,14 @@ <translation>Patvirtinti nustatymų atstatymą</translation> </message> <message> + <source>Client restart required to activate changes.</source> + <translation>Kliento perkrovimas reikalingas nustatymų aktyvavimui</translation> + </message> + <message> + <source>This change would require a client restart.</source> + <translation>Šis pakeitimas reikalautų kliento perkrovimo</translation> + </message> + <message> <source>The supplied proxy address is invalid.</source> <translation>Nurodytas tarpinio serverio adresas negalioja.</translation> </message> @@ -757,6 +805,10 @@ <translation>Galimi:</translation> </message> <message> + <source>Your current spendable balance</source> + <translation>Jūsų dabartinis išleidžiamas balansas</translation> + </message> + <message> <source>Pending:</source> <translation>Laukiantys:</translation> </message> @@ -780,10 +832,18 @@ <translation>URI apdorojimas</translation> </message> <message> + <source>Invalid payment address %1</source> + <translation>Neteisingas mokėjimo adresas %1</translation> + </message> + <message> <source>Payment request rejected</source> <translation>Mokėjimo siuntimas atmestas</translation> </message> <message> + <source>Payment request expired.</source> + <translation>Mokėjimo siuntimas pasibaigė</translation> + </message> + <message> <source>Network request error</source> <translation>Tinklo užklausos klaida</translation> </message> @@ -813,10 +873,18 @@ <context> <name>QRImageWidget</name> <message> + <source>&Copy Image</source> + <translation>Kopijuoti nuotrauką</translation> + </message> + <message> <source>Save QR Code</source> <translation>Įrašyti QR kodą</translation> </message> - </context> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG paveikslėlis (*.png)</translation> + </message> +</context> <context> <name>RPCConsole</name> <message> @@ -836,6 +904,10 @@ <translation>&Informacija</translation> </message> <message> + <source>Debug window</source> + <translation>Derinimo langas</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>Naudojama OpenSSL versija</translation> </message> @@ -848,6 +920,10 @@ <translation>Tinklas</translation> </message> <message> + <source>Name</source> + <translation>Pavadinimas</translation> + </message> + <message> <source>Number of connections</source> <translation>Prisijungimų kiekis</translation> </message> @@ -884,6 +960,10 @@ <translation>&Konsolė</translation> </message> <message> + <source>&Clear</source> + <translation>Išvalyti</translation> + </message> + <message> <source>Totals</source> <translation>Viso:</translation> </message> @@ -919,14 +999,30 @@ <source>never</source> <translation>Niekada</translation> </message> + <message> + <source>Yes</source> + <translation>Taip</translation> + </message> + <message> + <source>No</source> + <translation>Ne</translation> + </message> </context> <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Suma:</translation> + </message> + <message> <source>&Label:</source> <translation>Ž&ymė:</translation> </message> <message> + <source>&Message:</source> + <translation>Žinutė:</translation> + </message> + <message> <source>Clear</source> <translation>Išvalyti</translation> </message> @@ -946,6 +1042,10 @@ <translation>QR kodas</translation> </message> <message> + <source>Copy &Address</source> + <translation>&Kopijuoti adresą</translation> + </message> + <message> <source>Payment information</source> <translation>Mokėjimo informacija</translation> </message> @@ -1000,6 +1100,10 @@ <translation>Siųsti monetas</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Nepakanka lėšų</translation> + </message> + <message> <source>Quantity:</source> <translation>Kiekis:</translation> </message> @@ -1028,6 +1132,10 @@ <translation>Graža:</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Sandorio mokestis:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Siųsti keliems gavėjams vienu metu</translation> </message> @@ -1092,6 +1200,10 @@ <translation>Jei pridedame sandorio mokestį %1 bendra suma viršija jūsų balansą.</translation> </message> <message> + <source>Payment request expired.</source> + <translation>Mokėjimo siuntimas pasibaigė</translation> + </message> + <message> <source>(no label)</source> <translation>(nėra žymės)</translation> </message> @@ -1130,6 +1242,10 @@ <source>Message:</source> <translation>Žinutė:</translation> </message> + <message> + <source>Pay To:</source> + <translation>Mokėti gavėjui:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1177,6 +1293,10 @@ <translation>Patikrinkite žinutę, jog įsitikintumėte, kad ją pasirašė nurodytas Bitcoin adresas</translation> </message> <message> + <source>Verify &Message</source> + <translation>&Patikrinti žinutę</translation> + </message> + <message> <source>Click "Sign Message" to generate signature</source> <translation>Spragtelėkite "Registruotis žinutę" tam, kad gauti parašą</translation> </message> @@ -1630,16 +1750,20 @@ <translation>Informacija</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Siųsti atsekimo/derinimo info į konsolę vietoj debug.log failo</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Neteisinga suma -maxtxfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Neteisinga suma -minrelaytxfee=<amount>: '%s'</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Nustatyti kalbą, pavyzdžiui "lt_LT" (numatyta: sistemos kalba)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Neteisinga suma -mintxfee=<amount>: '%s'</translation> </message> <message> - <source>Start minimized</source> - <translation>Paleisti sumažintą</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Siųsti atsekimo/derinimo info į konsolę vietoj debug.log failo</translation> </message> <message> <source>Username for JSON-RPC connections</source> diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts index fa7abdf2ab..e01d4c812c 100644 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ b/src/qt/locale/bitcoin_lv_LV.ts @@ -721,6 +721,10 @@ <translation>Par Bitcoin Core</translation> </message> <message> + <source>Command-line options</source> + <translation>Komandrindas iespējas</translation> + </message> + <message> <source>Usage:</source> <translation>Lietojums:</translation> </message> @@ -728,7 +732,7 @@ <source>command-line options</source> <translation>komandrindas izvēles</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1376,6 +1380,10 @@ <translation>Pielāgota atlikuma adrese</translation> </message> <message> + <source>Transaction Fee:</source> + <translation>Transakcijas maksa:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Sūtīt vairākiem saņēmējiem uzreiz</translation> </message> @@ -2114,10 +2122,6 @@ <translation>Darbināt fonā kā servisu un pieņemt komandas</translation> </message> <message> - <source>(default: 1)</source> - <translation>(noklusējums: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> var būt:</translation> </message> @@ -2162,32 +2166,36 @@ <translation>Maciņa iespējas:</translation> </message> <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Nevar atrisināt -whitebind adresi: '%s'</translation> + </message> + <message> <source>Information</source> <translation>Informācija</translation> </message> <message> - <source>RPC server options:</source> - <translation>RPC servera iestatījumi:</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Nederīgs daudzums priekš -maxtxfee=<amount>: '%s'</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Debug/trace informāciju izvadīt konsolē, nevis debug.log failā</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Nederīgs daudzums priekš -minrelaytxfee=<amount>: '%s'</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Uzstādiet valodu, piemēram "de_DE" (pēc noklusēšanas: sistēmas lokāle)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Nederīgs daudzums priekš -mintxfee=<amount>: '%s'</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Uzsākot, parādīt programmas informācijas logu (pēc noklusēšanas: 1)</translation> + <source>RPC server options:</source> + <translation>RPC servera iestatījumi:</translation> </message> <message> - <source>Signing transaction failed</source> - <translation>Transakcijas parakstīšana neizdevās</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Debug/trace informāciju izvadīt konsolē, nevis debug.log failā</translation> </message> <message> - <source>Start minimized</source> - <translation>Sākt minimizētu</translation> + <source>Signing transaction failed</source> + <translation>Transakcijas parakstīšana neizdevās</translation> </message> <message> <source>Transaction amount too small</source> diff --git a/src/qt/locale/bitcoin_mk_MK.ts b/src/qt/locale/bitcoin_mk_MK.ts new file mode 100644 index 0000000000..b7797063b2 --- /dev/null +++ b/src/qt/locale/bitcoin_mk_MK.ts @@ -0,0 +1,1039 @@ +<TS language="mk_MK" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Десен клик за уредување на адреса или етикета</translation> + </message> + <message> + <source>Create a new address</source> + <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>&Copy</source> + <translation>&Копирај</translation> + </message> + <message> + <source>C&lose</source> + <translation>З&атвори</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Копирај Адреса</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Избриши ја избраната адреса од листата</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Експортирај ги податоците од активното јазиче во датотека</translation> + </message> + <message> + <source>&Export</source> + <translation>&Експорт</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Избриши</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Изберете адресата за да пратите биткоини</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Изберете адресата за да примите биткоини</translation> + </message> + <message> + <source>C&hoose</source> + <translation>И&збери</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Адреси за праќање</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Адреси за примање</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Копирај &Етикета</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Уреди</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Експортирај Листа со Адреси</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Експортирањето не Успеа</translation> + </message> + </context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Етикета</translation> + </message> + <message> + <source>Address</source> + <translation>Адреса</translation> + </message> + <message> + <source>(no label)</source> + <translation>(без етикета)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Enter passphrase</source> + <translation>Внеси тајна фраза</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Нова тајна фраза</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Повторете ја новата тајна фраза</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Криптирање на паричник</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Отклучи паричник</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Декриптирање на паричник</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Измени тајна фраза</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Потврдете го криптирањето на паричникот</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Предупредување: Ако го шифрирате вашиот паричник и ја изгубите вашата тајна фраза, ќе <b>ГИ ИЗГУБИТЕ СИТЕ ВАШИ БИТКОИНИ</b>!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Дали сте сигурни дека сакате да криптирате вашиот паричник?</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Предупредување: Caps Lock копчето е активно!</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Паричникот е криптиран</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Криптирањето на паричникот е неуспешно</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Криптирањето на паричникот не успеа поради интерна грешка. Вашиот паричник не е криптиран.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>Приложените тајни фрази не се поклопуваат</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Отклучувањето на паричникот е неуспешно</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>Тајната фраза која што ја внесовте за декриптирање на паричникот е неточна.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Декриптирањето на паричникот е неуспешно</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>Тајната фраза е успешно променета.</translation> + </message> +</context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Sign &message...</source> + <translation>Потпиши &порака...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>Синхронизација со мрежата...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Преглед</translation> + </message> + <message> + <source>Node</source> + <translation>Јазол</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Трансакции</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Преглед на историјата на трансакции</translation> + </message> + <message> + <source>E&xit</source> + <translation>И&злез</translation> + </message> + <message> + <source>Quit application</source> + <translation>Напушти ја апликацијата</translation> + </message> + <message> + <source>About &Qt</source> + <translation>За &Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>Прикажи информации за Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Опции...</translation> + </message> + <message> + <source>&Encrypt Wallet...</source> + <translation>&Криптирање на Паричник...</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>&Бекап на Паричник...</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <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>Биткоин Core софтверот</translation> + </message> + <message> + <source>Importing blocks from disk...</source> + <translation>Внесување на блокови од дискот...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>Повторно индексирање на блокови од дискот...</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Испрати биткоини на Биткоин адреса</translation> + </message> + <message> + <source>&Verify message...</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>Show information about Bitcoin Core</source> + <translation>Прикажи информации за Биткоин Core</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>&Прикажи / Сокриј</translation> + </message> + <message> + <source>Encrypt the private keys that belong to your wallet</source> + <translation>Криптирај ги приватните клучеви кои припаѓаат на твојот паричник</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Подесувања</translation> + </message> + <message> + <source>&Help</source> + <translation>&Помош</translation> + </message> + <message> + <source>Bitcoin Core</source> + <translation>Биткоин Core</translation> + </message> + <message> + <source>&About Bitcoin Core</source> + <translation>&За Биткоин Core</translation> + </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Обработен %n блок од историјата на трансакции.</numerusform><numerusform>Обработени %n блокови од историјата на трансакции.</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n час</numerusform><numerusform>%n часови</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n ден</numerusform><numerusform>%n денови</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n недела</numerusform><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><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>Up to date</source> + <translation>Во тек</translation> + </message> + <message> + <source>Date: %1 +</source> + <translation>Дата: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>Сума: %1 +</translation> + </message> + <message> + <source>Type: %1 +</source> + <translation>Тип: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>Етикета: %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>Адреса: %1 +</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Bytes:</source> + <translation>Бајти:</translation> + </message> + <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>Change:</source> + <translation>Кусур:</translation> + </message> + <message> + <source>Amount</source> + <translation>Сума</translation> + </message> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Priority</source> + <translation>Приоритет</translation> + </message> + <message> + <source>Copy address</source> + <translation>Копирај адреса</translation> + </message> + <message> + <source>Copy label</source> + <translation>Копирај етикета</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Копирај сума</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>Копирај бајти</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Копирај приоритет</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Копирај прашина</translation> + </message> + <message> + <source>Copy change</source> + <translation>Копирај кусур</translation> + </message> + <message> + <source>highest</source> + <translation>највисок</translation> + </message> + <message> + <source>higher</source> + <translation>повисок</translation> + </message> + <message> + <source>high</source> + <translation>висок</translation> + </message> + <message> + <source>medium-high</source> + <translation>средно-висок</translation> + </message> + <message> + <source>medium</source> + <translation>среден</translation> + </message> + <message> + <source>low-medium</source> + <translation>ниско-среден</translation> + </message> + <message> + <source>low</source> + <translation>низок</translation> + </message> + <message> + <source>lower</source> + <translation>понизок</translation> + </message> + <message> + <source>lowest</source> + <translation>најнизок</translation> + </message> + <message> + <source>none</source> + <translation>нема</translation> + </message> + <message> + <source>This label turns red if the transaction size is greater than 1000 bytes.</source> + <translation>Оваа етикета станува црвена ако големината на трансакцијата е поголема од 1000 бајти.</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>yes</source> + <translation>да</translation> + </message> + <message> + <source>no</source> + <translation>не</translation> + </message> + <message> + <source>Transactions with higher priority are more likely to get included into a block.</source> + <translation>Трансакциите со повисок приоритет имаат поголеми шанси да бидат вклучени во блок.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(без етикета)</translation> + </message> + <message> + <source>(change)</source> + <translation>(кусур)</translation> + </message> +</context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Измени Адреса</translation> + </message> + <message> + <source>&Label</source> + <translation>&Етикета</translation> + </message> + <message> + <source>&Address</source> + <translation>&Адреса</translation> + </message> + </context> +<context> + <name>FreespaceChecker</name> + <message> + <source>name</source> + <translation>име</translation> + </message> + </context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткоин Core</translation> + </message> + <message> + <source>version</source> + <translation>верзија</translation> + </message> + <message> + <source>(%1-bit)</source> + <translation>(%1-бит)</translation> + </message> + <message> + <source>About Bitcoin Core</source> + <translation>За Биткоин Core</translation> + </message> + </context> +<context> + <name>Intro</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткоин Core</translation> + </message> + <message> + <source>Error</source> + <translation>Грешка</translation> + </message> + </context> +<context> + <name>OpenURIDialog</name> + <message> + <source>Open URI</source> + <translation>Отвори URI</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> + </context> +<context> + <name>OptionsDialog</name> + <message> + <source>Options</source> + <translation>Опции</translation> + </message> + <message> + <source>MB</source> + <translation>МБ</translation> + </message> + <message> + <source>&Network</source> + <translation>&Мрежа</translation> + </message> + <message> + <source>W&allet</source> + <translation>П&аричник</translation> + </message> + <message> + <source>&Window</source> + <translation>&Прозорец</translation> + </message> + <message> + <source>&OK</source> + <translation>&ОК</translation> + </message> + <message> + <source>&Cancel</source> + <translation>&Откажи</translation> + </message> + <message> + <source>none</source> + <translation>нема</translation> + </message> + </context> +<context> + <name>OverviewPage</name> + <message> + <source>Total:</source> + <translation>Вкупно:</translation> + </message> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + <message> + <source>Amount</source> + <translation>Сума</translation> + </message> + <message> + <source>%1 d</source> + <translation>%1 д</translation> + </message> + <message> + <source>%1 h</source> + <translation>%1 ч</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 м</translation> + </message> + <message> + <source>%1 s</source> + <translation>%1 с</translation> + </message> + <message> + <source>%1 ms</source> + <translation>%1 мс</translation> + </message> +</context> +<context> + <name>QRImageWidget</name> + <message> + <source>&Save Image...</source> + <translation>&Сними Слика...</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Сними QR Код</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG Слика (*.png)</translation> + </message> +</context> +<context> + <name>RPCConsole</name> + <message> + <source>Network</source> + <translation>Мрежа</translation> + </message> + <message> + <source>Name</source> + <translation>Име</translation> + </message> + <message> + <source>Number of connections</source> + <translation>Број на конекции</translation> + </message> + <message> + <source>Block chain</source> + <translation>Block chain</translation> + </message> + <message> + <source>Sent</source> + <translation>Испратени</translation> + </message> + <message> + <source>Version</source> + <translation>Верзија</translation> + </message> + <message> + <source>&Console</source> + <translation>&Конзола</translation> + </message> + <message> + <source>%1 B</source> + <translation>%1 Б</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 КБ</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 МБ</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 ГБ</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + <message> + <source>&Amount:</source> + <translation>&Сума:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Етикета:</translation> + </message> + <message> + <source>&Message:</source> + <translation>&Порака:</translation> + </message> + <message> + <source>Show</source> + <translation>Прикажи</translation> + </message> + <message> + <source>Copy label</source> + <translation>Копирај етикета</translation> + </message> + <message> + <source>Copy message</source> + <translation>Копирај порака</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Копирај сума</translation> + </message> +</context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>QR Code</source> + <translation>QR Код</translation> + </message> + <message> + <source>Copy &URI</source> + <translation>Копирај &URI</translation> + </message> + <message> + <source>Copy &Address</source> + <translation>Копирај &Адреса</translation> + </message> + <message> + <source>&Save Image...</source> + <translation>&Сними Слика...</translation> + </message> + <message> + <source>URI</source> + <translation>URI</translation> + </message> + <message> + <source>Address</source> + <translation>Адреса</translation> + </message> + <message> + <source>Amount</source> + <translation>Сума</translation> + </message> + <message> + <source>Label</source> + <translation>Етикета</translation> + </message> + <message> + <source>Message</source> + <translation>Порака</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Label</source> + <translation>Етикета</translation> + </message> + <message> + <source>Message</source> + <translation>Порака</translation> + </message> + <message> + <source>Amount</source> + <translation>Сума</translation> + </message> + <message> + <source>(no label)</source> + <translation>(без етикета)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Bytes:</source> + <translation>Бајти:</translation> + </message> + <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>Change:</source> + <translation>Кусур:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Прашина:</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Копирај количина</translation> + </message> + <message> + <source>Copy amount</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>Копирај бајти</translation> + </message> + <message> + <source>Copy priority</source> + <translation>Копирај приоритет</translation> + </message> + <message> + <source>Copy change</source> + <translation>Копирај кусур</translation> + </message> + <message> + <source>(no label)</source> + <translation>(без етикета)</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Копирај прашина</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>Сума:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Етикета:</translation> + </message> + <message> + <source>Message:</source> + <translation>Порака:</translation> + </message> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + <message> + <source>Bitcoin Core</source> + <translation>Биткоин Core</translation> + </message> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Message</source> + <translation>Порака</translation> + </message> + <message> + <source>Amount</source> + <translation>Сума</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Label</source> + <translation>Етикета</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Copy address</source> + <translation>Копирај Адреса</translation> + </message> + <message> + <source>Copy label</source> + <translation>Копирај етикета</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Копирај сума</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Експортирањето не Успеа</translation> + </message> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Label</source> + <translation>Етикета</translation> + </message> + <message> + <source>Address</source> + <translation>Адреса</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + <message> + <source>&Export</source> + <translation>&Експорт</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Експортирај ги податоците од активното јазиче во датотека</translation> + </message> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>Опции:</translation> + </message> + <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_mn.ts b/src/qt/locale/bitcoin_mn.ts index d1a5976224..b790010066 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -234,6 +234,10 @@ <translation>&Нууц Үгийг Солих...</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Хүлээн авах хаяг</translation> + </message> + <message> <source>Change the passphrase used for wallet encryption</source> <translation>Түрүйвчийг цоожлох нууц үгийг солих</translation> </message> @@ -270,6 +274,10 @@ <translation>Алдаа</translation> </message> <message> + <source>Information</source> + <translation>Мэдээллэл</translation> + </message> + <message> <source>Up to date</source> <translation>Шинэчлэгдсэн</translation> </message> @@ -422,6 +430,14 @@ <translation>проксигийн IP хаяг (жишээ нь: IPv4: 127.0.0.1 / IPv6: ::1)</translation> </message> <message> + <source>&Network</source> + <translation>Сүлжээ</translation> + </message> + <message> + <source>W&allet</source> + <translation>Түрүйвч</translation> + </message> + <message> <source>Client restart required to activate changes.</source> <translation>Ѳѳрчлѳлтүүдийг идэвхижүүлхийн тулд клиентийг ахин эхлүүлэх шаардлагтай</translation> </message> @@ -523,10 +539,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Хэмжээ:</translation> + </message> + <message> <source>&Label:</source> <translation>&Шошго:</translation> </message> <message> + <source>&Message:</source> + <translation>Зурвас:</translation> + </message> + <message> <source>Show</source> <translation>Харуул</translation> </message> @@ -554,6 +578,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>Хаягийг &Хуулбарлах</translation> + </message> + <message> <source>Address</source> <translation>Хаяг</translation> </message> @@ -714,6 +742,10 @@ <source>Message:</source> <translation>Зурвас:</translation> </message> + <message> + <source>Pay To:</source> + <translation>Тѳлѳх хаяг:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1034,6 +1066,10 @@ <translation>Түрүйвчийн сонголтууд:</translation> </message> <message> + <source>Information</source> + <translation>Мэдээллэл</translation> + </message> + <message> <source>Loading addresses...</source> <translation>Хаягуудыг ачааллаж байна...</translation> </message> diff --git a/src/qt/locale/bitcoin_ms_MY.ts b/src/qt/locale/bitcoin_ms_MY.ts index 8f6676e484..df98dd8396 100644 --- a/src/qt/locale/bitcoin_ms_MY.ts +++ b/src/qt/locale/bitcoin_ms_MY.ts @@ -122,6 +122,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Salin Alamat</translation> + </message> + <message> <source>Address</source> <translation>Alamat</translation> </message> diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index c36e1af1d8..9236ac86fe 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>kommandolinjevalg</translation> </message> + <message> + <source>UI Options:</source> + <translation>Grensesnittvalg:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Velg datakatalog for oppstart (default: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Sett språk, for eksempel "nb_NO" (default: system-«locale»)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Begynn minimert</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Sett SSL-rootsertifikat for betalingshenvendelser (default: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Vis velkomstbilde ved oppstart (default: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Nullstill alle oppsettendringer gjort via det grafiske grensesnittet</translation> + </message> </context> <context> <name>Intro</name> @@ -1478,6 +1506,18 @@ <translation>Nåværende antall blokker</translation> </message> <message> + <source>Memory Pool</source> + <translation>Minnepool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Nåværende antall transaksjoner</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Minnebruk</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Åpne Bitcoin Core sin loggfil for feilsøk fra gjeldende datamappe. Dette kan ta noen sekunder for store loggfiler.</translation> </message> @@ -2920,6 +2960,10 @@ <translation>Feil: En fatal intern feil oppstod, se debug.log for detaljer</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Gebyr (i %s/kB) for å legge til i transaksjoner du sender (standardverdi: %s)</translation> + </message> + <message> <source>Pruning blockstore...</source> <translation>Beskjærer blokklageret...</translation> </message> @@ -2996,10 +3040,6 @@ <translation>Hvitelist noder som kobler til fra den oppgitte nettmasken eller IP-adressen. Kan oppgis flere ganger.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(standardverdi: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool må være minst %d MB</translation> </message> @@ -3272,10 +3312,6 @@ <translation>Kan ikke løse -whitebind-adresse: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Velg datamappe ved oppstart (standard: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Koble til via SOCKS5-proxy</translation> </message> @@ -3364,22 +3400,10 @@ <translation>Send transaksjoner uten transaksjonsgebyr hvis mulig (standardverdi: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Sett SSL-rotsertifikat for betalingsetterspørring (standard: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Sett språk, for eksempel "nb_NO" (standardverdi: fra operativsystem)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Vis alle feilsøkingsvalg (bruk: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Vis splashskjerm ved oppstart (standardverdi: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Krymp filen debug.log når klienten starter (standardverdi: 1 hvis uten -debug)</translation> </message> @@ -3388,10 +3412,6 @@ <translation>Signering av transaksjon feilet</translation> </message> <message> - <source>Start minimized</source> - <translation>Start minimert</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Transaksjonsbeløpet er for lite til å betale gebyr</translation> </message> @@ -3424,10 +3444,6 @@ <translation>Transaksjonen er for stor</translation> </message> <message> - <source>UI Options:</source> - <translation>Innstillinger for Brukergrensesnitt:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Kan ikke binde til %s på denne datamaskinen (binding returnerte feilen %s)</translation> </message> @@ -3508,6 +3524,10 @@ <translation>Feil ved lesing av wallet.dat! Alle nøkler lest riktig, men transaksjonsdataene eller oppføringer i adresseboken mangler kanskje eller er feil.</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Gebyrer (i %s/Kb) mindre enn dette anses som null gebyr for laging av transaksjoner (standardverdi: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Hvor grundig blokkverifiseringen til -checkblocks er (0-4, standardverdi: %u)</translation> </message> @@ -3524,6 +3544,10 @@ <translation>Ta ut feilsøkingsinformasjon (standardverdi: %u, bruk av <category> er valgfritt)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Støtte filtrering av blokker og transaksjoner med bloomfiltre (standardverdi: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>Total lengde av nettverks-versionstreng (%i) er over maks lengde (%i). Reduser tallet eller størrelsen av uacomments.</translation> </message> @@ -3540,6 +3564,10 @@ <translation>Bruk separate SOCKS5 proxyer for å nå noder via Tor skjulte tjenester (standardverdi: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Brukernavn og hashet passord for JSON-RPC tilkoblinger. Feltet <userpw> kommer i formatet: <USERNAME>:<SALT>$<HASH>. Et Python-skript er inkludert i share/rpcuser. Dette alternativet kan angis flere ganger</translation> + </message> + <message> <source>(default: %s)</source> <translation>(standardverdi: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index c307f0ab6a..8457a9ab50 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -59,7 +59,7 @@ </message> <message> <source>Sending addresses</source> - <translation>Verstuur adressen</translation> + <translation>Verstuuradressen</translation> </message> <message> <source>Receiving addresses</source> @@ -67,11 +67,11 @@ </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. Controleer altijd het bedrag en het ontvang adres voordat u uw bitcoins verzendt.</translation> + <translation>Dit zijn uw Bitcoinadressen om betalingen mee te doen. Controleer altijd het bedrag en het ontvang adres voordat u uw bitcoins verstuurt.</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>Dit zijn uw Bitcoin-adressen waarmee u kunt betalen. We raden u aan om een nieuw ontvangstadres voor elke transactie te gebruiken.</translation> + <translation>Dit zijn uw Bitcoinadressen waarmee u kunt betalen. We raden u aan om een nieuw ontvangstadres voor elke transactie te gebruiken.</translation> </message> <message> <source>Copy &Label</source> @@ -157,7 +157,7 @@ </message> <message> <source>Confirm wallet encryption</source> - <translation>Bevestig versleuteling van de portemonnee</translation> + <translation>Bevestig versleuteling van uw portemonnee</translation> </message> <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> @@ -177,7 +177,7 @@ </message> <message> <source>Warning: The Caps Lock key is on!</source> - <translation>Waarschuwing: De Caps-Lock-toets staat aan!</translation> + <translation>Waarschuwing: De Caps Locktoets staat aan!</translation> </message> <message> <source>Wallet encrypted</source> @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/Netmasker</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Geband tot</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -251,11 +259,11 @@ </message> <message> <source>Browse transaction history</source> - <translation>Blader door transactieverleden</translation> + <translation>Blader door transactiegescheidenis</translation> </message> <message> <source>E&xit</source> - <translation>&Afsluiten</translation> + <translation>A&fsluiten</translation> </message> <message> <source>Quit application</source> @@ -271,7 +279,7 @@ </message> <message> <source>&Options...</source> - <translation>O&pties...</translation> + <translation>&Opties...</translation> </message> <message> <source>&Encrypt Wallet...</source> @@ -287,11 +295,11 @@ </message> <message> <source>&Sending addresses...</source> - <translation>V&erstuur adressen...</translation> + <translation>&Verstuuradressen...</translation> </message> <message> <source>&Receiving addresses...</source> - <translation>O&ntvang adressen...</translation> + <translation>&Ontvang adressen...</translation> </message> <message> <source>Open &URI...</source> @@ -299,7 +307,7 @@ </message> <message> <source>Bitcoin Core client</source> - <translation>Bitcoin Kern applicatie</translation> + <translation>Bitcoin Coreapplicatie</translation> </message> <message> <source>Importing blocks from disk...</source> @@ -343,7 +351,7 @@ </message> <message> <source>&Send</source> - <translation>&Versturen</translation> + <translation>&Verstuur</translation> </message> <message> <source>&Receive</source> @@ -351,7 +359,7 @@ </message> <message> <source>Show information about Bitcoin Core</source> - <translation>Toon informatie over bitcoin kern</translation> + <translation>Toon informatie over Bitcoin Core</translation> </message> <message> <source>&Show / Hide</source> @@ -391,11 +399,11 @@ </message> <message> <source>Bitcoin Core</source> - <translation>Bitcoin Kern</translation> + <translation>Bitcoin Core</translation> </message> <message> <source>Request payments (generates QR codes and bitcoin: URIs)</source> - <translation>Vraag betaling aan (genereert QR codes en bitcoin: URIs)</translation> + <translation>Vraag betaling aan (genereert QR-codes en bitcoin: URI's)</translation> </message> <message> <source>&About Bitcoin Core</source> @@ -407,7 +415,7 @@ </message> <message> <source>Show the list of used sending addresses and labels</source> - <translation>Toon de lijst met gebruikt verzend adressen en labels</translation> + <translation>Toon de lijst met gebruikte verstuuradressen en -labels</translation> </message> <message> <source>Show the list of used receiving addresses and labels</source> @@ -419,15 +427,15 @@ </message> <message> <source>&Command-line options</source> - <translation>&Commandoregel-opties</translation> + <translation>&Opdrachytregelopties</translation> </message> <message> <source>Show the Bitcoin Core help message to get a list with possible Bitcoin command-line options</source> - <translation>Toon het Bitcoin Core hulpbericht om een lijst te krijgen met mogelijke Bitcoin commandoregelopties</translation> + <translation>Toon het Bitcoin Core hulpbericht om een lijst te krijgen met mogelijke Bitcoinopdrachtregelopties</translation> </message> <message numerus="yes"> <source>%n active connection(s) to Bitcoin network</source> - <translation><numerusform>%n actieve connectie naar Bitcoin netwerk</numerusform><numerusform>%n actieve connecties naar Bitcoin netwerk</numerusform></translation> + <translation><numerusform>%n actieve verbinding met Bitcoinnetwerk</numerusform><numerusform>%n actieve verbindingen met Bitcoinnetwerk</numerusform></translation> </message> <message> <source>No block source available...</source> @@ -435,11 +443,11 @@ </message> <message numerus="yes"> <source>Processed %n block(s) of transaction history.</source> - <translation><numerusform>%n blok aan transactie geschiedenis verwerkt.</numerusform><numerusform>%n blokken aan transactie geschiedenis verwerkt.</numerusform></translation> + <translation><numerusform>%n blok aan transactiegeschiedenis verwerkt.</numerusform><numerusform>%n blokken aan transactiegeschiedenis verwerkt.</numerusform></translation> </message> <message numerus="yes"> <source>%n hour(s)</source> - <translation><numerusform>%n uur</numerusform><numerusform>%n uur</numerusform></translation> + <translation><numerusform>%n uur</numerusform><numerusform>%n uren</numerusform></translation> </message> <message numerus="yes"> <source>%n day(s)</source> @@ -455,7 +463,7 @@ </message> <message numerus="yes"> <source>%n year(s)</source> - <translation><numerusform>%n jaar</numerusform><numerusform>%n jaar</numerusform></translation> + <translation><numerusform>%n jaar</numerusform><numerusform>%n jaren</numerusform></translation> </message> <message> <source>%1 behind</source> @@ -521,7 +529,7 @@ </message> <message> <source>Sent transaction</source> - <translation>Verzonden transactie</translation> + <translation>Verstuurde transactie</translation> </message> <message> <source>Incoming transaction</source> @@ -567,7 +575,7 @@ </message> <message> <source>Fee:</source> - <translation>Vergoeding:</translation> + <translation>Transactiekosten:</translation> </message> <message> <source>Dust:</source> @@ -575,7 +583,7 @@ </message> <message> <source>After Fee:</source> - <translation>Na vergoeding:</translation> + <translation>Naheffing:</translation> </message> <message> <source>Change:</source> @@ -651,11 +659,11 @@ </message> <message> <source>Copy fee</source> - <translation>Kopieer vergoeding</translation> + <translation>Kopieerkosten</translation> </message> <message> <source>Copy after fee</source> - <translation>Kopieer na vergoeding</translation> + <translation>Kopieernaheffing</translation> </message> <message> <source>Copy bytes</source> @@ -743,15 +751,15 @@ </message> <message> <source>This means a fee of at least %1 per kB is required.</source> - <translation>Dit betekent dat een vergoeding van minimaal %1 per kB nodig is.</translation> + <translation>Dit betekent dat kosten van minimaal %1 per kB aan verbonden zijn.</translation> </message> <message> <source>Can vary +/- 1 byte per input.</source> - <translation>Kan +/- byte per invoer variëren.</translation> + <translation>Kan +/- 1 byte per invoer variëren.</translation> </message> <message> <source>Transactions with higher priority are more likely to get included into a block.</source> - <translation>Transacties met een hogere prioriteit zullen eerder in een block gezet worden.</translation> + <translation>Transacties met een hogere prioriteit zullen eerder in een blok gezet worden.</translation> </message> <message> <source>(no label)</source> @@ -782,7 +790,7 @@ </message> <message> <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> - <translation>Het adres dat bij dit adres item hoort. Dit kan alleen bewerkt worden voor verstuur adressen.</translation> + <translation>Het adres dat bij dit adresitem hoort. Dit kan alleen bewerkt worden voor verstuuradressen.</translation> </message> <message> <source>&Address</source> @@ -794,7 +802,7 @@ </message> <message> <source>New sending address</source> - <translation>Nieuw adres om naar te verzenden</translation> + <translation>Nieuw adres om naar te versturen</translation> </message> <message> <source>Edit receiving address</source> @@ -802,7 +810,7 @@ </message> <message> <source>Edit sending address</source> - <translation>Bewerk adres om naar te verzenden</translation> + <translation>Bewerk adres om naar te versturen</translation> </message> <message> <source>The entered address "%1" is already in the address book.</source> @@ -837,7 +845,7 @@ </message> <message> <source>Path already exists, and is not a directory.</source> - <translation>Communicatiepad bestaat al, en is geen folder.</translation> + <translation>Communicatiepad bestaat al, en is geen map.</translation> </message> <message> <source>Cannot create data directory here.</source> @@ -848,7 +856,7 @@ <name>HelpMessageDialog</name> <message> <source>Bitcoin Core</source> - <translation>Bitcoin Kern</translation> + <translation>Bitcoin Core</translation> </message> <message> <source>version</source> @@ -864,7 +872,7 @@ </message> <message> <source>Command-line options</source> - <translation>Commandoregel-opties</translation> + <translation>Opdrachtregelopties</translation> </message> <message> <source>Usage:</source> @@ -872,7 +880,35 @@ </message> <message> <source>command-line options</source> - <translation>commandoregel-opties</translation> + <translation>opdrachtregelopties</translation> + </message> + <message> + <source>UI Options:</source> + <translation>UI-opties:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Kies gegevensmap bij opstarten (standaard: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Stel taal in, bijvoorbeeld "nl_NL" (standaard: systeemlocale)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Geminimaliseerd starten</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Zet SSL-rootcertificaat voor betalingsverzoeken (standaard: -systeem-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Toon opstartscherm bij opstarten (standaard: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Reset alle wijzigingen aan instellingen gedaan met de GUI</translation> </message> </context> <context> @@ -891,7 +927,7 @@ </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>Bitcoin Core zal een kopie van de Bitcoin blokketen downloaden en opslaan. Tenminste %1 GB aan data wordt opgeslagen in deze map en het zal groeien in de tijd. De portemonnee wordt ook in deze map opgeslagen.</translation> + <translation>Bitcoin Core zal een kopie van de Bitcoinblokketen downloaden en opslaan. Tenminste %1 GB aan data wordt opgeslagen in deze map en het zal groeien in de tijd. De portemonnee wordt ook in deze map opgeslagen.</translation> </message> <message> <source>Use the default data directory</source> @@ -903,7 +939,7 @@ </message> <message> <source>Bitcoin Core</source> - <translation>Bitcoin Kern</translation> + <translation>Bitcoin Core</translation> </message> <message> <source>Error: Specified data directory "%1" cannot be created.</source> @@ -915,7 +951,7 @@ </message> <message numerus="yes"> <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> + <translation><numerusform>%n GB aan vrije opslagruimte beschikbaar</numerusform><numerusform>%n GB aan vrije opslagruimte beschikbaar</numerusform></translation> </message> <message numerus="yes"> <source>(of %n GB needed)</source> @@ -957,7 +993,7 @@ </message> <message> <source>Size of &database cache</source> - <translation>Grootte van de &database cache</translation> + <translation>Grootte van de &databasecache</translation> </message> <message> <source>MB</source> @@ -989,7 +1025,7 @@ </message> <message> <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> - <translation>Derde partijen URL's (bijvoorbeeld block explorer) dat in de transacties tab verschijnen als contextmenu elementen. %s in de URL is vervangen door transactie hash. Verscheidene URL's zijn gescheiden door een verticale streep |. </translation> + <translation>URL's van derden (bijvoorbeeld block explorer) die in de transacties tab verschijnen als contextmenuelementen. %s in de URL is vervangen door transactiehash. Verscheidene URL's zijn gescheiden door een verticale streep |. </translation> </message> <message> <source>Third party transaction URLs</source> @@ -997,7 +1033,7 @@ </message> <message> <source>Active command-line options that override above options:</source> - <translation>Actieve commandoregelopties die bovenstaande opties overschrijven:</translation> + <translation>Actieve opdrachtregelopties die bovenstaande opties overschrijven:</translation> </message> <message> <source>Reset all client options to default.</source> @@ -1013,11 +1049,11 @@ </message> <message> <source>Automatically start Bitcoin Core after logging in to the system.</source> - <translation>Bitcoin Kern automatisch starten bij inloggen.</translation> + <translation>Bitcoin Core automatisch starten bij inloggen.</translation> </message> <message> <source>&Start Bitcoin Core on system login</source> - <translation>&Start Bitcoin Kern tijdens login.</translation> + <translation>&Start Bitcoin Core tijdens login.</translation> </message> <message> <source>(0 = auto, <0 = leave that many cores free)</source> @@ -1045,7 +1081,7 @@ </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>Open de Bitcoin-poort automatisch op de router. Dit werkt alleen als de router UPnP ondersteunt en het aanstaat.</translation> + <translation>Open de Bitcoinpoort automatisch op de router. Dit werkt alleen als de router UPnP ondersteunt en het aanstaat.</translation> </message> <message> <source>Map port using &UPnP</source> @@ -1053,7 +1089,7 @@ </message> <message> <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> - <translation>Verbind met het Bitcoin netwerk via een SOCKS5 proxy.</translation> + <translation>Verbind met het Bitcoinnetwerk via een SOCKS5 proxy.</translation> </message> <message> <source>&Connect through SOCKS5 proxy (default proxy):</source> @@ -1072,12 +1108,40 @@ <translation>Poort van de proxy (bijv. 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Gebruikt om peers te bereiken via:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Vertoningen, als de opgegeven standaard SOCKS5-proxy is gebruikt om peers te benaderen via dit type netwerk.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Maak verbinding met Bitcoinnetwerk door een aparte SOCKS5-proxy voor verborgen diensten van Tor.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Gebruikt aparte SOCKS5-proxy om peers te bereiken via verborgen diensten van Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Scherm</translation> </message> <message> <source>Show only a tray icon after minimizing the window.</source> - <translation>Laat alleen een systeemvak-icoon zien wanneer het venster geminimaliseerd is</translation> + <translation>Laat alleen een systeemvakicoon zien wanneer het venster geminimaliseerd is</translation> </message> <message> <source>&Minimize to the tray instead of the taskbar</source> @@ -1085,7 +1149,7 @@ </message> <message> <source>M&inimize on close</source> - <translation>Minimaliseer bij sluiten van het &venster</translation> + <translation>M&inimaliseer bij sluiten van het venster</translation> </message> <message> <source>&Display</source> @@ -1101,7 +1165,7 @@ </message> <message> <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> - <translation>Kies de standaard onderverdelingseenheid om weer te geven in uw programma, en voor het versturen van munten</translation> + <translation>Kies de standaardonderverdelingseenheid om weer te geven in uw programma, en voor het versturen van munten</translation> </message> <message> <source>Whether to show coin control features or not.</source> @@ -1113,7 +1177,7 @@ </message> <message> <source>&Cancel</source> - <translation>Ann&uleren</translation> + <translation>&Annuleren</translation> </message> <message> <source>default</source> @@ -1259,7 +1323,7 @@ </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> + <translation>URI kan niet verwerkt worden! Dit kan het gevolg zijn van een ongeldig Bitcoinadres of misvormde URI-parameters.</translation> </message> <message> <source>Payment request file handling</source> @@ -1267,7 +1331,7 @@ </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> + <translation>Betalingsverzoekbestand kan niet gelezen of verwerkt worden! Dit kan veroorzaakt worden door een ongeldig betalingsverzoek-bestand.</translation> </message> <message> <source>Payment request expired.</source> @@ -1317,6 +1381,10 @@ <translation>User Agent</translation> </message> <message> + <source>Node/Service</source> + <translation>Node/Dienst</translation> + </message> + <message> <source>Ping Time</source> <translation>Ping tijd</translation> </message> @@ -1329,11 +1397,11 @@ </message> <message> <source>Enter a Bitcoin address (e.g. %1)</source> - <translation>Voer een Bitcoin-adres in (bijv. %1)</translation> + <translation>Voer een Bitcoinadres in (bijv. %1)</translation> </message> <message> <source>%1 d</source> - <translation>%1d</translation> + <translation>%1 d</translation> </message> <message> <source>%1 h</source> @@ -1345,7 +1413,7 @@ </message> <message> <source>%1 s</source> - <translation>%1s</translation> + <translation>%1 s</translation> </message> <message> <source>None</source> @@ -1438,8 +1506,20 @@ <translation>Huidig aantal blokken</translation> </message> <message> + <source>Memory Pool</source> + <translation>Geheugenpoel</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Huidig aantal transacties</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Geheugengebruik</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> - <translation>Open het Bitcoin Core debug logbestand van de huidige gegevens directory. Dit kan enkele seconden duren voor grote logbestanden.</translation> + <translation>Open het Bitcoin Core debuglogbestand van de huidige gegevensmap. Dit kan enkele seconden duren voor grote logbestanden.</translation> </message> <message> <source>Received</source> @@ -1454,10 +1534,18 @@ <translation>&Peers</translation> </message> <message> + <source>Banned peers</source> + <translation>Gebande 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>Whitelisted</source> + <translation>Toegestaan</translation> + </message> + <message> <source>Direction</source> <translation>Directie</translation> </message> @@ -1466,12 +1554,24 @@ <translation>Versie</translation> </message> <message> + <source>Starting Block</source> + <translation>Start Blok</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Gesynchroniseerde headers</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Gesynchroniseerde blokken</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> <message> <source>Services</source> - <translation>Services</translation> + <translation>Diensten</translation> </message> <message> <source>Ban Score</source> @@ -1494,6 +1594,18 @@ <translation>Ping Tijd</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>De tijdsduur van een op het moment openstaande ping.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Pingwachttijd</translation> + </message> + <message> + <source>Time Offset</source> + <translation>Tijdcompensatie</translation> + </message> + <message> <source>Last block time</source> <translation>Tijd laatste blok</translation> </message> @@ -1531,13 +1643,41 @@ </message> <message> <source>Debug log file</source> - <translation>Debug-logbestand</translation> + <translation>Debuglogbestand</translation> </message> <message> <source>Clear console</source> <translation>Maak console leeg</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>&Verbreek Verbinding Node</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Ban Node voor</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &uur</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &dag</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &week</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &jaar</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>&Maak Ban Ongedaan voor Node</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Welkom op de Bitcoin Core RPC console.</translation> </message> @@ -1547,7 +1687,7 @@ </message> <message> <source>Type <b>help</b> for an overview of available commands.</source> - <translation>Typ <b>help</b> voor een overzicht van de beschikbare commando's.</translation> + <translation>Typ <b>help</b> voor een overzicht van de beschikbare opdrachten.</translation> </message> <message> <source>%1 B</source> @@ -1566,6 +1706,10 @@ <translation>%1 Gb</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(node id: %1)</translation> + </message> + <message> <source>via %1</source> <translation>via %1</translation> </message> @@ -1618,7 +1762,7 @@ </message> <message> <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> - <translation>Een optioneel bericht om bij te voegen aan het betalingsverzoek, dewelke zal getoond worden wanneer het verzoek is geopend. Opermerking: Het bericht zal niet worden verzonden met de betaling over het Bitcoin netwerk.</translation> + <translation>Een optioneel bericht om bij te voegen aan het betalingsverzoek, welke zal getoond worden wanneer het verzoek is geopend. Opmerking: Het bericht zal niet worden verzonden met de betaling over het Bitcoinnetwerk.</translation> </message> <message> <source>An optional label to associate with the new receiving address.</source> @@ -1767,7 +1911,7 @@ <name>SendCoinsDialog</name> <message> <source>Send Coins</source> - <translation>Verstuur munten</translation> + <translation>Verstuurde munten</translation> </message> <message> <source>Coin Control Features</source> @@ -1803,11 +1947,11 @@ </message> <message> <source>Fee:</source> - <translation>Vergoeding:</translation> + <translation>Kosten:</translation> </message> <message> <source>After Fee:</source> - <translation>Na vergoeding:</translation> + <translation>Naheffing:</translation> </message> <message> <source>Change:</source> @@ -1815,7 +1959,7 @@ </message> <message> <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> - <translation>Als dit is geactiveerd, maar het wisselgeldadres is leeg of ongeldig, dan wordt het wisselgeld verzonden naar een nieuw gegenereerd adres.</translation> + <translation>Als dit is geactiveerd, maar het wisselgeldadres is leeg of ongeldig, dan wordt het wisselgeld verstuurd naar een nieuw gegenereerd adres.</translation> </message> <message> <source>Custom change address</source> @@ -1831,7 +1975,7 @@ </message> <message> <source>collapse fee-settings</source> - <translation>Transactiekosteninstellingen verbergen</translation> + <translation>verberg kosteninstellingen</translation> </message> <message> <source>per kilobyte</source> @@ -1867,7 +2011,7 @@ </message> <message> <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> - <translation>(Slimme vergoeding is nog niet geïnitialiseerd. Dit duurt meestal een paar blokken...)</translation> + <translation>(Slimme transactiekosten is nog niet geïnitialiseerd. Dit duurt meestal een paar blokken...)</translation> </message> <message> <source>Confirmation time:</source> @@ -1883,7 +2027,7 @@ </message> <message> <source>Send as zero-fee transaction if possible</source> - <translation>Verstuur als transactie zonder verzendkosten indien mogelijk</translation> + <translation>Indien mogelijk, verstuur zonder transactiekosten</translation> </message> <message> <source>(confirmation may take longer)</source> @@ -1891,7 +2035,7 @@ </message> <message> <source>Send to multiple recipients at once</source> - <translation>Verstuur aan verschillende ontvangers ineens</translation> + <translation>Verstuur in een keer aan verschillende ontvangers</translation> </message> <message> <source>Add &Recipient</source> @@ -1919,7 +2063,7 @@ </message> <message> <source>S&end</source> - <translation>&Verstuur</translation> + <translation>V&erstuur</translation> </message> <message> <source>Confirm send coins</source> @@ -1939,11 +2083,11 @@ </message> <message> <source>Copy fee</source> - <translation>Kopieer vergoeding</translation> + <translation>Kopieerkosten</translation> </message> <message> <source>Copy after fee</source> - <translation>Kopieer na vergoeding</translation> + <translation>Kopieernaheffing</translation> </message> <message> <source>Copy bytes</source> @@ -1958,6 +2102,10 @@ <translation>Kopieer wijziging</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Totaalbedrag %1</translation> + </message> + <message> <source>or</source> <translation>of</translation> </message> @@ -1982,10 +2130,22 @@ <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 absurdly high fee.</source> + <translation>Transactiekosten van meer dan %1 wordt beschouwd als een absurd hoge transactiekosten.</translation> + </message> + <message> <source>Payment request expired.</source> <translation>Betalingsverzoek verlopen.</translation> </message> <message> + <source>Pay only the required fee of %1</source> + <translation>Betaal alleen de verplichte transactiekosten van %1</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Schatting is dat bevestiging begint over %n blok.</numerusform><numerusform>Schatting is dat bevestiging begint over %n blokken.</numerusform></translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Het adres van de ontvanger is niet geldig. Gelieve opnieuw te controleren..</translation> </message> @@ -1995,7 +2155,7 @@ </message> <message> <source>Warning: Invalid Bitcoin address</source> - <translation>Waarschuwing: Ongeldig Bitcoin adres</translation> + <translation>Waarschuwing: Ongeldig Bitcoinadres</translation> </message> <message> <source>(no label)</source> @@ -2011,7 +2171,7 @@ </message> <message> <source>Are you sure you want to send?</source> - <translation>Weet u zeker dat u wilt verzenden?</translation> + <translation>Weet u zeker dat u wilt versturen?</translation> </message> <message> <source>added as transaction fee</source> @@ -2022,7 +2182,7 @@ <name>SendCoinsEntry</name> <message> <source>A&mount:</source> - <translation>Bedra&g:</translation> + <translation>B&edrag:</translation> </message> <message> <source>Pay &To:</source> @@ -2046,7 +2206,7 @@ </message> <message> <source>The Bitcoin address to send the payment to</source> - <translation>Het Bitcoin adres om betaling aan te voldoen</translation> + <translation>Het Bitcoinadres om betaling aan te versturen</translation> </message> <message> <source>Alt+A</source> @@ -2066,11 +2226,11 @@ </message> <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> - <translation>De vergoeding zal worden afgetrokken van het bedrag dat verzonden wordt. De ontvangers zullen minder bitcoins ontvangen dan ingevoerd is in het hoeveelheids veld. Als er meerdere ontvangers geselecteerd zijn, dan wordt de vergoeding gelijk verdeeld.</translation> + <translation>De transactiekosten zal worden afgetrokken van het bedrag dat verstuurd wordt. De ontvangers zullen minder bitcoins ontvangen dan ingevoerd is in het hoeveelheidsveld. Als er meerdere ontvangers geselecteerd zijn, dan worden de transactiekosten gelijk verdeeld.</translation> </message> <message> <source>S&ubtract fee from amount</source> - <translation>Trek de vergoeding af van het bedrag.</translation> + <translation>Trek de transactiekosten a&f van het bedrag.</translation> </message> <message> <source>Message:</source> @@ -2090,7 +2250,7 @@ </message> <message> <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> - <translation>Een bericht dat werd toegevoegd aan de bitcoin: URI dewelke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Bitcoin netwerk.</translation> + <translation>Een bericht dat werd toegevoegd aan de bitcoin: URI welke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Bitcoinnetwerk.</translation> </message> <message> <source>Pay To:</source> @@ -2116,19 +2276,19 @@ <name>SignVerifyMessageDialog</name> <message> <source>Signatures - Sign / Verify a Message</source> - <translation>Handtekeningen - Onderteken een bericht / Verifiëer een handtekening</translation> + <translation>Handtekeningen – Onderteken een bericht / Verifiëer een handtekening</translation> </message> <message> <source>&Sign Message</source> - <translation>O&nderteken Bericht</translation> + <translation>&Onderteken Bericht</translation> </message> <message> <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> - <translation>U kunt berichten/overeenkomsten ondertekenen met uw adres om te bewijzen dat u Bitcoins kunt versturen. Wees voorzichtig met het ondertekenen van iets vaags of willekeurigs, omdat phishing-aanvallen u kunnen proberen te misleiden tot het ondertekenen van overeenkomsten om uw identiteit aan hen toe te vertrouwen. Onderteken alleen volledig gedetailleerde verklaringen voordat u akkoord gaat.</translation> + <translation>U kunt berichten/overeenkomsten ondertekenen met uw adres om te bewijzen dat u Bitcoins kunt versturen. Wees voorzichtig met het ondertekenen van iets vaags of willekeurigs, omdat phishingaanvallen u kunnen proberen te misleiden tot het ondertekenen van overeenkomsten om uw identiteit aan hen toe te vertrouwen. Onderteken alleen volledig gedetailleerde verklaringen voordat u akkoord gaat.</translation> </message> <message> <source>The Bitcoin address to sign the message with</source> - <translation>Het Bitcoin adres om bericht mee te ondertekenen</translation> + <translation>Het Bitcoinadres om bericht mee te ondertekenen</translation> </message> <message> <source>Choose previously used address</source> @@ -2184,7 +2344,7 @@ </message> <message> <source>The Bitcoin address the message was signed with</source> - <translation>Het Bitcoin adres waarmee het bericht ondertekend is</translation> + <translation>Het Bitcoinadres waarmee het bericht ondertekend is</translation> </message> <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> @@ -2255,11 +2415,11 @@ <name>SplashScreen</name> <message> <source>Bitcoin Core</source> - <translation>Bitcoin Kern</translation> + <translation>Bitcoin Core</translation> </message> <message> <source>The Bitcoin Core developers</source> - <translation>De Bitcoin Core ontwikkelaars</translation> + <translation>De Bitcoin Core-ontwikkelaars</translation> </message> <message> <source>[testnet]</source> @@ -2389,7 +2549,7 @@ </message> <message> <source>Debug information</source> - <translation>Debug-informatie</translation> + <translation>Debuginformatie</translation> </message> <message> <source>Transaction</source> @@ -2447,7 +2607,7 @@ </message> <message> <source>Immature (%1 confirmations, will be available after %2)</source> - <translation>immatuur (%1 bevestigingen, zal beschikbaar zijn na %2)</translation> + <translation>Premature (%1 bevestigingen, zal beschikbaar zijn na %2)</translation> </message> <message numerus="yes"> <source>Open for %n more block(s)</source> @@ -2499,7 +2659,7 @@ </message> <message> <source>Sent to</source> - <translation>Verzonden aan</translation> + <translation>Verstuurd aan</translation> </message> <message> <source>Payment to yourself</source> @@ -2534,6 +2694,10 @@ <translation>Of er een alleen-bekijken adres is betrokken bij deze transactie.</translation> </message> <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>Door gebruiker gedefinieerde intentie/doel van de transactie</translation> + </message> + <message> <source>Amount removed from or added to balance.</source> <translation>Bedrag verwijderd van of toegevoegd aan saldo</translation> </message> @@ -2574,7 +2738,7 @@ </message> <message> <source>Sent to</source> - <translation>Verzonden aan</translation> + <translation>Verstuurd aan</translation> </message> <message> <source>To yourself</source> @@ -2613,6 +2777,10 @@ <translation>Kopieer transactie-ID</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Kopieer ruwe transactie</translation> + </message> + <message> <source>Edit label</source> <translation>Bewerk label</translation> </message> @@ -2622,7 +2790,7 @@ </message> <message> <source>Export Transaction History</source> - <translation>Exporteer Transactieverleden</translation> + <translation>Exporteer Transactiegeschiedenis</translation> </message> <message> <source>Watch-only</source> @@ -2634,7 +2802,7 @@ </message> <message> <source>There was an error trying to save the transaction history to %1.</source> - <translation>Er is een fout opgetreden bij het opslaan van het transactieverleden naar %1.</translation> + <translation>Er is een fout opgetreden bij het opslaan van het transactiegeschiedenis naar %1.</translation> </message> <message> <source>Exporting Successful</source> @@ -2642,7 +2810,7 @@ </message> <message> <source>The transaction history was successfully saved to %1.</source> - <translation>Het transactieverleden was succesvol bewaard in %1.</translation> + <translation>Het transactiegeschiedenis was succesvol bewaard in %1.</translation> </message> <message> <source>Comma separated file (*.csv)</source> @@ -2699,7 +2867,7 @@ <name>WalletModel</name> <message> <source>Send Coins</source> - <translation>Verstuur munten</translation> + <translation>Verstuur Munten</translation> </message> </context> <context> @@ -2718,7 +2886,7 @@ </message> <message> <source>Wallet Data (*.dat)</source> - <translation>Portemonnee-data (*.dat)</translation> + <translation>Portemonneedata (*.dat)</translation> </message> <message> <source>Backup Failed</source> @@ -2726,7 +2894,7 @@ </message> <message> <source>There was an error trying to save the wallet data to %1.</source> - <translation>Er is een fout opgetreden bij het wegschrijven van de portemonnee-data naar %1.</translation> + <translation>Er is een fout opgetreden bij het wegschrijven van de portemonneedata naar %1.</translation> </message> <message> <source>The wallet data was successfully saved to %1.</source> @@ -2757,15 +2925,55 @@ </message> <message> <source>Accept command line and JSON-RPC commands</source> - <translation>Aanvaard commandoregel- en JSON-RPC-commando's</translation> + <translation>Aanvaard opdrachtregel- en JSON-RPC-opdrachten</translation> + </message> + <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>Als er geen <categorie> is opgegeven of als de <categorie> 1 is, laat dan alle debugginginformatie zien.</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Maximum totale transactiekosten (in %s) om te gebruiken voor een enkele portemonneetransactie; als dit te laag is ingesteld kan het grote transacties verhinderen (default: %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Check a.u.b. of de datum en tijd van uw computer correct zijn! Als uw klok verkeerd staat zal Bitcoin Core niet correct werken.</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Snoeien is geconfigureerd on het minimum van %d MiB. Gebruik a.u.b. een hoger aantal.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Snoei: laatste portemoneesynchronisatie gaat verder dan de gesnoeide data. U moet -reindex gebruiken (download opnieuw de gehele blokketen voor een weggesnoeide node)</translation> + </message> + <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Beperk benodigde opslag door snoeien (verwijderen) van oude blokken. Deze modus is niet-compatibele met -txindex en -rescan. Waarschuwing: Terugzetten van deze instellingen vereist opnieuw downloaden van gehele de blokketen. (standaard:0 = uitzetten snoeimodus, >%u = doelgrootte in MiB voor blokbestanden)</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>Herscannen is niet mogelijk in de snoeimodus. U moet -reindex gebruiken dat de hele blokketen opnieuw zal downloaden.</translation> </message> <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> <translation>Fout: er is een fout opgetreden, zie debug.log voor details</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Transactiekosten (in %s/kB) toevoegen aan transacties die u doet (standaard: %s)</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Snoei blokopslag...</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> - <translation>Draai in de achtergrond als daemon en aanvaard commando's</translation> + <translation>Draai in de achtergrond als daemon en aanvaard opdrachten</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Niet mogelijk ok HTTP-server te starten. Zie debuglogboek voor details.</translation> </message> <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> @@ -2777,11 +2985,11 @@ </message> <message> <source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source> - <translation>Verwijder alle transacties van de portemonnee en herstel alleen de delen van de blockchain door -rescan tijdens het opstarten</translation> + <translation>Verwijder alle transacties van de portemonnee en herstel alleen de delen van de blokketen door -rescan tijdens het opstarten</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>Uitgegeven onder de MIT software licentie, zie het bijgevoegde bestand COPYING of <http://www.opensource.org/licenses/mit-license.php>.</translation> + <translation>Uitgegeven onder de MIT-softwarelicentie, zie het bijgevoegde bestand COPYING of <http://www.opensource.org/licenses/mit-license.php>.</translation> </message> <message> <source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source> @@ -2789,17 +2997,29 @@ </message> <message> <source>Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)</source> - <translation>Kies het aantal script verificatie processen (%u tot %d, 0 = auto, <0 = laat dit aantal kernen vrij, standaard: %d)</translation> + <translation>Kies het aantal scriptverificatie processen (%u tot %d, 0 = auto, <0 = laat dit aantal kernen vrij, standaard: %d)</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>De blokdatabase bevat een blok dat lijkt uit de toekomst te komen. Dit kan gebeuren omdat de datum en tijd van uw computer niet goed staat. Herbouw de blokdatabase pas nadat u de datum en tijd van uw computer correct heeft ingesteld.</translation> </message> <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> - <translation>Dit is een pre-release testversie - gebruik op eigen risico! Gebruik deze niet voor het delven van munten of handelsdoeleinden</translation> + <translation>Dit is een prerelease testversie – gebruik op eigen risico! Gebruik deze niet voor het delven van munten of handelsdoeleinden</translation> </message> <message> <source>Unable to bind to %s on this computer. Bitcoin Core is probably already running.</source> <translation>Niet in staat om %s te verbinden op deze computer. Bitcoin Core draait waarschijnlijk al.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Gebruik UPnP om de luisterende poort te mappen (standaard: 1 als er geluisterd worden en geen -proxy is meegegeven)</translation> + </message> + <message> + <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> + <translation>WAARSCHUWING: abnormaal hoog aantal blokken is gegenereerd, %d blokken ontvangen in de laatste %d uren (%d verwacht)</translation> + </message> + <message> <source>WARNING: check your network connection, %d blocks received in the last %d hours (%d expected)</source> <translation>WAARSCHUWING: controleer uw netwerkverbinding, %d blokken ontvangen in de laatste %d uren (%d verwacht)</translation> </message> @@ -2820,12 +3040,12 @@ <translation>Goedgekeurde peers die verbinden van het ingegeven netmask of IP adres. Kan meerdere keren gespecificeerd worden.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(standaard: 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool moet tenminste %d MB zijn</translation> </message> <message> <source><category> can be:</source> - <translation><category> kan zijn:</translation> + <translation><categorie> kan zijn:</translation> </message> <message> <source>Block creation options:</source> @@ -2856,6 +3076,22 @@ <translation>Wilt u de blokkendatabase nu herbouwen?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Sta toe om hashblok te publiceren in <adres></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Stat toe om hashtransactie te publiceren in <adres></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Sta toe rauw blok te publiceren in <adres></translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Sta toe ruwe transacties te publiceren in <adres></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Fout bij intialisatie blokkendatabase</translation> </message> @@ -2885,13 +3121,17 @@ </message> <message> <source>Incorrect or no genesis block found. Wrong datadir for network?</source> - <translation>Incorrect of geen genesis-blok gevonden. Verkeerde datamap voor het netwerk?</translation> + <translation>Incorrect of geen genesisblok gevonden. Verkeerde datamap voor het netwerk?</translation> </message> <message> <source>Invalid -onion address: '%s'</source> <translation>Ongeldig -onion adres '%s'</translation> </message> <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>De transactiegeheugenpool moet onder de <n> megabytes blijven (standaard: %u)</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>Niet genoeg file descriptors beschikbaar.</translation> </message> @@ -2900,6 +3140,14 @@ <translation>Verbind alleen met nodes in netwerk <net> (ipv4, ipv6 of onion)</translation> </message> <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Snoeien kan niet worden geconfigureerd met een negatieve waarde.</translation> + </message> + <message> + <source>Prune mode is incompatible with -txindex.</source> + <translation>Snoeimodus is niet-compatibel met -txindex</translation> + </message> + <message> <source>Set database cache size in megabytes (%d to %d, default: %d)</source> <translation>Zet database cache grootte in megabytes (%d tot %d, standaard: %d)</translation> </message> @@ -2912,10 +3160,26 @@ <translation>Specificeer het portemonnee bestand (vanuit de gegevensmap)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Niet-ondersteund argument -benchmark genegeerd, gebruik -debug=bench.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Niet-ondersteund argument -debugnet genegeerd, gebruik -debug=net</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Niet-ondersteund argument -tor gevonden, gebruik -onion.</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>User Agent comment (%s) contains unsafe characters.</source> + <translation>User Agentcommentaar (%s) bevat onveilige karakters.</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Blokken aan het controleren...</translation> </message> @@ -2937,7 +3201,7 @@ </message> <message> <source>You need to rebuild the database using -reindex to change -txindex</source> - <translation>Om -txindex te kunnen veranderen dient u de database opnieuw te bouwen met gebruik van -reindex.</translation> + <translation>Om -txindex te kunnen veranderen dient u de database herbouwen met gebruik van -reindex.</translation> </message> <message> <source>Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times</source> @@ -2960,29 +3224,40 @@ <translation>Creër nieuwe bestanden met standaard systeem bestandsrechten in plaats van umask 077 (alleen effectief met uitgeschakelde portemonnee functionaliteit)</translation> </message> <message> + <source>Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)</source> + <translation>Ontdek eigen IP-adressen (standaard: 1 voor luisteren en geen -externalip of -proxy)</translation> + </message> + <message> <source>Error: Listening for incoming connections failed (listen returned error %s)</source> <translation>Fout: luisteren naar binnenkomende verbindingen mislukt (luisteren gaf foutmelding %s)</translation> </message> <message> <source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source> - <translation>Voer commando uit zodra een waarschuwing is ontvangen of wanneer we een erg lange fork detecteren (%s in commando wordt vervangen door bericht)</translation> + <translation>Voer opdracht uit zodra een waarschuwing is ontvangen of wanneer we een erg lange fork detecteren (%s in opdracht wordt vervangen door bericht)</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Transactiekosten (in %s/kB) kleiner dan dit worden beschouw dat geen transactiekosten in rekening worden gebracht voor doorgeven, mijnen en transactiecreatie (standaard: %s)</translation> </message> <message> <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> - <translation>Als paytxfee niet is ingesteld, het pakket voldoende vergoeding zodat transacties beginnen bevestiging gemiddeld binnen in blokken (default: %u)</translation> + <translation>Als paytxfee niet is ingesteld, voeg voldoende transactiekosten toe zodat transacties starten met bevestigingen binnen in n blokken (standaard: %u)</translation> </message> <message> <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> - <translation>ongeldig bedrag voor -maxtxfee=<amount>: '%s' (moet ten minste de minrelay vergoeding van %s het voorkomen geplakt transacties voorkomen)</translation> + <translation>ongeldig bedrag voor -maxtxfee=<bedrag>: '%s' (moet ten minste de minimale doorgeeftransactiekosten van %s het voorkomen geplakt transacties voorkomen)</translation> </message> <message> <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> - <translation>Maximale grootte va n de gegevens in gegevensdrager transacties we relais en de mijnen -(default: %u)</translation> + <translation>Maximale grootte va n de gegevens in gegevensdragertransacties die we doorgeven en mijnen (standaard: %u)</translation> </message> <message> <source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source> - <translation>Query voor peer- adressen via DNS- lookup , als laag op adressen (default: 1 unless -connect)</translation> + <translation>Query voor peeradressen via DNS- lookup , als laag op adressen (standaard: 1 unless -connect)</translation> + </message> + <message> + <source>Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)</source> + <translation>Gebruik willekeurige inloggegevens voor elke proxyverbinding. Dit maakt streamislatie voor Tor mogelijk (standaard: %u)</translation> </message> <message> <source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source> @@ -2994,7 +3269,7 @@ </message> <message> <source>The transaction amount is too small to send after the fee has been deducted</source> - <translation>Het transactiebedrag is te klein om te versturen nadat de vergoeding in mindering is gebracht</translation> + <translation>Het transactiebedrag is te klein om te versturen nadat de transactiekosten in mindering zijn gebracht</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> @@ -3002,7 +3277,11 @@ </message> <message> <source>Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway</source> - <translation>Goedgekeurde peers kunnen niet ge-DoS-banned worden en hun transacties worden altijd doorgestuurd, zelfs als ze reeds in de mempool aanwezig zijn, nuttig voor bijv. een gateway</translation> + <translation>Goedgekeurde peers kunnen niet ge-DoS-banned worden en hun transacties worden altijd doorgegeven, zelfs als ze reeds in de mempool aanwezig zijn, nuttig voor bijv. een gateway</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>U moet de database herbouwen met -reindex om terug te gaan naar de ongesnoeide modus. Dit zal de gehele blokkketen opnieuw downloaden.</translation> </message> <message> <source>(default: %u)</source> @@ -3010,19 +3289,27 @@ </message> <message> <source>Accept public REST requests (default: %u)</source> - <translation>Accepteer publieke REST-requests (standaard: %u)</translation> + <translation>Accepteer publieke REST-verzoeken (standaard: %u)</translation> </message> <message> <source>Activating best chain...</source> <translation>Beste reeks activeren...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Kan -whitebind adres niet herleiden: '%s'</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Geef transacties altijd door aan goedgekeurde peers (standaard: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Kies de gegevensmap tijdens het opstarten (standaard: 0)</translation> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Probeer privésleutels te herstellen van een corrupte wallet.dat bij opstarten</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Creëer automatisch verborgen dienst van Tor (standaard:%d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Kan -whitebind adres niet herleiden: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3041,6 +3328,10 @@ <translation>Fout bij het lezen van de database, afsluiten. </translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Importeer blokken van externe blk000??.dat-bestand bij opstarten</translation> + </message> + <message> <source>Information</source> <translation>Informatie</translation> </message> @@ -3050,7 +3341,7 @@ </message> <message> <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> - <translation>Ongeldig bedrag voor -maxtxfee=<amount>: '%s'</translation> + <translation>Ongeldig bedrag voor -maxtxfee=<bedrag>: '%s'</translation> </message> <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> @@ -3078,35 +3369,39 @@ </message> <message> <source>Node relay options:</source> - <translation>Node relay opties:</translation> + <translation>Nodedoorgeefopties:</translation> </message> <message> <source>RPC server options:</source> <translation>RPC server opties:</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Stuur trace/debug-info naar de console in plaats van het debug.log bestand</translation> + <source>Rebuild block chain index from current blk000??.dat files on startup</source> + <translation>Herbouwen blokketenindex vanuit huidige blk000??.dat-bestanden bij opstarten?</translation> </message> <message> - <source>Send transactions as zero-fee transactions if possible (default: %u)</source> - <translation>Verstuur transacties zonder verzendkosten indien mogelijk (standaard: %u)</translation> + <source>Receive and display P2P network alerts (default: %u)</source> + <translation>Ontvang en toon P2P-netwerkwaarschuwingen (standaard: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Zet SSL root certificaten voor betalingsverzoek (standaard: -sytem-)</translation> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Verminder -maxconnections van %d naar %d, vanwege systeembeperkingen.</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Stel taal in, bijvoorbeeld ''de_DE" (standaard: systeeminstellingen)</translation> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Herscan de blokketen voor missende portemonneetransacties bij opstarten</translation> </message> <message> - <source>Show all debugging options (usage: --help -help-debug)</source> - <translation>Toon alle foutopsporingsopties (gebruik: --help -help-debug)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Verzend trace/debug-info naar de console in plaats van het debug.log-bestand</translation> + </message> + <message> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Indien mogelijk, verstuur zonder transactiekosten (standaard: %u)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Laat laadscherm zien bij het opstarten. (standaard: 1)</translation> + <source>Show all debugging options (usage: --help -help-debug)</source> + <translation>Toon alle foutopsporingsopties (gebruik: --help -help-debug)</translation> </message> <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> @@ -3117,18 +3412,22 @@ <translation>Ondertekenen van transactie mislukt</translation> </message> <message> - <source>Start minimized</source> - <translation>Geminimaliseerd starten</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> - <translation>Het transactiebedrag is te klein om de vergoeding te betalen</translation> + <translation>Het transactiebedrag is te klein om transactiekosten in rekening te brengen</translation> </message> <message> <source>This is experimental software.</source> <translation>Dit is experimentele software.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Tor bepaalt poortwachtwoord (standaard: empty)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Tor bepaalt welke poort te gebruiken als luisteren naar onion wordt gebruikt (standaard: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Transactiebedrag te klein</translation> </message> @@ -3138,21 +3437,21 @@ </message> <message> <source>Transaction too large for fee policy</source> - <translation>De transactie is te groot voor het toeslagenbeleid</translation> + <translation>De transactie is te groot voor het transactiekostenbeleid</translation> </message> <message> <source>Transaction too large</source> <translation>Transactie te groot</translation> </message> <message> - <source>UI Options:</source> - <translation>UI Opties:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Niet in staat om aan %s te binden op deze computer (bind gaf error %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Upgrade portemonee naar laatste formaat bij opstarten</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Gebruikersnaam voor JSON-RPC-verbindingen</translation> </message> @@ -3165,10 +3464,18 @@ <translation>Waarschuwing</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Om in alleen een blokmodus te opereren (standaard: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Bezig met het zappen van alle transacties van de portemonnee...</translation> </message> <message> + <source>ZeroMQ notification options:</source> + <translation>ZeroMQ notificatieopties:</translation> + </message> + <message> <source>wallet.dat corrupt, salvage failed</source> <translation>wallet.dat corrupt, veiligstellen mislukt</translation> </message> @@ -3178,7 +3485,7 @@ </message> <message> <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source> - <translation>Voer commando uit zodra het beste blok verandert (%s in cmd wordt vervangen door blockhash)</translation> + <translation>Voer opdracht uit zodra het beste blok verandert (%s in cmd wordt vervangen door blokhash)</translation> </message> <message> <source>This help message</source> @@ -3201,6 +3508,26 @@ <translation>(1 = behoudt tx meta data bijv. account eigenaar en betalingsverzoek informatie, 2. sla tx meta data niet op)</translation> </message> <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee staat zeer hoog! Transactiekosten van de grootte kunnen worden gebruikt in een enkele transactie.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee staat zeer hoog! Dit is de transactiekosten die u betaalt als u een transactie doet.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Bewaar transactie niet langer dan <n> uren in de geheugenpool (standaard: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Fout tijdens lezen van wallet.dat! Alle sleutels zijn correct te lezen, maar de transactiondatabase of adresboekingangen zijn mogelijk verdwenen of incorrect.</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Transactiekosten (in %s/kB) kleiner dan dit worden beschouwd dat geen transactiekosten in rekening worden gebracht voor transactiecreatie (standaard: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Hoe grondig de blokverificatie van -checkblocks is (0-4, standaard: %u)</translation> </message> @@ -3214,11 +3541,35 @@ </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> + <translation>Output extra debugginginformatie (standaard: %u, het leveren van <categorie> is optioneel)</translation> + </message> + <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Ondersteun filtering van blokken en transacties met bloomfilters (standaard: %u)</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Totale lengte van netwerkversiestring (%i) overschrijdt maximale lengte (%i). Verminder het aantal of grootte van uacomments.</translation> + </message> + <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Pogingen om uitgaand verkeer onder een bepaald doel te houden (in MiB per 24u), 0 = geen limiet (standaard: %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Niet-ondersteund argument -socks gevonden. Instellen van SOCKS-versie is niet meer mogelijk, alleen SOCKS5-proxies worden ondersteund.</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> + <translation>Gebruik een aparte SOCKS5 proxy om verborgen diensten van Tor te bereiken (standaard: %s)</translation> + </message> + <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Gebruikersnaam en gehasht wachtwoord voor JSON-RPC-verbindingen. De velden <userpw> is in het formaat: <GEBRUIKERSNAAM>:<SALT>$<HASH>. Een kanoniek Pythonscript is inbegrepen in de share/rpcuser. Deze optie kan meerdere keren worden meegegeven</translation> + </message> + <message> + <source>(default: %s)</source> + <translation>(standaard: %s)</translation> </message> <message> <source>Always query for peer addresses via DNS lookup (default: %u)</source> @@ -3246,7 +3597,7 @@ </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> + <translation>Luister naar JSON-RPC-verbindingen op <poort> (standaard: %u of testnet: %u)</translation> </message> <message> <source>Listen for connections on <port> (default: %u or testnet: %u)</source> @@ -3266,7 +3617,7 @@ </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> + <translation>Maximum per-connectie verstuurbuffer, <n>*1000 bytes (standaard: %u)</translation> </message> <message> <source>Prepend debug output with timestamp (default: %u)</source> @@ -3274,15 +3625,15 @@ </message> <message> <source>Relay and mine data carrier transactions (default: %u)</source> - <translation>Gegevensdrager transacties relay en de mijnen (default: %u)</translation> + <translation>Geef gegevensdragertransacties door en mijn ze ook (standaard: %u)</translation> </message> <message> <source>Relay non-P2SH multisig (default: %u)</source> - <translation>Relay non-P2SH multisig (default: %u)</translation> + <translation>Geef non-P2SH multisig door (standaard: %u)</translation> </message> <message> <source>Set key pool size to <n> (default: %u)</source> - <translation>Stel sleutelpoelgrootte in op <&> (standaard: %u)</translation> + <translation>Stel sleutelpoelgrootte in op <n> (standaard: %u)</translation> </message> <message> <source>Set minimum block size in bytes (default: %u)</source> @@ -3294,7 +3645,7 @@ </message> <message> <source>Specify configuration file (default: %s)</source> - <translation>Specificeer configuratie bestand (standaard: %s)</translation> + <translation>Specificeer configuratiebestand (standaard: %s)</translation> </message> <message> <source>Specify connection timeout in milliseconds (minimum: 1, default: %d)</source> @@ -3306,7 +3657,7 @@ </message> <message> <source>Spend unconfirmed change when sending transactions (default: %u)</source> - <translation>Besteed onbevestigd wisselgeld bij het versturen van transacties (standaard: %u)</translation> + <translation>Besteed onbevestigd wisselgeld bij het doen van transacties (standaard: %u)</translation> </message> <message> <source>Threshold for disconnecting misbehaving peers (default: %u)</source> @@ -3354,7 +3705,7 @@ </message> <message> <source>Rescanning...</source> - <translation>Blokketen aan het doorzoeken...</translation> + <translation>Blokketen aan het herscannen...</translation> </message> <message> <source>Done loading</source> diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index 893ae43c55..233918ff2b 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -250,6 +250,10 @@ <translation>&Alilan ing Passphrase...</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Address king pamag-Tanggap</translation> + </message> + <message> <source>Send coins to a Bitcoin address</source> <translation>Magpadalang barya king Bitcoin address</translation> </message> @@ -310,6 +314,10 @@ <translation>Kapilubluban ning Bitcoin</translation> </message> <message> + <source>&Command-line options</source> + <translation>Pipamilian command-line</translation> + </message> + <message> <source>Last received block was generated %1 ago.</source> <translation>Ing tatauling block a metanggap, me-generate ya %1 ing milabas</translation> </message> @@ -364,6 +372,10 @@ <context> <name>CoinControlDialog</name> <message> + <source>Amount:</source> + <translation>Alaga:</translation> + </message> + <message> <source>Amount</source> <translation>Alaga</translation> </message> @@ -464,7 +476,7 @@ <source>command-line options</source> <translation>pipamilian command-line</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -640,6 +652,10 @@ <translation>&Impormasion</translation> </message> <message> + <source>Debug window</source> + <translation>I-Debug ing awang</translation> + </message> + <message> <source>Using OpenSSL version</source> <translation>Gagamit bersion na ning OpenSSL</translation> </message> @@ -718,6 +734,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Kopyan ing address</translation> + </message> + <message> <source>Address</source> <translation>Address</translation> </message> @@ -764,6 +784,18 @@ <translation>Magpadalang Barya</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Kulang a pondo</translation> + </message> + <message> + <source>Amount:</source> + <translation>Alaga:</translation> + </message> + <message> + <source>Transaction Fee:</source> + <translation>Bayad king Transaksion:</translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Misanang magpadala kareng alialiuang tumanggap</translation> </message> @@ -842,6 +874,14 @@ <source>Alt+P</source> <translation>Alt+P</translation> </message> + <message> + <source>Message:</source> + <translation>Mensayi:</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Ibayad kang:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -1366,24 +1406,28 @@ <translation>Memali ya ing pamakiramdam kareng gang nanung port. Gamita me ini -listen=0 nung buri me ini.</translation> </message> <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Eya me-resolve ing -whitebind address: '%s'</translation> + </message> + <message> <source>Information</source> <translation>&Impormasion</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Magpadalang trace/debug info okeng console kesa keng debug.log file</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Eya maliari ing alaga keng -maxtxfee=<amount>: '%s'</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Mamiling Amanu, alimbawa "de_DE"(default: system locale)</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Eya maliari ing alaga keng -minrelaytxfee=<amount>: '%s'</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Ipalto ing splash screen keng umpisa (default: 1)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Eya maliari ing alaga keng -mintxfee=<amount>: '%s'</translation> </message> <message> - <source>Start minimized</source> - <translation>Umpisan ing pamaglati</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Magpadalang trace/debug info okeng console kesa keng debug.log file</translation> </message> <message> <source>Transaction too large</source> diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 52196f0372..8a8c377480 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -878,6 +878,34 @@ <source>command-line options</source> <translation>opcje konsoli</translation> </message> + <message> + <source>UI Options:</source> + <translation>Opcje interfejsu</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Katalog danych używany podczas uruchamiania programu (domyślny: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Wybierz język, na przykład "de_DE" (domyślnie: język systemowy)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Uruchom zminimalizowany</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Ustaw certyfikaty główne SSL dla żądań płatności (domyślnie: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Wyświetl okno powitalne podczas uruchamiania (domyślnie: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Ustaw jako domyślne wszystkie ustawienia interfejsu</translation> + </message> </context> <context> <name>Intro</name> @@ -1076,6 +1104,10 @@ <translation>Port proxy (np. 9050)</translation> </message> <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Pokazuje, czy wspierane domyślnie proxy SOCKS5 jest używane do łączenia się z peerami w tej sieci</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -1088,6 +1120,10 @@ <translation>Tor</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Użyj oddzielnego prozy SOCKS5 aby osiągnąć węzły w ukrytych usługach Tor:</translation> + </message> + <message> <source>&Window</source> <translation>&Okno</translation> </message> @@ -1458,6 +1494,14 @@ <translation>Aktualna liczba bloków</translation> </message> <message> + <source>Current number of transactions</source> + <translation>Obecna liczba transakcji</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Zużycie pamięci</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Otwórz plik logowania debugowania Bitcoin Core z obecnego katalogu z danymi. Może to potrwać kilka sekund przy większych plikach.</translation> </message> @@ -1482,6 +1526,10 @@ <translation>Wybierz węzeł żeby zobaczyć szczegóły.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Biała lista</translation> + </message> + <message> <source>Direction</source> <translation>Kierunek</translation> </message> @@ -1490,6 +1538,18 @@ <translation>Wersja</translation> </message> <message> + <source>Starting Block</source> + <translation>Blok startowy</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Zsynchronizowane nagłówki</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Zsynchronizowane bloki</translation> + </message> + <message> <source>User Agent</source> <translation>Aplikacja kliencka</translation> </message> @@ -1518,6 +1578,10 @@ <translation>Czas odpowiedzi</translation> </message> <message> + <source>Ping Wait</source> + <translation>Czas odpowiedzi</translation> + </message> + <message> <source>Time Offset</source> <translation>Przesunięcie czasu</translation> </message> @@ -1602,6 +1666,10 @@ <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(id węzła: %1)</translation> + </message> + <message> <source>via %1</source> <translation>przez %1</translation> </message> @@ -1649,6 +1717,10 @@ <translation>Użyj jednego z poprzednio użytych adresów odbiorczych. Podczas ponownego używania adresów występują problemy z bezpieczeństwem i prywatnością. Nie korzystaj z tej opcji, chyba że odtwarzasz żądanie płatności wykonane już wcześniej.</translation> </message> <message> + <source>R&euse an existing receiving address (not recommended)</source> + <translation>U&żyj ponownie istniejącego adresu odbiorczego (niepolecane)</translation> + </message> + <message> <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> <translation>Opcjonalna wiadomość do dołączenia do żądania płatności, która będzie wyświetlana, gdy żądanie zostanie otwarte. Uwaga: wiadomość ta nie zostanie wysłana wraz z płatnością w sieci Bitcoin.</translation> </message> @@ -1990,6 +2062,10 @@ <translation>Skopiuj resztę</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Łączna kwota %1</translation> + </message> + <message> <source>or</source> <translation>lub</translation> </message> @@ -2657,6 +2733,10 @@ <translation>Skopiuj ID transakcji</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Skopiuj surowe dane transakcji</translation> + </message> + <message> <source>Edit label</source> <translation>Zmień etykietę</translation> </message> @@ -2808,6 +2888,10 @@ <translation>Błąd: Wystąpił fatalny błąd wewnętrzny, sprawdź szczegóły w debug.log</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Prowizja (w %s/kB) dodawana do wysyłanych transakcji (domyślnie: %s)</translation> + </message> + <message> <source>Pruning blockstore...</source> <translation>Przycinanie zapisu bloków...</translation> </message> @@ -2816,6 +2900,10 @@ <translation>Uruchom w tle jako daemon i przyjmuj polecenia</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Uruchomienie serwera HTTP nie powiodło się. Zobacz dziennik debugowania, aby uzyskać więcej szczegółów.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Akceptuj połączenia z zewnątrz (domyślnie: 1 jeśli nie ustawiono -proxy lub -connect)</translation> </message> @@ -2872,10 +2960,6 @@ <translation>Dodawaj do białej listy węzły łączące się z podanej maski sieciowej lub adresu IP. Może być określona kilka razy.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(domyślnie: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> mogą być:</translation> </message> @@ -2972,6 +3056,14 @@ <translation>Określ plik portfela (w obrębie folderu danych)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Niewspierany argument -benchmark zignorowany, użyj -debug=bench.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Niewspierany argument -debugnet zignorowany, użyj -debug=net.</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>Użyj UPnP do przekazania portu nasłuchu (domyślnie : %u)</translation> </message> @@ -3080,12 +3172,20 @@ <translation>Aktywuje najlepszy łańcuch</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Nie można rozwiązać adresu -whitebind: '%s'</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Zawsze przekazuj informacje o transakcjach otrzymanych od osób z białej listy (domyślnie: %d)</translation> + </message> + <message> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Próbuj podczas uruchamiania programu odzyskać klucze prywatne z uszkodzonego pliku wallet.dat</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Wybierz folder danych przy starcie (domyślnie: 0)</translation> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Stwórz automatycznie ukrytą usługę Tora (domyślnie: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Nie można rozwiązać adresu -whitebind: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3104,6 +3204,10 @@ <translation>Błąd odczytu z bazy danych, wyłączam się.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Importuj bloki z zewnętrznego pliku blk000??.dat podczas uruchamiania programu</translation> + </message> + <message> <source>Information</source> <translation>Informacja</translation> </message> @@ -3136,6 +3240,10 @@ <translation>Przechowuj w pamięci maksymalnie <n> transakcji nie możliwych do połączenia (domyślnie: %u)</translation> </message> <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Musisz określić port z -whitebind: '%s'</translation> + </message> + <message> <source>Node relay options:</source> <translation>Opcje przekaźnikowe węzła:</translation> </message> @@ -3152,6 +3260,10 @@ <translation>Odbieranie i wyświetlanie alertów sieci P2P (domyślnie: %u)</translation> </message> <message> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Przeskanuj podczas ładowania programu łańcuch bloków w poszukiwaniu zaginionych transakcji portfela</translation> + </message> + <message> <source>Send trace/debug info to console instead of debug.log file</source> <translation>Wyślij informację/raport do konsoli zamiast do pliku debug.log.</translation> </message> @@ -3160,22 +3272,10 @@ <translation>Wyślij bez opłaty jeżeli to możliwe (domyślnie: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Ustaw certyfikaty główne SSL dla żądań płatności (domyślnie: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Ustaw Język, na przykład "pl_PL" (domyślnie: systemowy)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Pokaż wszystkie opcje odpluskwiania (użycie: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Pokazuj okno powitalne przy starcie (domyślnie: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Zmniejsz plik debug.log przy starcie programu (domyślnie: 1 jeśli nie użyto -debug)</translation> </message> @@ -3184,10 +3284,6 @@ <translation>Podpisywanie transakcji nie powiodło się</translation> </message> <message> - <source>Start minimized</source> - <translation>Uruchom zminimalizowany</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Zbyt niska kwota transakcji by zapłacić opłatę</translation> </message> @@ -3196,6 +3292,10 @@ <translation>To oprogramowanie eksperymentalne.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Hasło zabezpieczające portu kontrolnego Tora (domyślnie: puste)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Zbyt niska kwota transakcji </translation> </message> @@ -3212,14 +3312,14 @@ <translation>Transakcja zbyt duża</translation> </message> <message> - <source>UI Options:</source> - <translation>Opcje UI</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Nie można przywiązać do %s na tym komputerze (bind zwrócił błąd %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Zaktualizuj portfel do najnowszego formatu podczas ładowania programu</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Nazwa użytkownika dla połączeń JSON-RPC</translation> </message> @@ -3268,6 +3368,14 @@ <translation>(1 = zachowaj wysłane metadane np. właściciel konta i informacje o żądaniach płatności, 2 = porzuć wysłane metadane)</translation> </message> <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Nie trzymaj w pamięci transakcji starszych niż <n> godzin (domyślnie: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Ostrzeżenie: błąd odczytu wallet.dat! Wszystkie klucze zostały odczytane, ale może brakować pewnych danych transakcji lub wpisów w książce adresowej lub mogą one być nieprawidłowe.</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Jak dokładna jest weryfikacja bloków przy -checkblocks (0-4, domyślnie: %u)</translation> </message> @@ -3284,6 +3392,10 @@ <translation>Wypuść informacje debugowania (domyślnie: %u, podanie <category> jest opcjonalne)</translation> </message> <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Znaleziono niewspierany argument -socks. Wybieranie wersji SOCKS nie jest już możliwe, wsparcie programu obejmuje tylko proxy SOCKS5</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Użyj oddzielnego prozy SOCKS5 aby osiągnąć węzły w ukrytych usługach Tor (domyślnie: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index e57c051aa1..5cea349fbc 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -442,6 +442,10 @@ <translation>Nenhum servidor disponível...</translation> </message> <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>%n bloco processado do histórico de transações.</numerusform><numerusform>%n blocos processados do histórico de transações.</numerusform></translation> + </message> + <message numerus="yes"> <source>%n hour(s)</source> <translation><numerusform>%n hora</numerusform><numerusform>%n horas</numerusform></translation> </message> @@ -878,6 +882,34 @@ <source>command-line options</source> <translation>opções da linha de comando</translation> </message> + <message> + <source>UI Options:</source> + <translation>Opções de Interface:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Escolher diretório de dados na inicialização (padrão: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Definir idioma, por exemplo "de_DE" (padrão: idioma do sistema)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Iniciar minimizado</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Definir certificados de root SSL para requisições de pagamento (padrão: -sistema-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Exibir tela de abertura na inicialização (padrão: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Desfazer todas as mudanças de configuração feitas na interface</translation> + </message> </context> <context> <name>Intro</name> @@ -1080,6 +1112,10 @@ <translation>Usado para alcançar participantes via:</translation> </message> <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Exibe, caso o proxy padrão SOCKS5 fornecido seja usado para se conectar a peers através deste tipo de rede.</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -1470,6 +1506,18 @@ <translation>Quantidade atual de blocos</translation> </message> <message> + <source>Memory Pool</source> + <translation>Pool de Memória</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Número atual de transações</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Uso de memória</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Abrir o arquivo de log de depuração do Bitcoin na pasta de dados atual. Isso pode demorar para arquivos grandes.</translation> </message> @@ -2884,14 +2932,26 @@ <translation>Se <category> não for suprida ou se <category> = 1, mostrar toda informação de depuração.</translation> </message> <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Total máximo de comissão (em %s) que será usado em uma única transação; um valor muito baixo pode cancelar uma transação grande (padrão: %s)</translation> + </message> + <message> <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> <translation>Por favor verifique se a data e horário estão corretos no seu computador! Se o seu relógio estiver incorreto, a Carteira Bitcoin não irá funcionar corretamente.</translation> </message> <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Corte configurado abaixo do nível mínimo de %d de MiB. Por favor use um número mais alto.</translation> + </message> + <message> <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> <translation>Corte: a ultima sincronização da carteira foi além do dado comprimido. Você precisa reindexar ( -reindex , faça o download de toda a blockchain novamente)</translation> </message> <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Reduza os requerimentos de armazenamento de dados (cortando) deletando blocos mais antigos. Esse modo é incompatível com -txindex e -rescan. Cuidado: Reverter essa configuração requer um novo download de toda a blockchain. (Padrão: 0 = desabilita o corte de blocos, >%u = tamanho alvo em MiB para o uso de blocos cortados)</translation> + </message> + <message> <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> <translation>Rescans não são possíveis no modo de corte. Você precisa usar -reindex, que irá fazer o download de toda a blockchain novamente.</translation> </message> @@ -2980,10 +3040,6 @@ <translation>Lista Branca pares de ligação da máscara de rede dado ou o endereço IP . Pode ser especificado várias vezes.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(padrão: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool deve ser pelo menos %d MB</translation> </message> @@ -3180,14 +3236,38 @@ <translation>Executa um comando quando um alerta relevante é recebido ou vemos uma longa segregação (%s em cmd é substituído pela mensagem)</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Comissões (em %s/kB) menores serão consideradas como zero para relaying, mineração e criação de transação (padrão %s)</translation> + </message> + <message> + <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> + <translation>Se paytxfee não estiver definida, incluir comissão suficiente para que as transações comecem a ter confirmações em média dentro de N blocos (padrão %u)</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Valor inválido para -maxtxfee = <valor>: '%s'( precisa ser pelo menos a comissão mínima de %s para prevenir travamento de transações)</translation> + </message> + <message> + <source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source> + <translation>Tamanho máximo de dados em transações de dados de operadora (padrão %u)</translation> + </message> + <message> <source>Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)</source> <translation>Buscar por endereços de peers via busca DNS, se estiver baixo em endereços (padrão: 1 a não ser que -connect)</translation> </message> <message> + <source>Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)</source> + <translation>Gerar credenciais aleatórias para cada conexão por proxy. Isto habilita o isolamento de stream do Tor (padrão: %u)</translation> + </message> + <message> <source>Set maximum size of high-priority/low-fee transactions in bytes (default: %d)</source> <translation>Define o tamanho máximo de alta-prioridade por taxa baixa nas transações em bytes (padrão: %d)</translation> </message> <message> + <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> + <translation>Determina o número de núcleos para a geração de moedas se ativado (-1 = todos os núcleos, padrão: %d)</translation> + </message> + <message> <source>The transaction amount is too small to send after the fee has been deducted</source> <translation>A quantia da transação é muito pequena para mandar </translation> </message> @@ -3196,6 +3276,10 @@ <translation>Esse produto inclui software desenvolvido pelo Open SSL Project para uso na OpenSSL Toolkit<https://www.openssl.org/> e software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard. </translation> </message> <message> + <source>Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway</source> + <translation>Peers permitidos não podem ser banidos do DoS e suas transações sempre são transmitidas, até mesmo se eles já estão no pool de memória, útil, por exemplo, para um gateway</translation> + </message> + <message> <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> <translation>Você precisa reconstruir o banco de dados usando -reindex para sair do modo prune. Isso irá rebaixar todo o blockchain.</translation> </message> @@ -3204,16 +3288,28 @@ <translation>(padrão: %u)</translation> </message> <message> + <source>Accept public REST requests (default: %u)</source> + <translation>Aceitar pedidos restantes públicas (padrão: %u)</translation> + </message> + <message> <source>Activating best chain...</source> <translation>Ativando a melhor sequência...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Impossível resolver endereço -whitebind: '%s'</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Sempre transmitir transações recebidas de peers confiáveis (padrão: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Escolha o diretório de dados na inicialização (padrão: 0)</translation> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Tentar recuperar na inicialização chaves privadas de um arquivo wallet.dat corrompido</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Criar automaticamente serviços ocultos do Tor (padrão: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Impossível resolver endereço -whitebind: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3232,10 +3328,18 @@ <translation>Erro ao ler o banco de dados. Finalizando.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Importar blocos a partir de arquivo externo blk000??.dat durante a inicialização</translation> + </message> + <message> <source>Information</source> <translation>Informação</translation> </message> <message> + <source>Initialization sanity check failed. Bitcoin Core is shutting down.</source> + <translation>O teste de integridade da inicialização falhou. O Core do Bitcoin está sendo desligado.</translation> + </message> + <message> <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> <translation>Quantidade inválida para -maxtxfee=<quantidade>: '%s'</translation> </message> @@ -3256,6 +3360,10 @@ <translation>Máscara de rede especificada em -whitelist: '%s' é inválida</translation> </message> <message> + <source>Keep at most <n> unconnectable transactions in memory (default: %u)</source> + <translation>Manter ao máximo <n> transações inconectáveis na memória (padrão: %u)</translation> + </message> + <message> <source>Need to specify a port with -whitebind: '%s'</source> <translation>Necessário informar uma porta com -whitebind: '%s'</translation> </message> @@ -3268,8 +3376,12 @@ <translation>Opções do servidor RPC:</translation> </message> <message> + <source>Rebuild block chain index from current blk000??.dat files on startup</source> + <translation>Reconstruir índice de cadeia de bloco a partir dos arquivos blk000??.dat atuais durante a inicialização</translation> + </message> + <message> <source>Receive and display P2P network alerts (default: %u)</source> - <translation>Receba e mostre P2P alerta de rede (default: %u)</translation> + <translation>Receba e mostre P2P alerta de rede (padrão: %u)</translation> </message> <message> <source>Send trace/debug info to console instead of debug.log file</source> @@ -3280,22 +3392,10 @@ <translation>Enviar transação sem taxa, se possível (padrão: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Define certificados SSL root para requisição de pagamento (padrão: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Escolher língua, por exemplo "de_DE" (padrão: localização do sistema)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Exibir todas opções de depuração (uso: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostrar tela inicial ao ligar (padrão: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Encolher arquivo debug.log ao iniciar o cliente (padrão 1 se opção -debug não estiver presente)</translation> </message> @@ -3304,10 +3404,6 @@ <translation>Assinatura de transação falhou</translation> </message> <message> - <source>Start minimized</source> - <translation>Inicializar minimizado</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>A quantidade da transação é pequena demais para pagar a taxa</translation> </message> @@ -3332,10 +3428,6 @@ <translation>Transação muito larga</translation> </message> <message> - <source>UI Options:</source> - <translation>Opções da interface:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Impossível se ligar a %s neste computador (bind retornou erro %s)</translation> </message> @@ -3384,6 +3476,14 @@ <translation>Erro ao carregar wallet.dat: Carteira corrompida</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Comissões (em %s/kB) menores serão consideradas como zero para criação de transação (padrão %s)</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> + <translation>Use um proxy SOCKS5 separado para alcançar participantes da rede via serviços ocultos Tor (padrão: %s)</translation> + </message> + <message> <source>(default: %s)</source> <translation>(padrão: %s)</translation> </message> @@ -3428,12 +3528,20 @@ <translation>Fazer a carteira transmitir transações</translation> </message> <message> + <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source> + <translation>Buffer máximo de recebimento por conexão, <n>*1000 bytes (padrão: %u)</translation> + </message> + <message> <source>Prepend debug output with timestamp (default: %u)</source> - <translation>Adiciona timestamp como prefixo no debug (default: %u)</translation> + <translation>Adiciona timestamp como prefixo no debug (padrão: %u)</translation> </message> <message> <source>Relay non-P2SH multisig (default: %u)</source> - <translation>Retransmitir P2SH não multisig (default: %u)</translation> + <translation>Retransmitir P2SH não multisig (padrão: %u)</translation> + </message> + <message> + <source>Set key pool size to <n> (default: %u)</source> + <translation>Defina o tamanho da chave para piscina<n> (padrão: %u)</translation> </message> <message> <source>Set minimum block size in bytes (default: %u)</source> @@ -3453,7 +3561,7 @@ </message> <message> <source>Specify pid file (default: %s)</source> - <translation>Especificar aqrquivo pid (default: %s)</translation> + <translation>Especificar aqrquivo pid (padrão: %s)</translation> </message> <message> <source>Spend unconfirmed change when sending transactions (default: %u)</source> diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts index 4549066363..ffed44a61c 100644 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ b/src/qt/locale/bitcoin_pt_PT.ts @@ -874,7 +874,7 @@ <source>command-line options</source> <translation>opções da linha de comandos</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -2773,10 +2773,6 @@ <translation>Ligações na lista branca conectam desde a seguinte netmask ou endereço IP. Posse ser especificado varias vezes.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(padrão: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><categoria> pode ser:</translation> </message> @@ -2921,8 +2917,8 @@ <translation>(por defeito: %u)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Escolha a pasta de dados ao iniciar (por defeito: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Não foi possível resolver o endereço -whitebind: '%s'</translation> </message> <message> <source>Copyright (C) 2009-%i The Bitcoin Core Developers</source> @@ -2937,6 +2933,10 @@ <translation>Informação</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Quantia inválida para -maxtxfee=<quantidade>: '%s'</translation> + </message> + <message> <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> <translation>Quantia inválida para -minrelaytxfee=<quantidade>: '%s'</translation> </message> @@ -2949,18 +2949,6 @@ <translation>Enviar informação de rastreio/depuração para a consola e não para o ficheiro debug.log</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Configurar certificados SSL root para pedido de pagamento (default: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Definir linguagem, por exemplo "pt_PT" (por defeito: linguagem do sistema)</translation> - </message> - <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Mostrar imagem ao iniciar (por defeito: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Encolher ficheiro debug.log ao iniciar o cliente (por defeito: 1 sem -debug definido)</translation> </message> @@ -2969,10 +2957,6 @@ <translation>Falhou assinatura da transação</translation> </message> <message> - <source>Start minimized</source> - <translation>Iniciar minimizado</translation> - </message> - <message> <source>Transaction amount too small</source> <translation>Quantia da transação é muito baixa</translation> </message> @@ -3029,6 +3013,10 @@ <translation>Erro ao carregar wallet.dat: Carteira danificada</translation> </message> <message> + <source>(default: %s)</source> + <translation>(por defeito: %s)</translation> + </message> + <message> <source>Error loading wallet.dat</source> <translation>Erro ao carregar wallet.dat</translation> </message> diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts index 72ab2c5bdb..8bccf037a7 100644 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ b/src/qt/locale/bitcoin_ro_RO.ts @@ -710,6 +710,10 @@ <translation>cea mai scăzută</translation> </message> <message> + <source>(%1 locked)</source> + <translation>(%1 blocat)</translation> + </message> + <message> <source>none</source> <translation>nimic</translation> </message> @@ -738,6 +742,10 @@ <translation>nu</translation> </message> <message> + <source>This means a fee of at least %1 per kB is required.</source> + <translation>Aceasta înseamnă o taxă de cel puţin %1 pe kB necesar.</translation> + </message> + <message> <source>Can vary +/- 1 byte per input.</source> <translation>Poate varia +/- 1 octet pentru fiecare intrare.</translation> </message> @@ -866,7 +874,7 @@ <source>command-line options</source> <translation>Opţiuni linie de comandă</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -882,6 +890,10 @@ <translation>Dacă aceasta este prima dată cînd programul este lansat, puteţi alege unde Nucleul Bitcoin va stoca datele.</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>Nucleul Bitcoin se va descărca şi va stoca o copie a lanţului blocului Bitcoin. Cel puţin %1GB de date vor fi stocate în acest dosar şi se va mări în timp. Portofelul va fi, de asemenea, stocat în acest dosar.</translation> + </message> + <message> <source>Use the default data directory</source> <translation>Foloseşte dosarul de date implicit</translation> </message> @@ -2335,6 +2347,10 @@ <source>, has not been successfully broadcast yet</source> <translation>, nu s-a propagat încă</translation> </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Deschis pentru încă %n bloc</numerusform><numerusform>Deschis pentru încă %n blocuri</numerusform><numerusform>Deschis pentru încă %n de blocuri</numerusform></translation> + </message> <message> <source>unknown</source> <translation>necunoscut</translation> @@ -2365,6 +2381,10 @@ <source>Immature (%1 confirmations, will be available after %2)</source> <translation>Imatur (%1 confirmări, va fi disponibil după %2)</translation> </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Deschis pentru încă %n bloc</numerusform><numerusform>Deschis pentru încă %n blocuri</numerusform><numerusform>Deschis pentru încă %n de blocuri</numerusform></translation> + </message> <message> <source>Open until %1</source> <translation>Deschis până la %1</translation> @@ -2716,10 +2736,6 @@ <translation>Atenţie: fişierul wallet.dat este corupt, date salvate! Fişierul original wallet.dat a fost salvat ca wallet.{timestamp}.bak in %s; dacă balansul sau tranzactiile sînt incorecte ar trebui să restauraţi dintr-o copie de siguranţă.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(iniţial: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> poate fi:</translation> </message> @@ -2852,12 +2868,16 @@ <translation>Acest produs include programe dezvoltate de către Proiectul OpenSSL pentru a fi folosite în OpenSSL Toolkit <https://www.openssl.org/> şi programe criptografice scrise de către Eric Young şi programe UPnP scrise de către Thomas Bernard.</translation> </message> <message> + <source>(default: %u)</source> + <translation>(implicit: %u)</translation> + </message> + <message> <source>Accept public REST requests (default: %u)</source> <translation>Acceptă cererile publice REST (implicit: %u)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Alege dosarul de date la pornire (implicit: 0)</translation> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Nu se poate rezolva adresa -whitebind: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -2916,22 +2936,10 @@ <translation>Trimitere tranzacţii ca tranzacţii taxă-zero dacă este posibil (implicit: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Setare rădăcină certificat SSL pentru cerere de plată (implicit: -sistem- )</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Setează limba, de exemplu: "de_DE" (implicit: sistem local)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Arată toate opţiunile de depanare (uz: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Afişează pe ecran splash la pornire (implicit: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Micşorează fişierul debug.log la pornirea clientului (implicit: 1 cînd nu se foloseşte -debug)</translation> </message> @@ -2940,10 +2948,6 @@ <translation>Nu s-a reuşit semnarea tranzacţiei</translation> </message> <message> - <source>Start minimized</source> - <translation>Începe minimizat</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Acesta este un program experimental.</translation> </message> diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index ad0a7b3b50..00dfd833ab 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -93,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> @@ -878,6 +882,34 @@ <source>command-line options</source> <translation>параметры командной строки</translation> </message> + <message> + <source>UI Options:</source> + <translation>Настройки интерфейса:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Выбрать каталог данных при запуске (по умолчанию: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Выберите язык, например "de_DE" (по умолчанию: как в системе)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Запускать свёрнутым</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Указать корневые SSL-сертификаты для запроса платежа (по умолчанию: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Показывать экран-заставку при запуске (по умолчанию: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Сбросить все настройки сделанные через графический интерфейс</translation> + </message> </context> <context> <name>Intro</name> @@ -1474,6 +1506,18 @@ <translation>Текущее число блоков</translation> </message> <message> + <source>Memory Pool</source> + <translation>Пул памяти</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Текущее число транзакций</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Использование памяти</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Открыть отладочный лог-файл Bitcoin Core из текущего каталога данных. Это может занять несколько секунд для больших лог-файлов.</translation> </message> @@ -2094,6 +2138,14 @@ <translation>Запрос платежа просрочен.</translation> </message> <message> + <source>Pay only the required fee of %1</source> + <translation>Заплатить только обязательную комиссию %1</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Подтверждение ожидается через %n блок.</numerusform><numerusform>Подтверждение ожидается через %n блока.</numerusform><numerusform>Подтверждение ожидается через %n блоков.</numerusform><numerusform>Подтверждение ожидается через %n блоков.</numerusform></translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Адрес получателя неверный. Пожалуйста, перепроверьте.</translation> </message> @@ -2590,6 +2642,10 @@ <translation>Неподтверждено</translation> </message> <message> + <source>Confirming (%1 of %2 recommended confirmations)</source> + <translation>Подтверждено(%1 подтверждений, рекомендуется %2 подтверждений)</translation> + </message> + <message> <source>Conflicted</source> <translation>В противоречии</translation> </message> @@ -2984,10 +3040,6 @@ <translation>Вносить в белый список участников, подключающихся с указанной маски сети или IP. Можно использовать многократно.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(по умолчанию: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool должен быть как минимум %d MB</translation> </message> @@ -3260,10 +3312,6 @@ <translation>Не удаётся разрешить адрес в параметре -whitebind: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Выбрать каталог данных при запуске (по умолчанию: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Подключаться через SOCKS5 прокси</translation> </message> @@ -3352,22 +3400,10 @@ <translation>Осуществить транзакцию бесплатно, если возможно (по умолчанию: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Указать корневые SSL-сертификаты для запроса платежа (по умолчанию: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Выберите язык, например "de_DE" (по умолчанию: как в системе)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Показать все отладочные параметры (использование: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Показывать сплэш при запуске (по умолчанию: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Сжимать файл debug.log при запуске клиента (по умолчанию: 1, если нет -debug)</translation> </message> @@ -3376,10 +3412,6 @@ <translation>Не удалось подписать транзакцию</translation> </message> <message> - <source>Start minimized</source> - <translation>Запускать свёрнутым</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Сумма транзакции слишком мала для уплаты комиссии</translation> </message> @@ -3412,10 +3444,6 @@ <translation>Транзакция слишком большая</translation> </message> <message> - <source>UI Options:</source> - <translation>Настройки интерфейса:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Невозможно привязаться к %s на этом компьютере (bind вернул ошибку %s)</translation> </message> @@ -3496,6 +3524,10 @@ <translation>Ошибка чтения wallet.dat! Все ключи прочитаны верно, но данные транзакций или записи адресной книги могут отсутствовать или быть неправильными.</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Комиссии (в %s/Кб) меньшие этого значения считаются нулевыми при создании транзакций (по умолчанию: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Насколько тщательна проверка контрольных блоков -checkblocks (0-4, по умолчанию: %u)</translation> </message> @@ -3512,6 +3544,10 @@ <translation>Выводить отладочную информацию (по умолчанию: %u, указание <category> необязательно)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Поддерживать фильтрацию блоков и транзакций с помощью фильтра Блума (по умолчанию: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>Текущая длина строки версии сети (%i) превышает максимальную длину (%i). Увеливается количество или размер uacomments.</translation> </message> @@ -3528,6 +3564,10 @@ <translation>Использовать отдельный прокси SOCKS5 для соединения с участниками через скрытые сервисы Tor (по умолчанию: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Имя пользователя и хэш пароля для JSON-RPC соединений. Поле <userpw> использует формат: <USERNAME>:<SALT>$<HASH>. Каноничный пример скрипта на питоне включен в "share/rpcuser". Эта опция может быть указана несколько раз</translation> + </message> + <message> <source>(default: %s)</source> <translation>(по умолчанию: %s)</translation> </message> @@ -3596,6 +3636,10 @@ <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> diff --git a/src/qt/locale/bitcoin_ru_RU.ts b/src/qt/locale/bitcoin_ru_RU.ts new file mode 100644 index 0000000000..53a1c1d8a4 --- /dev/null +++ b/src/qt/locale/bitcoin_ru_RU.ts @@ -0,0 +1,245 @@ +<TS language="ru_RU" version="2.1"> +<context> + <name>AddressBookPage</name> + </context> +<context> + <name>AddressTableModel</name> + </context> +<context> + <name>AskPassphraseDialog</name> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>&About Bitcoin Core</source> + <translation>О Bitcoin Core</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>Опции командной строки</translation> + </message> + <message> + <source>Error</source> + <translation>Ошибка</translation> + </message> + <message> + <source>Warning</source> + <translation>Предупреждение</translation> + </message> + <message> + <source>Information</source> + <translation>Информация</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + <message> + <source>Confirmations</source> + <translation>Подтверждения</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Подтвержденные</translation> + </message> + <message> + <source>Copy address</source> + <translation>Копировать адрес</translation> + </message> + <message> + <source>yes</source> + <translation>Да</translation> + </message> + <message> + <source>no</source> + <translation>Нет</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>Edit Address</source> + <translation>Изменить адрес</translation> + </message> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>version</source> + <translation>версия</translation> + </message> + <message> + <source>About Bitcoin Core</source> + <translation>О Bitcoin Core</translation> + </message> + <message> + <source>Command-line options</source> + <translation>Опции командной строки</translation> + </message> + <message> + <source>command-line options</source> + <translation>Опции командной строки</translation> + </message> + </context> +<context> + <name>Intro</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + <message> + <source>Error</source> + <translation>Ошибка</translation> + </message> + </context> +<context> + <name>OpenURIDialog</name> + <message> + <source>Open URI</source> + <translation>Открыть URI</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> + </context> +<context> + <name>OptionsDialog</name> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + <message> + <source>&Information</source> + <translation>Информация</translation> + </message> + </context> +<context> + <name>ReceiveCoinsDialog</name> + </context> +<context> + <name>ReceiveRequestDialog</name> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + </context> +<context> + <name>SendCoinsEntry</name> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + <message> + <source>Bitcoin Core</source> + <translation>Bitcoin Core</translation> + </message> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Copy address</source> + <translation>Копировать адрес</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Подтвержденные</translation> + </message> + <message> + <source>Date</source> + <translation>Дата</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Information</source> + <translation>Информация</translation> + </message> + <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_sah.ts b/src/qt/locale/bitcoin_sah.ts deleted file mode 100644 index 8af88a87d5..0000000000 --- a/src/qt/locale/bitcoin_sah.ts +++ /dev/null @@ -1,113 +0,0 @@ -<TS language="sah" version="2.1"> -<context> - <name>AddressBookPage</name> - </context> -<context> - <name>AddressTableModel</name> - </context> -<context> - <name>AskPassphraseDialog</name> - </context> -<context> - <name>BanTableModel</name> - </context> -<context> - <name>BitcoinGUI</name> - </context> -<context> - <name>ClientModel</name> - </context> -<context> - <name>CoinControlDialog</name> - </context> -<context> - <name>EditAddressDialog</name> - </context> -<context> - <name>FreespaceChecker</name> - </context> -<context> - <name>HelpMessageDialog</name> - </context> -<context> - <name>Intro</name> - </context> -<context> - <name>OpenURIDialog</name> - </context> -<context> - <name>OptionsDialog</name> - </context> -<context> - <name>OverviewPage</name> - </context> -<context> - <name>PaymentServer</name> - </context> -<context> - <name>PeerTableModel</name> - </context> -<context> - <name>QObject</name> - </context> -<context> - <name>QRImageWidget</name> - </context> -<context> - <name>RPCConsole</name> - </context> -<context> - <name>ReceiveCoinsDialog</name> - </context> -<context> - <name>ReceiveRequestDialog</name> - </context> -<context> - <name>RecentRequestsTableModel</name> - </context> -<context> - <name>SendCoinsDialog</name> - </context> -<context> - <name>SendCoinsEntry</name> - </context> -<context> - <name>ShutdownWindow</name> - </context> -<context> - <name>SignVerifyMessageDialog</name> - </context> -<context> - <name>SplashScreen</name> - </context> -<context> - <name>TrafficGraphWidget</name> - </context> -<context> - <name>TransactionDesc</name> - </context> -<context> - <name>TransactionDescDialog</name> - </context> -<context> - <name>TransactionTableModel</name> - </context> -<context> - <name>TransactionView</name> - </context> -<context> - <name>UnitDisplayStatusBarControl</name> - </context> -<context> - <name>WalletFrame</name> - </context> -<context> - <name>WalletModel</name> - </context> -<context> - <name>WalletView</name> - </context> -<context> - <name>bitcoin-core</name> - </context> -</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index 83f5f2c8e7..8c779cbe98 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -874,7 +874,7 @@ <source>command-line options</source> <translation>voľby príkazového riadku</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -1072,6 +1072,10 @@ <translation>Port proxy (napr. 9050)</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Použiť samostatný SOCKS5 proxy server na dosiahnutie počítačov cez skryté služby Tor:</translation> + </message> + <message> <source>&Window</source> <translation>Okno</translation> </message> @@ -2798,10 +2802,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Uzle na zoznam povolených, ktoré sa pripájajú z danej netmask alebo IP adresy. Môže byť zadané viac krát.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(predvolené: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> môže byť:</translation> </message> @@ -2986,10 +2986,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Nedá sa vyriešiť -whitebind adresa: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Zvoľte dátový priečinok pri štarte (prednastavené: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Pripojiť cez proxy server SOCKS5</translation> </message> @@ -3058,22 +3054,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Poslať ako transakcie bez poplatku, ak je to možné (predvolené: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Nastaviť koreňový certifikát pre výzvy na platbu (prednastavené: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Nastaviť jazyk, napríklad "sk_SK" (predvolené: systémový)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Zobraziť všetky možnosti ladenia (použitie: --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Zobraziť splash screen pri spustení (predvolené: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Zmenšiť debug.log pri spustení klienta (predvolené: 1 ak bez -debug)</translation> </message> @@ -3082,10 +3066,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Podpísanie správy zlyhalo</translation> </message> <message> - <source>Start minimized</source> - <translation>Spustiť minimalizované</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Toto je experimentálny softvér.</translation> </message> @@ -3106,10 +3086,6 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Transakcia príliš veľká</translation> </message> <message> - <source>UI Options:</source> - <translation>Možnosti používateľského rozhrania:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Na tomto počítači sa nedá vytvoriť väzba %s (vytvorenie väzby vrátilo chybu %s)</translation> </message> @@ -3190,6 +3166,10 @@ The network does not appear to fully agree! Some miners appear to be experiencin <translation>Chyba načítania wallet.dat</translation> </message> <message> + <source>Generate coins (default: %u)</source> + <translation>Generovať mince (predvolené: %u)</translation> + </message> + <message> <source>How many blocks to check at startup (default: %u, 0 = all)</source> <translation>Koľko blokov overiť pri spustení (predvolené: %u, 0 = všetky)</translation> </message> diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts index ca65810396..c62c8cf273 100644 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ b/src/qt/locale/bitcoin_sl_SI.ts @@ -874,7 +874,7 @@ <source>command-line options</source> <translation>možnosti ukazne vrstice</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -917,7 +917,11 @@ <source>%n GB of free space available</source> <translation><numerusform>%n GiB prostega prostora na voljo</numerusform><numerusform>%n GiB prostega prostora na voljo</numerusform><numerusform>%n GiB prostega prostora na voljo</numerusform><numerusform>%n GiB prostega prostora na voljo</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(od potrebnih %n GiB)</numerusform><numerusform>(od potrebnih %n GiB)</numerusform><numerusform>(od potrebnih %n GiB)</numerusform><numerusform>(od potrebnih %n GiB)</numerusform></translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> @@ -1068,6 +1072,10 @@ <translation>Vrata posredniškega strežnika (npr. 9050)</translation> </message> <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Za dostop do soležnikov preko skritih storitev Tor uporabi drug posredniški strežnik SOCKS5:</translation> + </message> + <message> <source>&Window</source> <translation>O&kno</translation> </message> @@ -2832,10 +2840,6 @@ <translation>Sprejemaj povezave samo od soležnikov, ki so na naslovih, ki ustrezajo navedeni omrežni maski ali naslovu. Opcijo lahko navedete večkrat.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(privzeto: 1)</translation> - </message> - <message> <source><category> can be:</source> <translation><category> je lahko:</translation> </message> @@ -3012,10 +3016,6 @@ <translation>Naslova %s, podanega pri opciji -whitebind ni mogoče razrešiti.</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Ob zagonu pozovi uporabnika, naj izbere podatkovno mapo (privzeto: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Poveži se preko posredniškega strežnika SOCKS5</translation> </message> @@ -3028,24 +3028,24 @@ <translation>Informacije</translation> </message> <message> - <source>Need to specify a port with -whitebind: '%s'</source> - <translation>Pri opciji -whitebind morate navesti vrata: %s</translation> + <source>Invalid amount for -maxtxfee=<amount>: '%s'</source> + <translation>Neveljavna količina za -maxtxfee=<amount>: '%s'</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Pošilja sledilne/razhroščevalne informacije na konzolo namesto v datoteko debug.log</translation> + <source>Invalid amount for -minrelaytxfee=<amount>: '%s'</source> + <translation>Neveljavna količina za -minrelaytxfee=<amount>: '%s'</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Nastavi korenske certifikate SSL za preverjanje zahtevkov za plačilo (privzeto: -system-)</translation> + <source>Invalid amount for -mintxfee=<amount>: '%s'</source> + <translation>Neveljavna količina za -mintxfee=<amount>: '%s'</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Nastavi jezik, npr. "sl_SI" (privzeto: jezik sistema)</translation> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Pri opciji -whitebind morate navesti vrata: %s</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Ob zagonu prikaži uvodni zaslon (privzeto: 1)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Pošilja sledilne/razhroščevalne informacije na konzolo namesto v datoteko debug.log</translation> </message> <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> @@ -3056,10 +3056,6 @@ <translation>Transakcije ni bilo mogoče podpisati.</translation> </message> <message> - <source>Start minimized</source> - <translation>Zaženi v minimiranem oknu</translation> - </message> - <message> <source>This is experimental software.</source> <translation>Program je eksperimentalne narave.</translation> </message> @@ -3076,10 +3072,6 @@ <translation>Transkacija je prevelika</translation> </message> <message> - <source>UI Options:</source> - <translation>Možnosti uporabniškega vmesnika:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Na tem računalniku ni bilo mogoče vezati naslova %s (vrnjena napaka: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts index 769b45b562..994b065994 100644 --- a/src/qt/locale/bitcoin_sq.ts +++ b/src/qt/locale/bitcoin_sq.ts @@ -202,6 +202,10 @@ <translation>&Opsione</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Duke marr adresen</translation> + </message> + <message> <source>Change the passphrase used for wallet encryption</source> <translation>Ndrysho frazkalimin e përdorur per enkriptimin e portofolit</translation> </message> @@ -421,6 +425,10 @@ <source>Options</source> <translation>Opsionet</translation> </message> + <message> + <source>W&allet</source> + <translation>Portofol</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -448,6 +456,10 @@ <context> <name>RPCConsole</name> <message> + <source>&Information</source> + <translation>Informacion</translation> + </message> + <message> <source>&Open</source> <translation>&Hap</translation> </message> @@ -467,13 +479,25 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Shuma:</translation> + </message> + <message> <source>&Label:</source> <translation>&Etiketë:</translation> </message> + <message> + <source>Clear</source> + <translation>Pastro</translation> + </message> </context> <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Kopjo adresen</translation> + </message> + <message> <source>Address</source> <translation>Adresë</translation> </message> @@ -512,6 +536,10 @@ <translation>Dërgo Monedha</translation> </message> <message> + <source>Insufficient funds!</source> + <translation>Fonde te pamjaftueshme</translation> + </message> + <message> <source>Amount:</source> <translation>Shuma:</translation> </message> @@ -570,6 +598,10 @@ <source>Alt+P</source> <translation>Alt+P</translation> </message> + <message> + <source>Pay To:</source> + <translation>Paguaj drejt:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -622,6 +654,10 @@ <translation>Data</translation> </message> <message> + <source>Transaction</source> + <translation>transaksionit</translation> + </message> + <message> <source>Amount</source> <translation>Sasia</translation> </message> @@ -758,6 +794,10 @@ <context> <name>bitcoin-core</name> <message> + <source>Options:</source> + <translation>Opsionet:</translation> + </message> + <message> <source>Information</source> <translation>Informacion</translation> </message> diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index 425c077b2b..b6ba896b38 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -222,6 +222,10 @@ <translation>Трака са картицама</translation> </message> <message> + <source>&About Bitcoin Core</source> + <translation>O Bitcoin Coru</translation> + </message> + <message> <source>Up to date</source> <translation>Ажурно</translation> </message> @@ -338,6 +342,10 @@ <translation>Поставке</translation> </message> <message> + <source>W&allet</source> + <translation>новчаник</translation> + </message> + <message> <source>&Unit to show amounts in:</source> <translation>&Јединица за приказивање износа:</translation> </message> @@ -375,10 +383,18 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Iznos:</translation> + </message> + <message> <source>&Label:</source> <translation>&Етикета</translation> </message> <message> + <source>&Message:</source> + <translation>Poruka:</translation> + </message> + <message> <source>Copy label</source> <translation>kopiraj naziv</translation> </message> @@ -390,6 +406,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>Kopirajte adresu</translation> + </message> + <message> <source>Address</source> <translation>Адреса</translation> </message> @@ -401,6 +421,10 @@ <source>Label</source> <translation>Етикета</translation> </message> + <message> + <source>Message</source> + <translation>Poruka</translation> + </message> </context> <context> <name>RecentRequestsTableModel</name> @@ -413,6 +437,10 @@ <translation>Етикета</translation> </message> <message> + <source>Message</source> + <translation>Poruka</translation> + </message> + <message> <source>Amount</source> <translation>iznos</translation> </message> @@ -451,6 +479,10 @@ <context> <name>SendCoinsEntry</name> <message> + <source>A&mount:</source> + <translation>Iznos:</translation> + </message> + <message> <source>&Label:</source> <translation>&Етикета</translation> </message> @@ -514,6 +546,14 @@ <translation>етикета</translation> </message> <message> + <source>Message</source> + <translation>Poruka</translation> + </message> + <message> + <source>Transaction</source> + <translation>transakcije</translation> + </message> + <message> <source>Amount</source> <translation>iznos</translation> </message> diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index bb7fcf7075..756114351f 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -739,6 +739,10 @@ Var vänlig och försök igen.</translation> <translation>Denna etikett blir röd om någon mottagare får ett belopp mindre än %1.</translation> </message> <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Kan variera +/- %1 satoshi per inmatning.</translation> + </message> + <message> <source>yes</source> <translation>ja</translation> </message> @@ -879,6 +883,34 @@ Var vänlig och försök igen.</translation> <source>command-line options</source> <translation>kommandoradsalternativ</translation> </message> + <message> + <source>UI Options:</source> + <translation>UI-inställningar:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Välj datakatalog vid uppstart (standard: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Ange språk, till exempel "de_DE" (standard: systemspråk)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Starta minimerad</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Ange SSL rotcertifikat för betalningsansökan (standard: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Visa startbild vid uppstart (standard: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Återställ alla inställningar som gjorts över GUI</translation> + </message> </context> <context> <name>Intro</name> @@ -1475,6 +1507,18 @@ Var vänlig och försök igen.</translation> <translation>Aktuellt antal block</translation> </message> <message> + <source>Memory Pool</source> + <translation>Minnespool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Nuvarande antal transaktioner</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Minnesåtgång</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Öppna felsökningsloggfilen för Bitcoin Core från den nuvarande datakatalogen. Detta kan ta några sekunder om loggfilen är stor.</translation> </message> @@ -1698,6 +1742,10 @@ Var vänlig och försök igen.</translation> <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>&Belopp:</translation> + </message> + <message> <source>&Label:</source> <translation>&Etikett:</translation> </message> @@ -2182,6 +2230,10 @@ Var vänlig och försök igen.</translation> <translation>Avgiften dras från beloppet som skickas. Mottagaren kommer att få mindre bitcoins än du angivit i belopp-fältet. Om flera mottagare valts kommer avgiften delas jämt.</translation> </message> <message> + <source>S&ubtract fee from amount</source> + <translation>S&ubtrahera avgiften från beloppet</translation> + </message> + <message> <source>Message:</source> <translation>Meddelande:</translation> </message> @@ -2989,10 +3041,6 @@ Var vänlig och försök igen.</translation> <translation>Vitlista klienter som ansluter från angivna nätmasker eller IP-adresser. Kan specificeras flera gånger.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(förvalt: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool måste vara minst %d MB</translation> </message> @@ -3217,6 +3265,10 @@ Var vänlig och försök igen.</translation> <translation>Sätt den maximala storleken av hög-prioriterade/låg-avgifts transaktioner i byte (förvalt: %d)</translation> </message> <message> + <source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source> + <translation>Ange antalet trådar för myntgenerering om påslagen (-1= alla kärnor, förval: %d)</translation> + </message> + <message> <source>The transaction amount is too small to send after the fee has been deducted</source> <translation>Transaktionen är för liten att skicka efter det att avgiften har dragits</translation> </message> @@ -3261,10 +3313,6 @@ Var vänlig och försök igen.</translation> <translation>Kan inte matcha -whitebind adress: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Välj datakatalog vid uppstart (förvalt: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>Anslut genom SOCKS5 proxy</translation> </message> @@ -3353,22 +3401,10 @@ Var vänlig och försök igen.</translation> <translation>Sänd transaktioner som nollavgiftstransaktioner om möjligt (förvalt: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Sätt SSL root-certifikat för betalningsbegäran (förvalt: -system-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Ändra språk, till exempel "de_DE" (förvalt: systemets språk)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Visa alla avlusningsalternativ (använd: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Visa startbilden vid uppstart (förvalt: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Krymp debug.log filen vid klient start (förvalt: 1 vid ingen -debug)</translation> </message> @@ -3377,10 +3413,6 @@ Var vänlig och försök igen.</translation> <translation>Signering av transaktion misslyckades</translation> </message> <message> - <source>Start minimized</source> - <translation>Starta som minimerad</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Transaktionen är för liten för att betala avgiften</translation> </message> @@ -3413,10 +3445,6 @@ Var vänlig och försök igen.</translation> <translation>Transaktionen är för stor</translation> </message> <message> - <source>UI Options:</source> - <translation>UI Alternativ:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Det går inte att binda till %s på den här datorn (bind returnerade felmeddelande %s)</translation> </message> @@ -3497,6 +3525,10 @@ Var vänlig och försök igen.</translation> <translation>Fel vid läsning av wallet.dat! Alla nycklar lästes korrekt, men transaktionsdata eller adressbokens poster kanske saknas eller är felaktiga.</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Avgifter (i %s/kB) mindre än detta anses vara nollavgifter vid skapande av transaktion (standard: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Hur grundlig blockverifikationen vid -checkblocks är (0-4, förvalt: %u)</translation> </message> @@ -3513,6 +3545,10 @@ Var vänlig och försök igen.</translation> <translation>Skriv ut avlusningsinformation (förvalt: %u, att ange <category> är frivilligt)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Stöd filtrering av block och transaktioner med bloomfilter (standard: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>Total längd på strängen för nätverksversion (%i) överskrider maxlängden (%i). Minska numret eller storleken på uacomments.</translation> </message> @@ -3529,6 +3565,10 @@ Var vänlig och försök igen.</translation> <translation>Använd separat SOCKS5 proxy för att nå kollegor via dolda tjänster i Tor (förvalt: -%s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Användarnamn och hashat lösenord för JSON-RPC-anslutningar. Fältet <userpw> kommer i formatet: <USERNAME>:<SALT>$<HASH>. Ett kanoniskt pythonskript finns inkluderat i share/rpcuser. Detta alternativ kan anges flera gånger</translation> + </message> + <message> <source>(default: %s)</source> <translation>(förvalt: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_th_TH.ts b/src/qt/locale/bitcoin_th_TH.ts index 75fdfc5bdf..79a55cdd51 100644 --- a/src/qt/locale/bitcoin_th_TH.ts +++ b/src/qt/locale/bitcoin_th_TH.ts @@ -282,6 +282,10 @@ </context> <context> <name>ReceiveCoinsDialog</name> + <message> + <source>&Label:</source> + <translation>&ชื่อ:</translation> + </message> </context> <context> <name>ReceiveRequestDialog</name> @@ -318,6 +322,10 @@ </context> <context> <name>SendCoinsEntry</name> + <message> + <source>&Label:</source> + <translation>&ชื่อ:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -385,5 +393,9 @@ </context> <context> <name>bitcoin-core</name> + <message> + <source>Options:</source> + <translation>ตัวเลือก:</translation> + </message> </context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index fa8392b3df..96fca8bb24 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -222,7 +222,15 @@ </context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/Ağ maskesi</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Şu vakte kadar yasaklı:</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -874,6 +882,34 @@ <source>command-line options</source> <translation>komut satırı seçenekleri</translation> </message> + <message> + <source>UI Options:</source> + <translation>Arayüz Seçenekleri:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Başlangıçta veri klasörü seç (varsayılan: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Lisan belirt, mesela "de_De" (varsayılan: sistem dili)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Küçültülmüş olarak başlat</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Ödeme talebi için SSL kök sertifikalarını belirle (varsayılan: -system-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Başlatıldığında başlangıç ekranını göster (varsayılan: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Arayüzde yapılan tüm seçenek değişikliklerini sıfırla</translation> + </message> </context> <context> <name>Intro</name> @@ -1072,6 +1108,34 @@ <translation>Vekil sunucunun portu (mesela 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>Eşlere ulaşmak için kullanılır, şu yoluyla:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Bu şebeke türü yoluyla eşlere bağlanmak için belirtilen varsayılan SOCKS5 vekil sunucusunun kullanılıp kullanılmadığını gösterir.</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Bitcoin şebekesine gizli Tor servisleri için ayrı bir SOCKS5 vekil sunucusu vasıtasıyla bağlan.</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>Eşlere gizli Tor servisleri ile ulaşmak için ayrı SOCKS5 vekil sunucusu kullan:</translation> + </message> + <message> <source>&Window</source> <translation>&Pencere</translation> </message> @@ -1442,6 +1506,18 @@ <translation>Güncel blok sayısı</translation> </message> <message> + <source>Memory Pool</source> + <translation>Bellek Alanı</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Güncel muamele sayısı</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Bellek kullanımı</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Güncel veri klasöründen Bitcoin Çekirdeği hata ayıklama kütük dosyasını açar. Büyük kütük dosyaları için bu birkaç saniye alabilir.</translation> </message> @@ -1458,10 +1534,18 @@ <translation>&Eşler</translation> </message> <message> + <source>Banned peers</source> + <translation>Yasaklı eşler</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>Ayrıntılı bilgi görmek için bir eş seçin.</translation> </message> <message> + <source>Whitelisted</source> + <translation>Beyaz listedekiler</translation> + </message> + <message> <source>Direction</source> <translation>Yön</translation> </message> @@ -1470,6 +1554,18 @@ <translation>Sürüm</translation> </message> <message> + <source>Starting Block</source> + <translation>Başlangıç Bloku</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Eşleşmiş Başlıklar</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Eşleşmiş Bloklar</translation> + </message> + <message> <source>User Agent</source> <translation>Kullanıcı Yazılımı</translation> </message> @@ -1498,6 +1594,14 @@ <translation>Ping Süresi</translation> </message> <message> + <source>The duration of a currently outstanding ping.</source> + <translation>Güncel olarak göze çarpan bir ping'in süresi.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Ping Beklemesi</translation> + </message> + <message> <source>Time Offset</source> <translation>Saat Farkı</translation> </message> @@ -1546,6 +1650,34 @@ <translation>Konsolu temizle</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>Düğümle Bağlantıyı &Kes</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>Düğümü şu süre için yasakla:</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &saat</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &gün</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &hafta</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &yıl</translation> + </message> + <message> + <source>&Unban Node</source> + <translation>Düğümün Yasağını Kald&ır</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>Bitcoin Çekirdeği RPC konsoluna hoş geldiniz.</translation> </message> @@ -1574,6 +1706,10 @@ <translation>%1 GB</translation> </message> <message> + <source>(node id: %1)</source> + <translation>(düğüm kimliği: %1)</translation> + </message> + <message> <source>via %1</source> <translation>%1 vasıtasıyla</translation> </message> @@ -1966,6 +2102,10 @@ <translation>Para üstünü kopyala</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Toplam Meblağ %1</translation> + </message> + <message> <source>or</source> <translation>veya</translation> </message> @@ -1998,6 +2138,14 @@ <translation>Ödeme talebinin ömrü doldu.</translation> </message> <message> + <source>Pay only the required fee of %1</source> + <translation>Sadece gerekli ücret olan %1 tutarını öde</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Tahmini olarak %n blok içinde teyide başlanacaktır.</numerusform><numerusform>Tahmini olarak %n blok içinde teyide başlanacaktır.</numerusform></translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Alıcı adresi geçerli değildir. Lütfen denetleyiniz.</translation> </message> @@ -2629,6 +2777,10 @@ <translation>Muamele kimliğini kopyala</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Ham muameleyi kopyala</translation> + </message> + <message> <source>Edit label</source> <translation>Etiketi düzenle</translation> </message> @@ -2776,10 +2928,54 @@ <translation>Komut satırı ve JSON-RPC komutlarını kabul et</translation> </message> <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>Eğer <kategori> belirtilmemişse ya da <kategori> = 1 ise, tüm hata ayıklama verilerini dök.</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>Tek cüzdan muamelesinde kullanılacak azami toplam ücret (%s olarak); bunu çok düşük olarak ayarlamak büyük muameleleri iptal edebilir (varsayılan: %s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>Lütfen bilgisayarınızın saat ve tarihinin doğru olduğunu kontol ediniz! Saatinizde gecikme varsa Bitcoin Çekirdeği doğru şekilde çalışamaz.</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Prune, asgari değer olan %d MiB'den düşük olarak ayarlanmıştır. Lütfen daha yüksek bir sayı kullanınız.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Budama: son cüzdan eşleşmesi budanmış verilerin ötesine gitmektedir. -reindex kullanmanız gerekmektedir (Budanmış düğüm ise tüm blok zincirini tekrar indirmeniz gerekir.)</translation> + </message> + <message> + <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> + <translation>Depolama gerekliliğini eski blokları budayarak (silerek) düşür. Bu kip -txindex ve -rescan ile uyumsuzdur. İkaz: Bu ayarı geri almak tüm blok zincirini yeniden indirmeyi gerektirir. (varsayılan: 0 = blokları silmeyi devre dışı bırak, >%u = MiB olarak blok dosyaları için kullanılacak hedef boyut)</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>Tekrar taramalar budanmış kipte mümkün değildir. Tüm blok zincirini tekrar indirecek olan -reindex seçeneğini kullanmanız gerekecektir.</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Hata: Ölümcül dahili bir hata meydana geldi, ayrıntılar için debug.log dosyasına bakınız</translation> + </message> + <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>Yolladığınız muamelelere eklenecek ücret (%s/kB olarak) (varsayılan: %s)</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Blockstore budanıyor...</translation> + </message> + <message> <source>Run in the background as a daemon and accept commands</source> <translation>Arka planda daemon (servis) olarak çalış ve komutları kabul et</translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>HTTP sunucusu başlatılamadı. Ayrıntılar için debug.log dosyasına bakınız.</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Dışarıdan gelen bağlantıları kabul et (varsayılan: -proxy veya -connect yoksa 1)</translation> </message> @@ -2804,6 +3000,10 @@ <translation>Betik kontrolü iş parçacıklarının sayısını belirler (%u ilâ %d, 0 = otomatik, <0 = bu sayıda çekirdeği kullanma, varsayılan: %d)</translation> </message> <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>Blok veritabanı gelecekten gibi görünen bir blok içermektedir. Bu, bilgisayarınızın saat ve tarihinin yanlış ayarlanmış olmasından kaynaklanabilir. Blok veritabanını sadece bilgisayarınızın tarih ve saatinin doğru olduğundan eminseniz yeniden derleyin.</translation> + </message> + <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> <translation>Bu yayın öncesi bir deneme sürümüdür - tüm riski siz üstlenmiş olursunuz - bitcoin oluşturmak ya da ticari uygulamalar için kullanmayınız</translation> </message> @@ -2812,6 +3012,10 @@ <translation>Bu bilgisayarda %s unsuruna bağlanılamadı. Bitcoin Çekirdeği muhtemelen hâlihazırda çalışmaktadır.</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>Dinlenecek portu haritalamak için UPnP kullan (varsayılan: dinlenildiğinde ve -proxy olmadığında 1)</translation> + </message> + <message> <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> <translation>İKAZ: anormal yüksek sayıda blok oluşturulmuştur, %d blok son %d saat içinde alınmıştır (%d bekleniyordu)</translation> </message> @@ -2836,8 +3040,8 @@ <translation>Belirtilen ağ maskesi ya da IP adresinden bağlanan eşleri beyaz listeye al. Birden fazla kez belirtilebilir.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(varsayılan: 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool asgari %d MB olmalıdır</translation> </message> <message> <source><category> can be:</source> @@ -2872,6 +3076,22 @@ <translation>Blok veritabanını şimdi yeniden inşa etmek istiyor musunuz?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Blok karma değerinin <adres>te yayınlanmasını etkinleştir</translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Karma değer muamelesinin <adres>te yayınlanmasını etkinleştir</translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Ham blokun <adres>te yayınlanmasını etkinleştir</translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Ham muamelenin <adres>te yayınlanmasını etkinleştir</translation> + </message> + <message> <source>Error initializing block database</source> <translation>Blok veritabanını başlatılırken bir hata meydana geldi</translation> </message> @@ -2908,6 +3128,10 @@ <translation>Geçersiz -onion adresi: '%s'</translation> </message> <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>Muamele bellek alanını <n> megabayttan düşük tut (varsayılan: %u)</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>Kafi derecede dosya tanımlayıcıları mevcut değil.</translation> </message> @@ -2936,10 +3160,26 @@ <translation>Cüzdan dosyası belirtiniz (veri klasörünün içinde)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>Desteklenmeyen -benchmark argümanı görmezden gelindi, -debug=bench kullanınız.</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>Desteklenmeyen -debugnet argümanı görmezden gelindi, debug=net kullanınız.</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>Deskteklenmeyen -tor argümanı bulundu, -onion kullanınız.</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>Dinleme portunu haritalamak için UPnP kullan (varsayılan: %u)</translation> </message> <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>Kullanıcı Aracı açıklaması (%s) güvensiz karakterler içermektedir.</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Bloklar kontrol ediliyor...</translation> </message> @@ -2996,6 +3236,10 @@ <translation>İlgili bir uyarı alındığında ya da gerçekten uzun bir çatallama gördüğümüzde komutu çalıştır (komuttaki %s mesaj ile değiştirilir)</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Bundan düşük ücretler (%s/kB olarak) aktarma, oluşturma ve muamele yaratma için sıfır değerinde ücret olarak kabul edilir (varsayılan: %s)</translation> + </message> + <message> <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> <translation>Eğer paytxfee ayarlanmadıysa kafi derecede ücret ekleyin ki muameleler teyite vasati n blok içinde başlasın (varsayılan: %u)</translation> </message> @@ -3052,12 +3296,20 @@ <translation>En iyi zincir etkinleştiriliyor...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>-whitebind adresi çözümlenemedi: '%s'</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Beyaz listedeki eşlerden gelen muameleleri daima aktar (varsayılan: %d)</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Başlangıçta veri klasörü seç (varsayılan: 0)</translation> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Başlangıçta bozuk bir wallet.dat dosyasından özel anahtarları geri kazanmayı dene</translation> + </message> + <message> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Otomatik olarak gizli Tor servisi oluştur (varsayılan: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>-whitebind adresi çözümlenemedi: '%s'</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3076,6 +3328,10 @@ <translation>Veritabanından okumada hata, kapatılıyor.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Başlangıçta harici blk000??.dat dosyasından blokları içe aktarır</translation> + </message> + <message> <source>Information</source> <translation>Bilgi</translation> </message> @@ -3128,30 +3384,26 @@ <translation>P2P ağından gelen önemli uyarıları alın ve gösterin (önseçili değer: %u)</translation> </message> <message> - <source>Send trace/debug info to console instead of debug.log file</source> - <translation>Trace/hata ayıklama verilerini debug.log dosyası yerine konsola gönder</translation> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Sistem sınırlamaları sebebiyle -maxconnections %d değerinden %d değerine düşürülmüştür.</translation> </message> <message> - <source>Send transactions as zero-fee transactions if possible (default: %u)</source> - <translation>Muameleleri mümkünse ücretsiz olarak gönder (varsayılan: %u)</translation> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Başlangıçta blok zincirini eksik cüzdan muameleleri için tekrar tara</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Ödeme talebi için SSL kök sertifikalarını belirle (varsayılan: -system-)</translation> + <source>Send trace/debug info to console instead of debug.log file</source> + <translation>Trace/hata ayıklama verilerini debug.log dosyası yerine konsola gönder</translation> </message> <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Lisan belirt, mesela "de_De" (varsayılan: sistem dili)</translation> + <source>Send transactions as zero-fee transactions if possible (default: %u)</source> + <translation>Muameleleri mümkünse ücretsiz olarak gönder (varsayılan: %u)</translation> </message> <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Tüm hata ayıklama seçeneklerini göster (kullanımı: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Başlatıldığında başlangıç ekranını göster (varsayılan: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>İstemci başlatıldığında debug.log dosyasını küçült (varsayılan: -debug bulunmadığında 1)</translation> </message> @@ -3160,10 +3412,6 @@ <translation>Muamelenin imzalanması başarısız oldu</translation> </message> <message> - <source>Start minimized</source> - <translation>Küçültülmüş olarak başlat</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Muamele meblağı ücreti ödemek için çok düşük</translation> </message> @@ -3172,6 +3420,14 @@ <translation>Bu, deneysel bir yazılımdır.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Tor kontrol portu parolası (varsayılan: boş)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Eğer onion dinlenmesi etkinse kullanılacak Tor kontrol portu (varsayılan: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Muamele meblağı çok düşük</translation> </message> @@ -3188,14 +3444,14 @@ <translation>Muamele çok büyük</translation> </message> <message> - <source>UI Options:</source> - <translation>Arayüz Seçenkleri:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Bu bilgisayarda %s unsuruna bağlanılamadı (bağlanma %s hatasını verdi)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Başlangıçta cüzdanı en yeni biçime güncelle</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>JSON-RPC bağlantıları için kullanıcı ismi</translation> </message> @@ -3208,10 +3464,18 @@ <translation>Uyarı</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Salt blok kipinde çalışılıp çalışılmayacağı (varsayılan: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Cüzdandaki tüm muameleler kaldırılıyor...</translation> </message> <message> + <source>ZeroMQ notification options:</source> + <translation>ZeroMQ bildirim seçenekleri:</translation> + </message> + <message> <source>wallet.dat corrupt, salvage failed</source> <translation>wallet.dat bozuk, geri kazanım başarısız oldu</translation> </message> @@ -3244,6 +3508,26 @@ <translation>(1 = tx meta verilerini tut mesela hesap sahibi ve ödeme talebi bilgileri, 2 = tx meta verilerini at)</translation> </message> <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee çok yüksek bir değere ayarlanmış! Bu denli yüksek ücretler tek bir muamelede ödenebilir.</translation> + </message> + <message> + <source>-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source> + <translation>-paytxfee çok yüksek bir değere ayarlanmış! Bu, muamele gönderirseniz ödeyeceğiniz muamele ücretidir.</translation> + </message> + <message> + <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> + <translation>Muameleleri bellek alanında <n> saatten fazla tutma (varsayılan: %u)</translation> + </message> + <message> + <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>wallet.dat dosyasının okunması sırasında bir hata meydana geldi! Tüm anahtarlar doğru bir şekilde okundu, ancak muamele verileri ya da adres defteri unsurları hatalı veya eksik olabilir.</translation> + </message> + <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Bundan düşük ücretler (%s/kB olarak) muamele oluşturulması için sıfır değerinde ücret olarak kabul edilir (varsayılan: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>-checkblocks'un blok kontrolünün ne kadar kapsamlı olacağı (0 ilâ 4, varsayılan: %u)</translation> </message> @@ -3260,10 +3544,30 @@ <translation>Hata ayıklama bilgisi dök (varsayılan: %u, <kategori> sağlanması seçime dayalıdır)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Blokların ve muamelelerin bloom filtreleri ile süzülmesini destekle (varsayılan: %u)</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Şebeke sürümü zincirinin toplam boyutu (%i) azami boyutu geçmektedir (%i). Kullanıcı aracı açıklamasının sayısı veya boyutunu azaltınız.</translation> + </message> + <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Giden trafiği belirtilen hedefin altında tutmaya çalışır (24 saat başı MiB olarak), 0 = sınırsız (varsayılan: %d)</translation> + </message> + <message> + <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> + <translation>Desteklenmeyen -socks argümanı bulundu. SOCKS sürümünün ayarlanması artık mümkün değildir, sadece SOCKS5 vekilleri desteklenmektedir.</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>Eşlere gizli Tor servisleri ile ulaşmak için ayrı SOCKS5 vekil sunucusu kullan (varsayılan: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>JSON-RPC bağlantıları için kullanıcı ismi ve karmalanmış parola. <userpw> alanı şu biçimdedir: <USERNAME>:<SALT>$<HASH>. Kanonik bir Python betiği share/rpcuser klasöründe bulunabilir. Bu seçenek birden çok kez belirtilebilir.</translation> + </message> + <message> <source>(default: %s)</source> <translation>(varsayılan: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_tr_TR.ts b/src/qt/locale/bitcoin_tr_TR.ts new file mode 100644 index 0000000000..10866b011b --- /dev/null +++ b/src/qt/locale/bitcoin_tr_TR.ts @@ -0,0 +1,281 @@ +<TS language="tr_TR" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Adresi veya etiketi düzenlemek için sağ tıklayın</translation> + </message> + <message> + <source>Create a new address</source> + <translation>Yeni adres oluştur</translation> + </message> + <message> + <source>&New</source> + <translation>&Yeni</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Seçili adresi panoya kopyala</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Kopyala</translation> + </message> + <message> + <source>C&lose</source> + <translation>K&apat</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Adresi Kopyala</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Seçili adresi listeden sil</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Seçili sekmedeki veriyi dosya olarak dışa aktar</translation> + </message> + <message> + <source>&Export</source> + <translation>&Dışa Aktar</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Sil</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Para göndereceğiniz adresi seçin</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Parayı alacağınız adresi seçin</translation> + </message> + <message> + <source>C&hoose</source> + <translation>S&eç</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Gönderim adresleri</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Alış adresleri</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>Bunlar ödeme gönderebileceğiniz Bitcoin adreslerinizdir. Para göndermeden önce mutlaka alıcı adresini ve tutarı kontrol edin.</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>Bunlar ödeme alabileceğiniz Bitcoin adreslerinizdir. Her işlem için yeni bir adres kullanmanız önerilir.</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Kopyala &Etiketle</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Düzenle</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Adres Listesini Dışa Aktar</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Dışa Aktarma Başarısız Oldu</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>Adres listesini %1'e kaydederken bir hata oluştu. Lütfen tekrar deneyin.</translation> + </message> +</context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Etiket</translation> + </message> + <message> + <source>Address</source> + <translation>Adres</translation> + </message> + <message> + <source>(no label)</source> + <translation>(etiket yok)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>&Receiving addresses...</source> + <translation>Alış adresleri</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>(no label)</source> + <translation>(etiket yok)</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Etiket</translation> + </message> + <message> + <source>&Address</source> + <translation>Adres</translation> + </message> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + </context> +<context> + <name>Intro</name> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + </context> +<context> + <name>ReceiveCoinsDialog</name> + </context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Copy &Address</source> + <translation>&Adresi Kopyala</translation> + </message> + <message> + <source>Address</source> + <translation>Adres</translation> + </message> + <message> + <source>Label</source> + <translation>Etiket</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Label</source> + <translation>Etiket</translation> + </message> + <message> + <source>(no label)</source> + <translation>(etiket yok)</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>(no label)</source> + <translation>(etiket yok)</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Label</source> + <translation>Etiket</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Exporting Failed</source> + <translation>Dışa Aktarma Başarısız Oldu</translation> + </message> + <message> + <source>Label</source> + <translation>Etiket</translation> + </message> + <message> + <source>Address</source> + <translation>Adres</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + <message> + <source>&Export</source> + <translation>&Dışa Aktar</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Seçili sekmedeki veriyi dosya olarak dışa aktar</translation> + </message> + </context> +<context> + <name>bitcoin-core</name> + </context> +</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index e0afa8eff8..ea783aa856 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>параметри командного рядка</translation> </message> + <message> + <source>UI Options:</source> + <translation>Параметри інтерфейсу:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>Обирати каталог даних під час запуску (типово: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>Встановити мову (наприклад: "de_DE") (типово: системна)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>Запускати згорнутим</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>Вказати кореневі SSL-сертифікати для запиту платежу (типово: -системні-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>Показувати заставку під час запуску (типово: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>Скинути налаштування, які було змінено через графічний інтерфейс користувача</translation> + </message> </context> <context> <name>Intro</name> @@ -1084,6 +1112,10 @@ <translation>Приєднуватися до учасників через:</translation> </message> <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Вказує на використання наявного типового проксі SOCKS5, що використувується задля встановлення зв'язку з пірами через мережу такого типу.</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -1474,6 +1506,18 @@ <translation>Поточне число блоків</translation> </message> <message> + <source>Memory Pool</source> + <translation>Пул пам'яті</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Поточне число транзакцій</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Використання пам'яті</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Відкрити файл журналу налагодження Bitcoin Core з поточного каталогу даних. Це може зайняти кілька секунд для великих файлів журналів.</translation> </message> @@ -2058,6 +2102,10 @@ <translation>Копіювати решту</translation> </message> <message> + <source>Total Amount %1</source> + <translation>Всього %1</translation> + </message> + <message> <source>or</source> <translation>або</translation> </message> @@ -2089,6 +2137,10 @@ <source>Payment request expired.</source> <translation>Запит платежу прострочено.</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>Сплатіть лише мінімальну комісію у розмірі %1</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>Перше підтвердження очікується протягом %n блоку.</numerusform><numerusform>Перше підтвердження очікується протягом %n блоків.</numerusform><numerusform>Перше підтвердження очікується протягом %n блоків.</numerusform></translation> @@ -2725,6 +2777,10 @@ <translation>Скопіювати ID транзакції </translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Скопіювати RAW транзакцію</translation> + </message> + <message> <source>Edit label</source> <translation>Редагувати мітку</translation> </message> @@ -2888,6 +2944,10 @@ <translation>Встановлений розмір ланцюжка блоків є замалим (меншим за %d МіБ). Будь ласка, виберіть більше число.</translation> </message> <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Операція відсікання: остання синхронізація вмісту гаманцю не обмежується діями над скороченими данними. Вам необхідно зробити переіндексацію -reindex (заново завантажити веcь ланцюжок блоків в разі появи скороченого ланцюга)</translation> + </message> + <message> <source>Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, >%u = target size in MiB to use for block files)</source> <translation>Зменшити вимоги до наявного простору на носії даних за допомогою скорочення ланцюжка (видалення старих блоків). Цей режим несумісний з параметрами -txindex та -rescan. Увага: при поверненні до типового значення видалені частини ланцюжка буде повторно завантажено. (типово: 0 = вимкнути скорочення ланцюжка, >%u = очікуваний розмір файлів блоків в МіБ)</translation> </message> @@ -2980,10 +3040,6 @@ <translation>Додати учасників, що під'єднуються з заданої підмережі чи IP-адреси, в білий список. Можна вказувати декілька разів.</translation> </message> <message> - <source>(default: 1)</source> - <translation>(типово: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>-maxmempool має бути не менше %d МБ</translation> </message> @@ -3020,6 +3076,22 @@ <translation>Ви хочете перебудувати базу даних блоків зараз?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>Дозволено введення хеш блоку в рядок <address></translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>Дозволено введення хеш транзакції в рядок <address></translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>Дозволено введення RAW блоку в рядок <address></translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>Дозволено введення RAW транзакції в рядок <address></translation> + </message> + <message> <source>Error initializing block database</source> <translation>Помилка ініціалізації бази даних блоків</translation> </message> @@ -3164,6 +3236,10 @@ <translation>Виконати команду при надходженні важливого сповіщення або при спостереженні тривалого розгалуження ланцюжка (замість %s буде підставлено повідомлення)</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)</source> + <translation>Комісії (в %s/kB), що менші за вказану, вважатимуться нульовими для зміни, аналізу та створення транзакцій (типово: %s)</translation> + </message> + <message> <source>If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)</source> <translation>Якщо параметр paytxfee не встановлено, включити комісію для отримання перших підтверджень транзакцій протягом n блоків (типово: %u)</translation> </message> @@ -3220,12 +3296,20 @@ <translation>Активація найкращого ланцюжка...</translation> </message> <message> - <source>Cannot resolve -whitebind address: '%s'</source> - <translation>Не вдалося розпізнати адресу для -whitebind: «%s»</translation> + <source>Always relay transactions received from whitelisted peers (default: %d)</source> + <translation>Завжди передавайте транзакції отримані від пірів з білого списку (типово: %d)</translation> + </message> + <message> + <source>Attempt to recover private keys from a corrupt wallet.dat on startup</source> + <translation>Спочатку спробуйте відновити приватні ключі в пошкодженому wallet.dat </translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Обрати каталог даних під час запуску (типово: 0)</translation> + <source>Automatically create Tor hidden service (default: %d)</source> + <translation>Автоматичне з'єднання з прихованим сервісом Tor (типово: %d)</translation> + </message> + <message> + <source>Cannot resolve -whitebind address: '%s'</source> + <translation>Не вдалося розпізнати адресу для -whitebind: «%s»</translation> </message> <message> <source>Connect through SOCKS5 proxy</source> @@ -3244,6 +3328,10 @@ <translation>Помилка читання бази даних, припиняю роботу.</translation> </message> <message> + <source>Imports blocks from external blk000??.dat file on startup</source> + <translation>Спочатку імпортує блоки з зовнішнього файлу blk000??.dat </translation> + </message> + <message> <source>Information</source> <translation>Інформація</translation> </message> @@ -3300,6 +3388,10 @@ <translation>Зменшення значення -maxconnections з %d до %d із-за обмежень системи.</translation> </message> <message> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>Спочатку переглянте ланцюжок блоків на наявність втрачених транзакцій гаманця</translation> + </message> + <message> <source>Send trace/debug info to console instead of debug.log file</source> <translation>Відсилати налагоджувальну інформацію на консоль, а не у файл debug.log</translation> </message> @@ -3308,22 +3400,10 @@ <translation>Не сплачувати комісію за надсилання транзакцій, якщо це можливо (типово: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Вказати кореневі SSL-сертифікати для запиту платежу (типово: -системні-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>Встановлення мови, наприклад "de_DE" (типово: системна)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>Показати всі налагоджувальні параметри (використання: --help -help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>Показувати заставку під час запуску (типово: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>Стискати файл debug.log під час старту клієнта (типово: 1 коли відсутній параметр -debug)</translation> </message> @@ -3332,10 +3412,6 @@ <translation>Підписання транзакції не вдалося</translation> </message> <message> - <source>Start minimized</source> - <translation>Запускати згорнутим</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>Неможливо сплатити комісію із-за малої суми транзакції</translation> </message> @@ -3344,6 +3420,14 @@ <translation>Це програмне забезпечення є експериментальним.</translation> </message> <message> + <source>Tor control port password (default: empty)</source> + <translation>Пароль управління порт протоколом Tor (типово: empty)</translation> + </message> + <message> + <source>Tor control port to use if onion listening enabled (default: %s)</source> + <translation>Скористайтесь управлінням порт протоколом Tor, в разі перехоплення обміну цибулевої маршрутизації (типово: %s)</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Сума транзакції занадто мала</translation> </message> @@ -3360,14 +3444,14 @@ <translation>Транзакція занадто велика</translation> </message> <message> - <source>UI Options:</source> - <translation>Параметри інтерфейсу:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>Неможливо прив'язатися до %s на цьому комп'ютері (bind повернув помилку: %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>Спочатку оновіть гаманець до останньої версії</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>Ім'я користувача для JSON-RPC-з'єднань</translation> </message> @@ -3380,6 +3464,10 @@ <translation>Попередження</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>Чи слід працювати в режимі тільки блоки (типово: %u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Видалення всіх транзакцій з гаманця...</translation> </message> @@ -3436,6 +3524,10 @@ <translation>Помилка читання wallet.dat! Всі ключі прочитано коректно, але дані транзакцій чи записи адресної книги можуть бути пропущені або пошкоджені.</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>Комісії (в %s/kB), що менші за вказану, вважатимуться нульовими для створення транзакцій (типово: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>Рівень ретельності перевірки блоків (0-4, типово: %u)</translation> </message> @@ -3452,10 +3544,18 @@ <translation>Виводити налагоджувальну інформацію (типово: %u, вказання <category> необов'язкове)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>Фільтрація блоків та транзакцій з допомогою фільтрів Блума (типово: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>Загальна довжина рядку мережевої версії (%i) перевищує максимально допустиму (%i). Зменшіть число чи розмір коментарів клієнта користувача.</translation> </message> <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>Намагається зберегти вихідний трафік відповідно до зданого значення (в MIB за 24 години), 0 = без обмежень (типово: %d)</translation> + </message> + <message> <source>Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source> <translation>Параметр -socks не підтримується. Можливість вказувати версію SOCKS було видалено, так як підтримується лише SOCKS5.</translation> </message> @@ -3464,6 +3564,10 @@ <translation>Використовувати окремий SOCKS5-проксі для з'єднання з учасниками через приховані сервіси Tor (типово: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>Логін та хешований пароль для зв'язків JSON-RPC. Поле <userpw> має формат: <USERNAME>:<SALT>$<HASH>. Класичний Python script додано до share/rpcuser. Цей параметр може бути застосований декілька разів.</translation> + </message> + <message> <source>(default: %s)</source> <translation>(типово: %s)</translation> </message> diff --git a/src/qt/locale/bitcoin_ur_PK.ts b/src/qt/locale/bitcoin_ur_PK.ts index db5cca3cca..e37c87baa8 100644 --- a/src/qt/locale/bitcoin_ur_PK.ts +++ b/src/qt/locale/bitcoin_ur_PK.ts @@ -124,6 +124,10 @@ <context> <name>CoinControlDialog</name> <message> + <source>Amount:</source> + <translation>رقم:</translation> + </message> + <message> <source>Amount</source> <translation>رقم</translation> </message> @@ -138,6 +142,14 @@ </context> <context> <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>چٹ</translation> + </message> + <message> + <source>&Address</source> + <translation> پتہ</translation> + </message> </context> <context> <name>FreespaceChecker</name> @@ -186,6 +198,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>کاپی پتہ</translation> + </message> + <message> <source>Address</source> <translation> پتہ</translation> </message> @@ -220,6 +236,14 @@ <context> <name>SendCoinsDialog</name> <message> + <source>Insufficient funds!</source> + <translation>ناکافی فنڈز</translation> + </message> + <message> + <source>Amount:</source> + <translation>رقم:</translation> + </message> + <message> <source>Balance:</source> <translation>بیلنس:</translation> </message> diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 004857cf01..86724564ff 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -793,6 +793,10 @@ <translation>Bitcoin Core ҳақида</translation> </message> <message> + <source>Command-line options</source> + <translation>Буйруқлар сатри мосламалари</translation> + </message> + <message> <source>Usage:</source> <translation>Фойдаланиш:</translation> </message> @@ -800,7 +804,7 @@ <source>command-line options</source> <translation>буйруқлар қатори орқали мослаш</translation> </message> -</context> + </context> <context> <name>Intro</name> <message> @@ -906,6 +910,10 @@ <translation>Тармоқ</translation> </message> <message> + <source>W&allet</source> + <translation>Ҳамён</translation> + </message> + <message> <source>Proxy &IP:</source> <translation>Прокси &IP рақами:</translation> </message> @@ -1690,6 +1698,10 @@ <source>Message:</source> <translation>Хабар</translation> </message> + <message> + <source>Pay To:</source> + <translation>Тўлов олувчи:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -2019,6 +2031,10 @@ <translation>Ўтказмалар тарихини экспорт қилиш</translation> </message> <message> + <source>Watch-only</source> + <translation>Фақат кўришга</translation> + </message> + <message> <source>Exporting Failed</source> <translation>Экспорт қилиб бўлмади</translation> </message> @@ -2114,22 +2130,10 @@ <translation>Уланиш кўрсаткичлари:</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>Ишга тушиш вақтида маълумотлар директориясини танлаш (стандарт: 0)</translation> - </message> - <message> <source>Information</source> <translation>Маълумот</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>Тўлов сўровлари учун SSL асос сертификатларини ўрнатиш (стандарт: -system-)</translation> - </message> - <message> - <source>Start minimized</source> - <translation>Йиғилганларни бошлаш</translation> - </message> - <message> <source>Username for JSON-RPC connections</source> <translation>JSON-RPC уланишлари учун фойдаланувчи номи</translation> </message> @@ -2150,6 +2154,10 @@ <translation>Манзиллар юкланмоқда...</translation> </message> <message> + <source>Insufficient funds</source> + <translation>Кам миқдор</translation> + </message> + <message> <source>Loading block index...</source> <translation>Тўсиқ индекси юкланмоқда...</translation> </message> diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 7a7c68c4b3..47745a3bc8 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -60,6 +60,10 @@ <context> <name>CoinControlDialog</name> <message> + <source>Amount:</source> + <translation>Số lượng:</translation> + </message> + <message> <source>Amount</source> <translation>Số lượng</translation> </message> @@ -70,6 +74,14 @@ </context> <context> <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Nhãn dữ liệu</translation> + </message> + <message> + <source>&Address</source> + <translation>Địa chỉ</translation> + </message> </context> <context> <name>FreespaceChecker</name> @@ -114,6 +126,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>Sao chép địa chỉ</translation> + </message> + <message> <source>Address</source> <translation>Địa chỉ</translation> </message> @@ -144,6 +160,10 @@ <context> <name>SendCoinsDialog</name> <message> + <source>Amount:</source> + <translation>Số lượng:</translation> + </message> + <message> <source>(no label)</source> <translation>(chưa có nhãn)</translation> </message> diff --git a/src/qt/locale/bitcoin_vi_VN.ts b/src/qt/locale/bitcoin_vi_VN.ts index c55aecd82d..d55fa61885 100644 --- a/src/qt/locale/bitcoin_vi_VN.ts +++ b/src/qt/locale/bitcoin_vi_VN.ts @@ -166,6 +166,10 @@ <translation>Xem thông tin về Qt</translation> </message> <message> + <source>&Receiving addresses...</source> + <translation>Địa chỉ nhận</translation> + </message> + <message> <source>Open &URI...</source> <translation>Mở &URI...</translation> </message> @@ -354,6 +358,14 @@ </context> <context> <name>EditAddressDialog</name> + <message> + <source>&Label</source> + <translation>Nhãn</translation> + </message> + <message> + <source>&Address</source> + <translation>Địa chỉ</translation> + </message> </context> <context> <name>FreespaceChecker</name> @@ -418,6 +430,10 @@ <translation>MB</translation> </message> <message> + <source>W&allet</source> + <translation>Ví</translation> + </message> + <message> <source>&Display</source> <translation>&Hiển thị</translation> </message> @@ -468,6 +484,10 @@ <context> <name>RPCConsole</name> <message> + <source>&Information</source> + <translation>Thông tin</translation> + </message> + <message> <source>General</source> <translation>Nhìn Chung</translation> </message> @@ -491,6 +511,10 @@ <context> <name>ReceiveCoinsDialog</name> <message> + <source>&Amount:</source> + <translation>Lượng:</translation> + </message> + <message> <source>Copy label</source> <translation>Copy nhãn</translation> </message> @@ -502,6 +526,10 @@ <context> <name>ReceiveRequestDialog</name> <message> + <source>Copy &Address</source> + <translation>&Copy Địa Chỉ</translation> + </message> + <message> <source>Address</source> <translation>Địa chỉ</translation> </message> @@ -536,6 +564,10 @@ <context> <name>SendCoinsDialog</name> <message> + <source>Insufficient funds!</source> + <translation>Không đủ tiền</translation> + </message> + <message> <source>Quantity:</source> <translation>Lượng:</translation> </message> @@ -570,6 +602,10 @@ </context> <context> <name>SendCoinsEntry</name> + <message> + <source>A&mount:</source> + <translation>Lượng:</translation> + </message> </context> <context> <name>ShutdownWindow</name> @@ -674,6 +710,14 @@ <context> <name>bitcoin-core</name> <message> + <source>Options:</source> + <translation>Lựa chọn:</translation> + </message> + <message> + <source>(default: %u)</source> + <translation>(mặc định: %u)</translation> + </message> + <message> <source>Information</source> <translation>Thông tin</translation> </message> diff --git a/src/qt/locale/bitcoin_zh.ts b/src/qt/locale/bitcoin_zh.ts new file mode 100644 index 0000000000..aeb4faa712 --- /dev/null +++ b/src/qt/locale/bitcoin_zh.ts @@ -0,0 +1,221 @@ +<TS language="zh" version="2.1"> +<context> + <name>AddressBookPage</name> + </context> +<context> + <name>AddressTableModel</name> + </context> +<context> + <name>AskPassphraseDialog</name> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + <message> + <source>Error</source> + <translation>错误</translation> + </message> + <message> + <source>Warning</source> + <translation>警告</translation> + </message> + </context> +<context> + <name>ClientModel</name> + </context> +<context> + <name>CoinControlDialog</name> + <message> + <source>Date</source> + <translation>日期</translation> + </message> + </context> +<context> + <name>EditAddressDialog</name> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + </context> +<context> + <name>Intro</name> + <message> + <source>Error</source> + <translation>错误</translation> + </message> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OptionsDialog</name> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + </context> +<context> + <name>ReceiveCoinsDialog</name> + </context> +<context> + <name>ReceiveRequestDialog</name> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Date</source> + <translation>日期</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + <message> + <source>Insufficient funds!</source> + <translation>余额不足</translation> + </message> + <message> + <source>Choose...</source> + <translation>选择...</translation> + </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>仅支付全额的%1</translation> + </message> + <message> + <source>The recipient address is not valid. Please recheck.</source> + <translation>收款人地址无效,请再次确认。</translation> + </message> + <message> + <source>Warning: Invalid Bitcoin address</source> + <translation>警告:比特币地址无效</translation> + </message> + </context> +<context> + <name>SendCoinsEntry</name> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>SplashScreen</name> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>日期</translation> + </message> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Date</source> + <translation>日期</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Date</source> + <translation>日期</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + </context> +<context> + <name>bitcoin-core</name> + <message> + <source>Transaction amounts must be positive</source> + <translation>转账额度须为正数</translation> + </message> + <message> + <source>Transaction too large for fee policy</source> + <translation>根据费率标准,本次转账超额</translation> + </message> + <message> + <source>Transaction too large</source> + <translation>超额转账</translation> + </message> + <message> + <source>Warning</source> + <translation>警告</translation> + </message> + <message> + <source>wallet.dat corrupt, salvage failed</source> + <translation>wallet.dat文件受损,修复失败</translation> + </message> + <message> + <source>This help message</source> + <translation>此条帮助信息</translation> + </message> + <message> + <source>Loading addresses...</source> + <translation>正在载入地址...</translation> + </message> + <message> + <source>Error loading wallet.dat: Wallet corrupted</source> + <translation>wallet.dat文件加载错误:钱包受损</translation> + </message> + <message> + <source>Error loading wallet.dat</source> + <translation>wallet.dat文件加载错误</translation> + </message> + <message> + <source>Insufficient funds</source> + <translation>余额不足</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>正在载入钱包...</translation> + </message> + <message> + <source>Rescanning...</source> + <translation>再次扫描...</translation> + </message> + <message> + <source>Done loading</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_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 1cd7eed503..0ae2c95c62 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -23,7 +23,7 @@ </message> <message> <source>C&lose</source> - <translation>关闭(&C)</translation> + <translation>关闭(&l)</translation> </message> <message> <source>&Copy Address</source> @@ -133,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> @@ -226,7 +226,11 @@ <source>IP/Netmask</source> <translation>IP/网络掩码</translation> </message> - </context> + <message> + <source>Banned Until</source> + <translation>在此之前禁止:</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -267,7 +271,7 @@ </message> <message> <source>About &Qt</source> - <translation>关于 &Qt</translation> + <translation>关于Qt(&Q)</translation> </message> <message> <source>Show information about Qt</source> @@ -303,7 +307,7 @@ </message> <message> <source>Bitcoin Core client</source> - <translation>比特币核心钱包</translation> + <translation>比特币核心钱包客户端</translation> </message> <message> <source>Importing blocks from disk...</source> @@ -311,7 +315,7 @@ </message> <message> <source>Reindexing blocks on disk...</source> - <translation>正在为数据块建立索引...</translation> + <translation>正在为数据块重建索引...</translation> </message> <message> <source>Send coins to a Bitcoin address</source> @@ -878,6 +882,34 @@ <source>command-line options</source> <translation>命令行选项</translation> </message> + <message> + <source>UI Options:</source> + <translation>界面选项:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>在启动时选择目录(默认%u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>设置语言, 例如“zh-CN”(默认:系统语言)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>启动时最小化</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>设置付款请求的SSL根证书(默认:-系统-)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>显示启动画面(默认:%u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>重置所有图形界面所做的更改</translation> + </message> </context> <context> <name>Intro</name> @@ -1076,6 +1108,14 @@ <translation>代理端口(例如 9050)</translation> </message> <message> + <source>Used for reaching peers via:</source> + <translation>连接到同伴的方式:</translation> + </message> + <message> + <source>Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>如果默认的SOCKS5代理被用于在该网络下连接同伴,则显示</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -1088,6 +1128,14 @@ <translation>Tor</translation> </message> <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>在Tor匿名网络下通过不同的SOCKS5代理连接比特币网络</translation> + </message> + <message> + <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</source> + <translation>通过Tor隐藏服务连接节点时 使用不同的SOCKS5代理</translation> + </message> + <message> <source>&Window</source> <translation>窗口(&W)</translation> </message> @@ -1458,6 +1506,18 @@ <translation>当前数据块数量</translation> </message> <message> + <source>Memory Pool</source> + <translation>资金池</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>当前交易数量</translation> + </message> + <message> + <source>Memory usage</source> + <translation>内存使用</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>从当前的数据目录打开比特币核心调试日志文件。对于较大的日志文件,这可能需要几秒钟。</translation> </message> @@ -1474,6 +1534,10 @@ <translation>同伴(&P)</translation> </message> <message> + <source>Banned peers</source> + <translation>节点黑名单</translation> + </message> + <message> <source>Select a peer to view detailed information.</source> <translation>选择节点查看详细信息。</translation> </message> @@ -1490,6 +1554,10 @@ <translation>版本</translation> </message> <message> + <source>Starting Block</source> + <translation>正在启动数据块</translation> + </message> + <message> <source>Synced Headers</source> <translation>同步区块头</translation> </message> @@ -1526,6 +1594,10 @@ <translation>Ping 时间</translation> </message> <message> + <source>Ping Wait</source> + <translation>Ping等待</translation> + </message> + <message> <source>Time Offset</source> <translation>时间偏移</translation> </message> @@ -1574,6 +1646,14 @@ <translation>清空控制台</translation> </message> <message> + <source>&Disconnect Node</source> + <translation>(&D)断开节点连接</translation> + </message> + <message> + <source>Ban Node for</source> + <translation>禁止节点连接时长:</translation> + </message> + <message> <source>1 &hour</source> <translation>1 小时(&H)</translation> </message> @@ -1590,6 +1670,10 @@ <translation>1 年(&Y)</translation> </message> <message> + <source>&Unban Node</source> + <translation>(&U)允许节点连接</translation> + </message> + <message> <source>Welcome to the Bitcoin Core RPC console.</source> <translation>欢迎使用 比特币核心 RPC 控制台。</translation> </message> @@ -2014,6 +2098,10 @@ <translation>复制零钱</translation> </message> <message> + <source>Total Amount %1</source> + <translation>总金额 %1</translation> + </message> + <message> <source>or</source> <translation>或</translation> </message> @@ -2045,6 +2133,10 @@ <source>Payment request expired.</source> <translation>支付请求已过期。</translation> </message> + <message> + <source>Pay only the required fee of %1</source> + <translation>只支付必要费用 %1</translation> + </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> <translation><numerusform>预计 %n 个数据块后被确认。</numerusform></translation> @@ -2681,6 +2773,10 @@ <translation>复制交易编号</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>复制原始交易</translation> + </message> + <message> <source>Edit label</source> <translation>编辑标签</translation> </message> @@ -2831,10 +2927,34 @@ </translation> </message> <message> + <source>If <category> is not supplied or if <category> = 1, output all debugging information.</source> + <translation>如果<category>未提供或<category> = 1,输出所有调试信息。</translation> + </message> + <message> + <source>Maximum total fees (in %s) to use in a single wallet transaction; setting this too low may abort large transactions (default: %s)</source> + <translation>最大单次转账费用(%s),设置太低可能导致大宗交易失败(默认:%s)</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly.</source> + <translation>警请检查电脑的日期时间设置是否正确!时间错误可能会导致比特币客户端运行异常。</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>修剪值被设置为低于最小值%d MiB,请使用更大的数值。</translation> + </message> + <message> + <source>Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again.</source> + <translation>无法在开启修剪的状态下重扫描,请使用 -reindex重新下载完整的区块链。</translation> + </message> + <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> <translation>错误:发生了致命的内部错误,详情见 debug.log 文件</translation> </message> <message> + <source>Fee (in %s/kB) to add to transactions you send (default: %s)</source> + <translation>为付款交易添加交易费 (%s/kB) (默认: %s) </translation> + </message> + <message> <source>Pruning blockstore...</source> <translation>正在修剪区块存储...</translation> </message> @@ -2845,6 +2965,10 @@ </translation> </message> <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>无法启动HTTP服务,查看日志获取更多信息</translation> + </message> + <message> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>接受来自外部的连接 (缺省: 如果不带 -proxy or -connect 参数设置为1)</translation> </message> @@ -2869,6 +2993,10 @@ <translation>设置脚本验证的程序 (%u 到 %d, 0 = 自动, <0 = 保留自由的核心, 默认值: %d)</translation> </message> <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>区块数据库包含未来的交易,这可能是由本机错误的日期时间引起。若确认本机日期时间正确,请重新建立区块数据库。</translation> + </message> + <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> <translation>这是测试用的预发布版本 - 请谨慎使用 - 不要用来挖矿,或者在正式商用环境下使用</translation> </message> @@ -2877,6 +3005,10 @@ <translation>无法 %s的绑定到电脑上,比特币核心钱包可能已经在运行。</translation> </message> <message> + <source>Use UPnP to map the listening port (default: 1 when listening and no -proxy)</source> + <translation>使用UPnP暴露本机监听端口(默认:1 当正在监听且不使用代理)</translation> + </message> + <message> <source>WARNING: abnormally high number of blocks generated, %d blocks received in the last %d hours (%d expected)</source> <translation>警告:数据块生成数量异常,最近 %d 小时收到了 %d 个数据块(预期为 %d 个)</translation> </message> @@ -2901,8 +3033,8 @@ <translation>节点白名单,网络掩码或IP址。可多次指定。</translation> </message> <message> - <source>(default: 1)</source> - <translation>(默认值: 1)</translation> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool 最小为%d MB</translation> </message> <message> <source><category> can be:</source> @@ -2937,6 +3069,22 @@ <translation>你想现在就重建块数据库吗?</translation> </message> <message> + <source>Enable publish hash block in <address></source> + <translation>允许在<address>广播哈希区块</translation> + </message> + <message> + <source>Enable publish hash transaction in <address></source> + <translation>允许在<address>广播哈希交易</translation> + </message> + <message> + <source>Enable publish raw block in <address></source> + <translation>允许在<address>广播原始区块</translation> + </message> + <message> + <source>Enable publish raw transaction in <address></source> + <translation>允许在<address>广播原始交易</translation> + </message> + <message> <source>Error initializing block database</source> <translation>初始化数据块数据库出错</translation> </message> @@ -2973,6 +3121,10 @@ <translation>无效的 -onion 地址:“%s”</translation> </message> <message> + <source>Keep the transaction memory pool below <n> megabytes (default: %u)</source> + <translation>保持交易内存池大小低于<n>MB(默认:%u)</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>没有足够的文件描述符可用。</translation> </message> @@ -3001,6 +3153,18 @@ <translation>指定钱包文件(数据目录内)</translation> </message> <message> + <source>Unsupported argument -benchmark ignored, use -debug=bench.</source> + <translation>忽略不支持的选项 -benchmark,使用 -debug=bench</translation> + </message> + <message> + <source>Unsupported argument -debugnet ignored, use -debug=net.</source> + <translation>忽略不支持的选项 -debugnet,使用 -debug=net。</translation> + </message> + <message> + <source>Unsupported argument -tor found, use -onion.</source> + <translation>忽略不支持的选项 -tor,使用 -oinon</translation> + </message> + <message> <source>Use UPnP to map the listening port (default: %u)</source> <translation>使用UPnp映射监听端口 (默认: %u) </translation> </message> @@ -3121,10 +3285,6 @@ <translation>无法解析 -whitebind 地址: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>在启动时选择数据目录(默认:0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>通过 SOCKS5 代理连接</translation> </message> @@ -3169,6 +3329,10 @@ <translation>-whitelist: '%s' 指定的网络掩码无效</translation> </message> <message> + <source>Keep at most <n> unconnectable transactions in memory (default: %u)</source> + <translation>内存中最多保留 <n> 笔孤立的交易 (默认: %u) </translation> + </message> + <message> <source>Need to specify a port with -whitebind: '%s'</source> <translation>-whitebind: '%s' 需要指定一个端口</translation> </message> @@ -3189,6 +3353,10 @@ <translation>收到并且显示P2P网络的告警(默认:%u)</translation> </message> <message> + <source>Rescan the block chain for missing wallet transactions on startup</source> + <translation>重新扫描区块链以查找遗漏的钱包交易</translation> + </message> + <message> <source>Send trace/debug info to console instead of debug.log file</source> <translation>跟踪/调试信息输出到控制台,不输出到 debug.log 文件</translation> </message> @@ -3197,22 +3365,10 @@ <translation>发送时尽可能 不支付交易费用 (默认: %u) </translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>设置SSL根证书的付款请求(默认:-系统-)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>设置语言, 例如“zh-TW”(默认为系统语言)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>显示所有调试选项 (用法: --帮助 -帮助调试)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>启动时显示版权页 (缺省: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>客户端启动时压缩debug.log文件(缺省:no-debug模式时为1)</translation> </message> @@ -3221,11 +3377,6 @@ <translation>签署交易失败</translation> </message> <message> - <source>Start minimized</source> - <translation>启动时最小化 -</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>交易金额太小,不足以支付交易费</translation> </message> @@ -3250,14 +3401,14 @@ <translation>交易太大</translation> </message> <message> - <source>UI Options:</source> - <translation>界面选项:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>无法在此计算机上绑定 %s (绑定返回错误 %s)</translation> </message> <message> + <source>Upgrade wallet to latest format on startup</source> + <translation>程序启动时升级钱包到最新格式</translation> + </message> + <message> <source>Username for JSON-RPC connections</source> <translation>JSON-RPC 连接用户名</translation> </message> @@ -3270,6 +3421,10 @@ <translation>警告</translation> </message> <message> + <source>Whether to operate in a blocks only mode (default: %u)</source> + <translation>是否用块方进行 (%u)</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Zapping all transactions from wallet...</translation> </message> @@ -3328,6 +3483,10 @@ <translation>输出调试信息 (默认: %u, 提供 <category> 是可选项)</translation> </message> <message> + <source>Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d)</source> + <translation>尝试保持上传带宽低于(MiB/24h),0=无限制(默认:%d)</translation> + </message> + <message> <source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source> <translation>通过Tor隐藏服务连接节点时 使用不同的SOCKS5代理 (默认: %s)</translation> </message> @@ -3336,6 +3495,10 @@ <translation>(默认: %s) </translation> </message> <message> + <source>Always query for peer addresses via DNS lookup (default: %u)</source> + <translation>始终通过 DNS 查询节点地址 (默认: %u)</translation> + </message> + <message> <source>Error loading wallet.dat</source> <translation>wallet.dat 钱包文件加载出错</translation> </message> diff --git a/src/qt/locale/bitcoin_zh_HK.ts b/src/qt/locale/bitcoin_zh_HK.ts deleted file mode 100644 index 4b4c1c687d..0000000000 --- a/src/qt/locale/bitcoin_zh_HK.ts +++ /dev/null @@ -1,113 +0,0 @@ -<TS language="zh_HK" version="2.1"> -<context> - <name>AddressBookPage</name> - </context> -<context> - <name>AddressTableModel</name> - </context> -<context> - <name>AskPassphraseDialog</name> - </context> -<context> - <name>BanTableModel</name> - </context> -<context> - <name>BitcoinGUI</name> - </context> -<context> - <name>ClientModel</name> - </context> -<context> - <name>CoinControlDialog</name> - </context> -<context> - <name>EditAddressDialog</name> - </context> -<context> - <name>FreespaceChecker</name> - </context> -<context> - <name>HelpMessageDialog</name> - </context> -<context> - <name>Intro</name> - </context> -<context> - <name>OpenURIDialog</name> - </context> -<context> - <name>OptionsDialog</name> - </context> -<context> - <name>OverviewPage</name> - </context> -<context> - <name>PaymentServer</name> - </context> -<context> - <name>PeerTableModel</name> - </context> -<context> - <name>QObject</name> - </context> -<context> - <name>QRImageWidget</name> - </context> -<context> - <name>RPCConsole</name> - </context> -<context> - <name>ReceiveCoinsDialog</name> - </context> -<context> - <name>ReceiveRequestDialog</name> - </context> -<context> - <name>RecentRequestsTableModel</name> - </context> -<context> - <name>SendCoinsDialog</name> - </context> -<context> - <name>SendCoinsEntry</name> - </context> -<context> - <name>ShutdownWindow</name> - </context> -<context> - <name>SignVerifyMessageDialog</name> - </context> -<context> - <name>SplashScreen</name> - </context> -<context> - <name>TrafficGraphWidget</name> - </context> -<context> - <name>TransactionDesc</name> - </context> -<context> - <name>TransactionDescDialog</name> - </context> -<context> - <name>TransactionTableModel</name> - </context> -<context> - <name>TransactionView</name> - </context> -<context> - <name>UnitDisplayStatusBarControl</name> - </context> -<context> - <name>WalletFrame</name> - </context> -<context> - <name>WalletModel</name> - </context> -<context> - <name>WalletView</name> - </context> -<context> - <name>bitcoin-core</name> - </context> -</TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index adf9071ede..4026095928 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -882,6 +882,34 @@ <source>command-line options</source> <translation>命令列選項</translation> </message> + <message> + <source>UI Options:</source> + <translation>使用介面選項:</translation> + </message> + <message> + <source>Choose data directory on startup (default: %u)</source> + <translation>啓動時選擇資料目錄(預設值: %u)</translation> + </message> + <message> + <source>Set language, for example "de_DE" (default: system locale)</source> + <translation>設定語言,比如說 de_DE (預設值: 系統語系)</translation> + </message> + <message> + <source>Start minimized</source> + <translation>啓動時縮到最小</translation> + </message> + <message> + <source>Set SSL root certificates for payment request (default: -system-)</source> + <translation>設定付款請求時所使用的 SSL 根憑證(預設值: 系統憑證庫)</translation> + </message> + <message> + <source>Show splash screen on startup (default: %u)</source> + <translation>顯示啓動畫面(預設值: %u)</translation> + </message> + <message> + <source>Reset all settings changes made over the GUI</source> + <translation>重置所有在使用界面更改的設定</translation> + </message> </context> <context> <name>Intro</name> @@ -1478,6 +1506,18 @@ <translation>目前區塊數</translation> </message> <message> + <source>Memory Pool</source> + <translation>記憶體暫存池</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>目前交易數目</translation> + </message> + <message> + <source>Memory usage</source> + <translation>記憶體使用量</translation> + </message> + <message> <source>Open the Bitcoin Core debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>從目前的資料目錄下開啓位元幣核心的除錯紀錄檔。當紀錄檔很大時,可能會花好幾秒的時間。</translation> </message> @@ -2101,6 +2141,10 @@ <source>Pay only the required fee of %1</source> <translation>只付必要的手續費 %1</translation> </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>預計可在 %n 個區塊內開始確認。</numerusform></translation> + </message> <message> <source>The recipient address is not valid. Please recheck.</source> <translation>收款位址無效。請再檢查看看。</translation> @@ -2997,10 +3041,6 @@ <translation>把來自指定網域或位址的節點放進白名單。這個選項可以設定多次。</translation> </message> <message> - <source>(default: 1)</source> - <translation>(預設值: 1)</translation> - </message> - <message> <source>-maxmempool must be at least %d MB</source> <translation>參數 -maxmempool 至少要給 %d 百萬位元組(MB)</translation> </message> @@ -3133,6 +3173,10 @@ <translation>找到不再支援的 -tor 參數,請改用 -onion 參數。</translation> </message> <message> + <source>Use UPnP to map the listening port (default: %u)</source> + <translation>使用通用隨插即用 (UPnP) 協定來設定對應的服務連接埠(預設值: %u)</translation> + </message> + <message> <source>User Agent comment (%s) contains unsafe characters.</source> <translation>使用者代理註解(%s)中含有不安全的字元。</translation> </message> @@ -3234,7 +3278,7 @@ </message> <message> <source>Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway</source> - <translation>在白名單中的節點不會因為偵測到阻斷服務攻擊而被停用。來自這些節點的交易也一定會被轉發,即使說交易本來就在記憶池裡了也一樣。適用於像是閘道伺服器。</translation> + <translation>在白名單中的節點不會因為偵測到阻斷服務攻擊(DoS)而被停用。來自這些節點的交易也一定會被轉發,即使說交易本來就在記憶池裡了也一樣。適用於像是閘道伺服器。</translation> </message> <message> <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> @@ -3269,10 +3313,6 @@ <translation>沒辦法解析 -whitebind 指定的位址: '%s'</translation> </message> <message> - <source>Choose data directory on startup (default: 0)</source> - <translation>啓動時選擇資料目錄(預設值: 0)</translation> - </message> - <message> <source>Connect through SOCKS5 proxy</source> <translation>透過 SOCKS5 代理伺服器連線</translation> </message> @@ -3361,22 +3401,10 @@ <translation>盡可能送出不用付手續費的交易(預設值: %u)</translation> </message> <message> - <source>Set SSL root certificates for payment request (default: -system-)</source> - <translation>設定付款請求時所使用的 SSL 根憑證 (預設值: 系統憑證庫)</translation> - </message> - <message> - <source>Set language, for example "de_DE" (default: system locale)</source> - <translation>設定語言,比如說 de_DE (預設值: 系統語系)</translation> - </message> - <message> <source>Show all debugging options (usage: --help -help-debug)</source> <translation>顯示所有的除錯選項 (用法: --help --help-debug)</translation> </message> <message> - <source>Show splash screen on startup (default: 1)</source> - <translation>顯示啓動畫面(預設值: 1)</translation> - </message> - <message> <source>Shrink debug.log file on client startup (default: 1 when no -debug)</source> <translation>客戶端軟體啓動時把 debug.log 檔縮小(預設值: 當沒有 -debug 時為 1)</translation> </message> @@ -3385,10 +3413,6 @@ <translation>簽署交易失敗</translation> </message> <message> - <source>Start minimized</source> - <translation>啓動時縮到最小</translation> - </message> - <message> <source>The transaction amount is too small to pay the fee</source> <translation>交易金額太少而付不起手續費</translation> </message> @@ -3421,10 +3445,6 @@ <translation>交易位元量太大</translation> </message> <message> - <source>UI Options:</source> - <translation>使用介面選項:</translation> - </message> - <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> <translation>無法和這台電腦上的 %s 繫結(回傳錯誤 %s)</translation> </message> @@ -3498,13 +3518,17 @@ </message> <message> <source>Do not keep transactions in the mempool longer than <n> hours (default: %u)</source> - <translation>不要讓交易留在記憶體暫存池中超過 <n> 個小時(預設值: %u)</translation> + <translation>不要讓交易留在記憶池中超過 <n> 個小時(預設值: %u)</translation> </message> <message> <source>Error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> <translation>讀取錢包檔 wallet.dat 時發生錯誤!所有的密鑰都正確讀取了,但是交易資料或位址簿資料可能會缺少或不正確。</translation> </message> <message> + <source>Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s)</source> + <translation>當製造交易時,如果每千位元組(kB)的手續費比這個值(單位是 %s)低,就視為沒付手續費(預設值: %s)</translation> + </message> + <message> <source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source> <translation>使用 -checkblocks 檢查區塊的仔細程度(0 到 4,預設值: %u)</translation> </message> @@ -3521,6 +3545,10 @@ <translation>輸出除錯資訊(預設值: %u, 不一定要指定 <category>)</translation> </message> <message> + <source>Support filtering of blocks and transaction with bloom filters (default: %u)</source> + <translation>支援用布倫過濾器來過濾區塊和交易(預設值: %u)</translation> + </message> + <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> <translation>網路版本字串的總長度(%i)超過最大長度(%i)了。請減少 uacomment 參數的數目或長度。</translation> </message> @@ -3537,6 +3565,10 @@ <translation>使用另外的 SOCK5 代理伺服器,來透過 Tor 隱藏服務跟其他節點聯絡(預設值: %s)</translation> </message> <message> + <source>Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times</source> + <translation>JSON-RPC 連線要用的使用者名稱和雜湊密碼。<userpw> 的格式是:<使用者名稱>:<調味值>$<雜湊值>。在 share/rpcuser 目錄下有一個示範的 python 程式。這個選項可以給很多次。</translation> + </message> + <message> <source>(default: %s)</source> <translation>(預設值: %s)</translation> </message> diff --git a/src/qt/peertablemodel.cpp b/src/qt/peertablemodel.cpp index 770a860544..df8f4f07fc 100644 --- a/src/qt/peertablemodel.cpp +++ b/src/qt/peertablemodel.cpp @@ -85,7 +85,7 @@ public: } if (sortColumn >= 0) - // sort cacheNodeStats (use stable sort to prevent rows jumping around unneceesarily) + // sort cacheNodeStats (use stable sort to prevent rows jumping around unnecessarily) qStableSort(cachedNodeStats.begin(), cachedNodeStats.end(), NodeLessThan(sortColumn, sortOrder)); // build index map @@ -147,7 +147,7 @@ int PeerTableModel::rowCount(const QModelIndex &parent) const int PeerTableModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent); - return columns.length();; + return columns.length(); } QVariant PeerTableModel::data(const QModelIndex &index, int role) const diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp index 0c4a20cf92..75108e0a10 100644 --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -144,7 +144,7 @@ void ReceiveRequestDialog::update() html += "<a href=\""+uri+"\">" + GUIUtil::HtmlEscape(uri) + "</a><br>"; html += "<b>"+tr("Address")+"</b>: " + GUIUtil::HtmlEscape(info.address) + "<br>"; if(info.amount) - html += "<b>"+tr("Amount")+"</b>: " + BitcoinUnits::formatWithUnit(model->getDisplayUnit(), info.amount) + "<br>"; + html += "<b>"+tr("Amount")+"</b>: " + BitcoinUnits::formatHtmlWithUnit(model->getDisplayUnit(), info.amount) + "<br>"; if(!info.label.isEmpty()) html += "<b>"+tr("Label")+"</b>: " + GUIUtil::HtmlEscape(info.label) + "<br>"; if(!info.message.isEmpty()) diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 801c6c62d2..920ff06351 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -35,9 +35,11 @@ QString TransactionDesc::FormatTxStatus(const CWalletTx& wtx) { int nDepth = wtx.GetDepthInMainChain(); if (nDepth < 0) - return tr("conflicted"); + return tr("conflicted with a transaction with %1 confirmations").arg(-nDepth); else if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0) return tr("%1/offline").arg(nDepth); + else if (nDepth == 0) + return tr("0/unconfirmed, %1").arg((wtx.InMempool() ? tr("in memory pool") : tr("not in memory pool"))); else if (nDepth < 6) return tr("%1/unconfirmed").arg(nDepth); else diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index f609289749..088578b7a9 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -75,16 +75,16 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : std::string strUsage = HelpMessage(HMM_BITCOIN_QT); const bool showDebug = GetBoolArg("-help-debug", false); - strUsage += HelpMessageGroup(_("UI Options:")); + strUsage += HelpMessageGroup(tr("UI Options:").toStdString()); if (showDebug) { strUsage += HelpMessageOpt("-allowselfsignedrootcertificates", strprintf("Allow self signed root certificates (default: %u)", DEFAULT_SELFSIGNED_ROOTCERTS)); } - strUsage += HelpMessageOpt("-choosedatadir", strprintf(_("Choose data directory on startup (default: %u)"), DEFAULT_CHOOSE_DATADIR)); - strUsage += HelpMessageOpt("-lang=<lang>", _("Set language, for example \"de_DE\" (default: system locale)")); - strUsage += HelpMessageOpt("-min", _("Start minimized")); - strUsage += HelpMessageOpt("-rootcertificates=<file>", _("Set SSL root certificates for payment request (default: -system-)")); - strUsage += HelpMessageOpt("-splash", strprintf(_("Show splash screen on startup (default: %u)"), DEFAULT_SPLASHSCREEN)); - strUsage += HelpMessageOpt("-resetguisettings", _("Reset all settings changes made over the GUI")); + strUsage += HelpMessageOpt("-choosedatadir", strprintf(tr("Choose data directory on startup (default: %u)").toStdString(), DEFAULT_CHOOSE_DATADIR)); + strUsage += HelpMessageOpt("-lang=<lang>", tr("Set language, for example \"de_DE\" (default: system locale)").toStdString()); + strUsage += HelpMessageOpt("-min", tr("Start minimized").toStdString()); + strUsage += HelpMessageOpt("-rootcertificates=<file>", tr("Set SSL root certificates for payment request (default: -system-)").toStdString()); + strUsage += HelpMessageOpt("-splash", strprintf(tr("Show splash screen on startup (default: %u)").toStdString(), DEFAULT_SPLASHSCREEN)); + strUsage += HelpMessageOpt("-resetguisettings", tr("Reset all settings changed in the GUI").toStdString()); if (showDebug) { strUsage += HelpMessageOpt("-uiplatform", strprintf("Select platform to customize UI for (one of windows, macosx, other; default: %s)", BitcoinGUI::DEFAULT_UIPLATFORM)); } diff --git a/src/rest.cpp b/src/rest.cpp index 5d69542a91..2ad7bc1065 100644 --- a/src/rest.cpp +++ b/src/rest.cpp @@ -494,7 +494,7 @@ static bool rest_getutxos(HTTPRequest* req, const std::string& strURIPart) if (vOutPoints.size() > MAX_GETUTXOS_OUTPOINTS) return RESTERR(req, HTTP_INTERNAL_SERVER_ERROR, strprintf("Error: max outpoints exceeded (max: %d, tried: %d)", MAX_GETUTXOS_OUTPOINTS, vOutPoints.size())); - // check spentness and form a bitmap (as well as a JSON capable human-readble string representation) + // check spentness and form a bitmap (as well as a JSON capable human-readable string representation) vector<unsigned char> bitmap; vector<CCoin> outs; std::string bitmapStringRepresentation; diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index aede797531..73e6f8029b 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -197,7 +197,7 @@ UniValue mempoolToJSON(bool fVerbose = false) info.push_back(Pair("currentpriority", e.GetPriority(chainActive.Height()))); info.push_back(Pair("descendantcount", e.GetCountWithDescendants())); info.push_back(Pair("descendantsize", e.GetSizeWithDescendants())); - info.push_back(Pair("descendantfees", e.GetFeesWithDescendants())); + info.push_back(Pair("descendantfees", e.GetModFeesWithDescendants())); const CTransaction& tx = e.GetTx(); set<string> setDepends; BOOST_FOREACH(const CTxIn& txin, tx.vin) @@ -255,7 +255,7 @@ UniValue getrawmempool(const UniValue& params, bool fHelp) " \"currentpriority\" : n, (numeric) transaction priority now\n" " \"descendantcount\" : n, (numeric) number of in-mempool descendant transactions (including this one)\n" " \"descendantsize\" : n, (numeric) size of in-mempool descendants (including this one)\n" - " \"descendantfees\" : n, (numeric) fees of in-mempool descendants (including this one)\n" + " \"descendantfees\" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one)\n" " \"depends\" : [ (array) unconfirmed transactions used as inputs for this transaction\n" " \"transactionid\", (string) parent transaction id\n" " ... ]\n" @@ -797,9 +797,11 @@ UniValue getmempoolinfo(const UniValue& params, bool fHelp) "\nReturns details on the active state of the TX memory pool.\n" "\nResult:\n" "{\n" - " \"size\": xxxxx (numeric) Current tx count\n" - " \"bytes\": xxxxx (numeric) Sum of all tx sizes\n" - " \"usage\": xxxxx (numeric) Total memory usage for the mempool\n" + " \"size\": xxxxx, (numeric) Current tx count\n" + " \"bytes\": xxxxx, (numeric) Sum of all tx sizes\n" + " \"usage\": xxxxx, (numeric) Total memory usage for the mempool\n" + " \"maxmempool\": xxxxx, (numeric) Maximum memory usage for the mempool\n" + " \"mempoolminfee\": xxxxx (numeric) Minimum fee for tx to be accepted\n" "}\n" "\nExamples:\n" + HelpExampleCli("getmempoolinfo", "") diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 2578848891..0ce108b06e 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -111,6 +111,14 @@ UniValue getpeerinfo(const UniValue& params, bool fHelp) " n, (numeric) The heights of blocks we're currently asking from this peer\n" " ...\n" " ]\n" + " \"bytessent_per_msg\": {\n" + " \"addr\": n, (numeric) The total bytes sent aggregated by message type\n" + " ...\n" + " }\n" + " \"bytesrecv_per_msg\": {\n" + " \"addr\": n, (numeric) The total bytes received aggregated by message type\n" + " ...\n" + " }\n" " }\n" " ,...\n" "]\n" @@ -165,6 +173,20 @@ UniValue getpeerinfo(const UniValue& params, bool fHelp) } obj.push_back(Pair("whitelisted", stats.fWhitelisted)); + UniValue sendPerMsgCmd(UniValue::VOBJ); + BOOST_FOREACH(const mapMsgCmdSize::value_type &i, stats.mapSendBytesPerMsgCmd) { + if (i.second > 0) + sendPerMsgCmd.push_back(Pair(i.first, i.second)); + } + obj.push_back(Pair("bytessent_per_msg", sendPerMsgCmd)); + + UniValue recvPerMsgCmd(UniValue::VOBJ); + BOOST_FOREACH(const mapMsgCmdSize::value_type &i, stats.mapRecvBytesPerMsgCmd) { + if (i.second > 0) + recvPerMsgCmd.push_back(Pair(i.first, i.second)); + } + obj.push_back(Pair("bytesrecv_per_msg", recvPerMsgCmd)); + ret.push_back(obj); } diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 1f2d77aef0..4947ad1f70 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -353,7 +353,6 @@ UniValue createrawtransaction(const UniValue& params, bool fHelp) + HelpExampleRpc("createrawtransaction", "\"[{\\\"txid\\\":\\\"myid\\\",\\\"vout\\\":0}]\", \"{\\\"data\\\":\\\"00010203\\\"}\"") ); - LOCK(cs_main); RPCTypeCheck(params, boost::assign::list_of(UniValue::VARR)(UniValue::VOBJ)(UniValue::VNUM), true); if (params[0].isNull() || params[1].isNull()) throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, arguments 1 and 2 must be non-null"); diff --git a/src/script/script.cpp b/src/script/script.cpp index 9c77ed9fc1..a7ba57e65b 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -131,7 +131,7 @@ const char* GetOpName(opcodetype opcode) // expanson case OP_NOP1 : return "OP_NOP1"; - case OP_NOP2 : return "OP_NOP2"; + case OP_CHECKLOCKTIMEVERIFY : return "OP_CHECKLOCKTIMEVERIFY"; case OP_NOP3 : return "OP_NOP3"; case OP_NOP4 : return "OP_NOP4"; case OP_NOP5 : return "OP_NOP5"; diff --git a/src/script/script.h b/src/script/script.h index 3650957fc9..7a37b66ccf 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -162,8 +162,8 @@ enum opcodetype // expansion OP_NOP1 = 0xb0, - OP_NOP2 = 0xb1, - OP_CHECKLOCKTIMEVERIFY = OP_NOP2, + OP_CHECKLOCKTIMEVERIFY = 0xb1, + OP_NOP2 = OP_CHECKLOCKTIMEVERIFY, OP_NOP3 = 0xb2, OP_NOP4 = 0xb3, OP_NOP5 = 0xb4, diff --git a/src/test/DoS_tests.cpp b/src/test/DoS_tests.cpp index da296a0461..51d296502e 100644 --- a/src/test/DoS_tests.cpp +++ b/src/test/DoS_tests.cpp @@ -49,7 +49,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning) CNode dummyNode1(INVALID_SOCKET, addr1, "", true); dummyNode1.nVersion = 1; Misbehaving(dummyNode1.GetId(), 100); // Should get banned - SendMessages(&dummyNode1, false); + SendMessages(&dummyNode1); BOOST_CHECK(CNode::IsBanned(addr1)); BOOST_CHECK(!CNode::IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned @@ -57,11 +57,11 @@ BOOST_AUTO_TEST_CASE(DoS_banning) CNode dummyNode2(INVALID_SOCKET, addr2, "", true); dummyNode2.nVersion = 1; Misbehaving(dummyNode2.GetId(), 50); - SendMessages(&dummyNode2, false); + SendMessages(&dummyNode2); BOOST_CHECK(!CNode::IsBanned(addr2)); // 2 not banned yet... BOOST_CHECK(CNode::IsBanned(addr1)); // ... but 1 still should be Misbehaving(dummyNode2.GetId(), 50); - SendMessages(&dummyNode2, false); + SendMessages(&dummyNode2); BOOST_CHECK(CNode::IsBanned(addr2)); } @@ -73,13 +73,13 @@ BOOST_AUTO_TEST_CASE(DoS_banscore) CNode dummyNode1(INVALID_SOCKET, addr1, "", true); dummyNode1.nVersion = 1; Misbehaving(dummyNode1.GetId(), 100); - SendMessages(&dummyNode1, false); + SendMessages(&dummyNode1); BOOST_CHECK(!CNode::IsBanned(addr1)); Misbehaving(dummyNode1.GetId(), 10); - SendMessages(&dummyNode1, false); + SendMessages(&dummyNode1); BOOST_CHECK(!CNode::IsBanned(addr1)); Misbehaving(dummyNode1.GetId(), 1); - SendMessages(&dummyNode1, false); + SendMessages(&dummyNode1); BOOST_CHECK(CNode::IsBanned(addr1)); mapArgs.erase("-banscore"); } @@ -95,7 +95,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime) dummyNode.nVersion = 1; Misbehaving(dummyNode.GetId(), 100); - SendMessages(&dummyNode, false); + SendMessages(&dummyNode); BOOST_CHECK(CNode::IsBanned(addr)); SetMockTime(nStartTime+60*60); diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index 7afa2abf49..7ce7e0879c 100644 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -160,12 +160,12 @@ ["2 2 LSHIFT", "8 EQUAL", "P2SH,STRICTENC", "disabled"], ["2 1 RSHIFT", "1 EQUAL", "P2SH,STRICTENC", "disabled"], -["1","NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 2 EQUAL", "P2SH,STRICTENC"], -["'NOP_1_to_10' NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_11' EQUAL", "P2SH,STRICTENC"], +["1","NOP1 CHECKLOCKTIMEVERIFY NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 2 EQUAL", "P2SH,STRICTENC"], +["'NOP_1_to_10' NOP1 CHECKLOCKTIMEVERIFY NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_11' EQUAL", "P2SH,STRICTENC"], ["Ensure 100% coverage of discouraged NOPS"], ["1", "NOP1", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], -["1", "NOP2", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], +["1", "CHECKLOCKTIMEVERIFY", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP3", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP4", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP5", "P2SH,DISCOURAGE_UPGRADABLE_NOPS"], diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index a4e15faeaf..e5f0d17b04 100644 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -232,8 +232,8 @@ ["'abcdefghijklmnopqrstuvwxyz'", "HASH256 0x4c 0x20 0xca139bc10c2f660da42666f72e89a225936fc60f193c161124a672050c434671 EQUAL", "P2SH,STRICTENC"], -["1","NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 1 EQUAL", "P2SH,STRICTENC"], -["'NOP_1_to_10' NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_10' EQUAL", "P2SH,STRICTENC"], +["1","NOP1 CHECKLOCKTIMEVERIFY NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 1 EQUAL", "P2SH,STRICTENC"], +["'NOP_1_to_10' NOP1 CHECKLOCKTIMEVERIFY NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_10' EQUAL", "P2SH,STRICTENC"], ["1", "NOP", "P2SH,STRICTENC,DISCOURAGE_UPGRADABLE_NOPS", "Discourage NOPx flag allows OP_NOP"], @@ -442,7 +442,7 @@ ["NOP", "CODESEPARATOR 1", "P2SH,STRICTENC"], ["NOP", "NOP1 1", "P2SH,STRICTENC"], -["NOP", "NOP2 1", "P2SH,STRICTENC"], +["NOP", "CHECKLOCKTIMEVERIFY 1", "P2SH,STRICTENC"], ["NOP", "NOP3 1", "P2SH,STRICTENC"], ["NOP", "NOP4 1", "P2SH,STRICTENC"], ["NOP", "NOP5 1", "P2SH,STRICTENC"], diff --git a/src/test/data/tx_invalid.json b/src/test/data/tx_invalid.json index cc059e814f..9025841949 100644 --- a/src/test/data/tx_invalid.json +++ b/src/test/data/tx_invalid.json @@ -127,66 +127,66 @@ ["CHECKLOCKTIMEVERIFY tests"], ["By-height locks, with argument just beyond tx nLockTime"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000fe64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], ["By-time locks, with argument just beyond tx nLockTime (but within numerical boundaries)"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000001 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000001 CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument missing"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000001b1010000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument negative with by-blockheight nLockTime=0"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument negative with by-blocktime nLockTime=500,000,000"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000004005194b1010000000100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Input locked"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1ffffffff0100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Another input being unlocked isn't sufficient; the CHECKLOCKTIMEVERIFY-using input must be unlocked"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"] , +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"] , ["0000000000000000000000000000000000000000000000000000000000000200", 1, "1"]], "010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00020000000000000000000000000000000000000000000000000000000000000100000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument/tx height/time mismatch, both versions"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b100000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], ["Argument 2^32 with nLockTime=2^32-1"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967296 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967296 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], ["Same, but with nLockTime=2^31-1"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483648 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483648 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffff7f", "P2SH,CHECKLOCKTIMEVERIFY"], ["6 byte non-minimally-encoded arguments are invalid even if their contents are valid"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x06 0x000000000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x06 0x000000000000 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Failure due to failing CHECKLOCKTIMEVERIFY in scriptSig"], diff --git a/src/test/data/tx_valid.json b/src/test/data/tx_valid.json index 0dfef73ae5..76d29bcf26 100644 --- a/src/test/data/tx_valid.json +++ b/src/test/data/tx_valid.json @@ -190,35 +190,35 @@ ["CHECKLOCKTIMEVERIFY tests"], ["By-height locks, with argument == 0 and == tx nLockTime"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], ["By-time locks, with argument just beyond tx nLockTime (but within numerical boundaries)"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"], ["Any non-maxint nSequence is fine"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["The argument can be calculated rather than created directly by a PUSHDATA"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 1ADD NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 1ADD CHECKLOCKTIMEVERIFY 1"]], "01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"], ["Perhaps even by an ADD producing a 5-byte result that is out of bounds for other opcodes"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483647 2147483647 ADD NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483647 2147483647 ADD CHECKLOCKTIMEVERIFY 1"]], "0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"], ["5 byte non-minimally-encoded arguments are valid"], -[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x05 0x0000000000 NOP2 1"]], +[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x05 0x0000000000 CHECKLOCKTIMEVERIFY 1"]], "010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"], ["Valid CHECKLOCKTIMEVERIFY in scriptSig"], diff --git a/src/test/mruset_tests.cpp b/src/test/mruset_tests.cpp deleted file mode 100644 index 2b68f8899e..0000000000 --- a/src/test/mruset_tests.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2012-2013 The Bitcoin Core developers -// Distributed under the MIT software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include "mruset.h" - -#include "random.h" -#include "util.h" -#include "test/test_bitcoin.h" - -#include <set> - -#include <boost/test/unit_test.hpp> - -#define NUM_TESTS 16 -#define MAX_SIZE 100 - -using namespace std; - -BOOST_FIXTURE_TEST_SUITE(mruset_tests, BasicTestingSetup) - -BOOST_AUTO_TEST_CASE(mruset_test) -{ - // The mruset being tested. - mruset<int> mru(5000); - - // Run the test 10 times. - for (int test = 0; test < 10; test++) { - // Reset mru. - mru.clear(); - - // A deque + set to simulate the mruset. - std::deque<int> rep; - std::set<int> all; - - // Insert 10000 random integers below 15000. - for (int j=0; j<10000; j++) { - int add = GetRandInt(15000); - mru.insert(add); - - // Add the number to rep/all as well. - if (all.count(add) == 0) { - all.insert(add); - rep.push_back(add); - if (all.size() == 5001) { - all.erase(rep.front()); - rep.pop_front(); - } - } - - // Do a full comparison between mru and the simulated mru every 1000 and every 5001 elements. - if (j % 1000 == 0 || j % 5001 == 0) { - mruset<int> mru2 = mru; // Also try making a copy - - // Check that all elements that should be in there, are in there. - BOOST_FOREACH(int x, rep) { - BOOST_CHECK(mru.count(x)); - BOOST_CHECK(mru2.count(x)); - } - - // Check that all elements that are in there, should be in there. - BOOST_FOREACH(int x, mru) { - BOOST_CHECK(all.count(x)); - } - - // Check that all elements that are in there, should be in there. - BOOST_FOREACH(int x, mru2) { - BOOST_CHECK(all.count(x)); - } - - for (int t = 0; t < 10; t++) { - int r = GetRandInt(15000); - BOOST_CHECK(all.count(r) == mru.count(r)); - BOOST_CHECK(all.count(r) == mru2.count(r)); - } - } - } - } -} - -BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index ce22975005..58b34cbfa7 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -237,7 +237,7 @@ BOOST_AUTO_TEST_CASE(rpc_ban) UniValue o1 = ar[0].get_obj(); UniValue adr = find_value(o1, "address"); BOOST_CHECK_EQUAL(adr.get_str(), "127.0.0.0/32"); - BOOST_CHECK_NO_THROW(CallRPC(string("setban 127.0.0.0 remove")));; + BOOST_CHECK_NO_THROW(CallRPC(string("setban 127.0.0.0 remove"))); BOOST_CHECK_NO_THROW(r = CallRPC(string("listbanned"))); ar = r.get_array(); BOOST_CHECK_EQUAL(ar.size(), 0); @@ -267,7 +267,7 @@ BOOST_AUTO_TEST_CASE(rpc_ban) // must throw an exception because 127.0.0.1 is in already banned suubnet range BOOST_CHECK_THROW(r = CallRPC(string("setban 127.0.0.1 add")), runtime_error); - BOOST_CHECK_NO_THROW(CallRPC(string("setban 127.0.0.0/24 remove")));; + BOOST_CHECK_NO_THROW(CallRPC(string("setban 127.0.0.0/24 remove"))); BOOST_CHECK_NO_THROW(r = CallRPC(string("listbanned"))); ar = r.get_array(); BOOST_CHECK_EQUAL(ar.size(), 0); diff --git a/src/test/scheduler_tests.cpp b/src/test/scheduler_tests.cpp index cb1a427db0..fc07aa72c1 100644 --- a/src/test/scheduler_tests.cpp +++ b/src/test/scheduler_tests.cpp @@ -40,6 +40,7 @@ static void MicroSleep(uint64_t n) #endif } +#if 0 /* Disabled for now because there is a race condition issue in this test - see #6540 */ BOOST_AUTO_TEST_CASE(manythreads) { seed_insecure_rand(false); @@ -115,5 +116,6 @@ BOOST_AUTO_TEST_CASE(manythreads) } BOOST_CHECK_EQUAL(counterSum, 200); } +#endif BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index 0059e4a998..9eff6d0c63 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -985,10 +985,10 @@ BOOST_AUTO_TEST_CASE(script_IsPushOnly_on_invalid_scripts) BOOST_AUTO_TEST_CASE(script_GetScriptAsm) { - BOOST_CHECK_EQUAL("OP_NOP2", ScriptToAsmStr(CScript() << OP_NOP2, true)); - BOOST_CHECK_EQUAL("OP_NOP2", ScriptToAsmStr(CScript() << OP_CHECKLOCKTIMEVERIFY, true)); - BOOST_CHECK_EQUAL("OP_NOP2", ScriptToAsmStr(CScript() << OP_NOP2)); - BOOST_CHECK_EQUAL("OP_NOP2", ScriptToAsmStr(CScript() << OP_CHECKLOCKTIMEVERIFY)); + BOOST_CHECK_EQUAL("OP_CHECKLOCKTIMEVERIFY", ScriptToAsmStr(CScript() << OP_NOP2, true)); + BOOST_CHECK_EQUAL("OP_CHECKLOCKTIMEVERIFY", ScriptToAsmStr(CScript() << OP_CHECKLOCKTIMEVERIFY, true)); + BOOST_CHECK_EQUAL("OP_CHECKLOCKTIMEVERIFY", ScriptToAsmStr(CScript() << OP_NOP2)); + BOOST_CHECK_EQUAL("OP_CHECKLOCKTIMEVERIFY", ScriptToAsmStr(CScript() << OP_CHECKLOCKTIMEVERIFY)); string derSig("304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090"); string pubKey("03b0da749730dc9b4b1f4a14d6902877a92541f5368778853d9c4a0cb7802dcfb2"); diff --git a/src/torcontrol.cpp b/src/torcontrol.cpp index 8eccc81e30..4ebcb9b667 100644 --- a/src/torcontrol.cpp +++ b/src/torcontrol.cpp @@ -618,7 +618,7 @@ void TorController::disconnected_cb(TorControlConnection& conn) if (!reconnect) return; - LogPrint("tor", "tor: Disconnected from Tor control port %s, trying to reconnect\n", target); + LogPrint("tor", "tor: Not connected to Tor control port %s, trying to reconnect\n", target); // Single-shot timer for reconnect. Use exponential backoff. struct timeval time = MillisToTimeval(int64_t(reconnect_timeout * 1000.0)); diff --git a/src/txmempool.cpp b/src/txmempool.cpp index 35be216287..c72a1e8c19 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -33,7 +33,7 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTransaction& _tx, const CAmount& _nFee, nCountWithDescendants = 1; nSizeWithDescendants = nTxSize; - nFeesWithDescendants = nFee; + nModFeesWithDescendants = nFee; CAmount nValueIn = tx.GetValueOut()+nFee; assert(inChainInputValue <= nValueIn); @@ -57,6 +57,7 @@ CTxMemPoolEntry::GetPriority(unsigned int currentHeight) const void CTxMemPoolEntry::UpdateFeeDelta(int64_t newFeeDelta) { + nModFeesWithDescendants += newFeeDelta - feeDelta; feeDelta = newFeeDelta; } @@ -114,7 +115,7 @@ bool CTxMemPool::UpdateForDescendants(txiter updateIt, int maxDescendantsToVisit BOOST_FOREACH(txiter cit, setAllDescendants) { if (!setExclude.count(cit->GetTx().GetHash())) { modifySize += cit->GetTxSize(); - modifyFee += cit->GetFee(); + modifyFee += cit->GetModifiedFee(); modifyCount++; cachedDescendants[updateIt].insert(cit); } @@ -244,7 +245,7 @@ void CTxMemPool::UpdateAncestorsOf(bool add, txiter it, setEntries &setAncestors } const int64_t updateCount = (add ? 1 : -1); const int64_t updateSize = updateCount * it->GetTxSize(); - const CAmount updateFee = updateCount * it->GetFee(); + const CAmount updateFee = updateCount * it->GetModifiedFee(); BOOST_FOREACH(txiter ancestorIt, setAncestors) { mapTx.modify(ancestorIt, update_descendant_state(updateSize, updateFee, updateCount)); } @@ -304,7 +305,7 @@ void CTxMemPoolEntry::SetDirty() { nCountWithDescendants = 0; nSizeWithDescendants = nTxSize; - nFeesWithDescendants = nFee; + nModFeesWithDescendants = GetModifiedFee(); } void CTxMemPoolEntry::UpdateState(int64_t modifySize, CAmount modifyFee, int64_t modifyCount) @@ -312,8 +313,7 @@ void CTxMemPoolEntry::UpdateState(int64_t modifySize, CAmount modifyFee, int64_t if (!IsDirty()) { nSizeWithDescendants += modifySize; assert(int64_t(nSizeWithDescendants) > 0); - nFeesWithDescendants += modifyFee; - assert(nFeesWithDescendants >= 0); + nModFeesWithDescendants += modifyFee; nCountWithDescendants += modifyCount; assert(int64_t(nCountWithDescendants) > 0); } @@ -372,6 +372,17 @@ bool CTxMemPool::addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry, indexed_transaction_set::iterator newit = mapTx.insert(entry).first; mapLinks.insert(make_pair(newit, TxLinks())); + // Update transaction for any feeDelta created by PrioritiseTransaction + // TODO: refactor so that the fee delta is calculated before inserting + // into mapTx. + std::map<uint256, std::pair<double, CAmount> >::const_iterator pos = mapDeltas.find(hash); + if (pos != mapDeltas.end()) { + const std::pair<double, CAmount> &deltas = pos->second; + if (deltas.second) { + mapTx.modify(newit, update_fee_delta(deltas.second)); + } + } + // Update cachedInnerUsage to include contained transaction's usage. // (When we update the entry for in-mempool parents, memory usage will be // further updated.) @@ -399,15 +410,6 @@ bool CTxMemPool::addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry, } UpdateAncestorsOf(true, newit, setAncestors); - // Update transaction's score for any feeDelta created by PrioritiseTransaction - std::map<uint256, std::pair<double, CAmount> >::const_iterator pos = mapDeltas.find(hash); - if (pos != mapDeltas.end()) { - const std::pair<double, CAmount> &deltas = pos->second; - if (deltas.second) { - mapTx.modify(newit, update_fee_delta(deltas.second)); - } - } - nTransactionsUpdated++; totalTxSize += entry.GetTxSize(); minerPolicyEstimator->processTransaction(entry, fCurrentEstimate); @@ -644,27 +646,24 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const CTxMemPool::setEntries setChildrenCheck; std::map<COutPoint, CInPoint>::const_iterator iter = mapNextTx.lower_bound(COutPoint(it->GetTx().GetHash(), 0)); int64_t childSizes = 0; - CAmount childFees = 0; + CAmount childModFee = 0; for (; iter != mapNextTx.end() && iter->first.hash == it->GetTx().GetHash(); ++iter) { txiter childit = mapTx.find(iter->second.ptx->GetHash()); assert(childit != mapTx.end()); // mapNextTx points to in-mempool transactions if (setChildrenCheck.insert(childit).second) { childSizes += childit->GetTxSize(); - childFees += childit->GetFee(); + childModFee += childit->GetModifiedFee(); } } assert(setChildrenCheck == GetMemPoolChildren(it)); - // Also check to make sure size/fees is greater than sum with immediate children. + // Also check to make sure size is greater than sum with immediate children. // just a sanity check, not definitive that this calc is correct... - // also check that the size is less than the size of the entire mempool. if (!it->IsDirty()) { assert(it->GetSizeWithDescendants() >= childSizes + it->GetTxSize()); - assert(it->GetFeesWithDescendants() >= childFees + it->GetFee()); } else { assert(it->GetSizeWithDescendants() == it->GetTxSize()); - assert(it->GetFeesWithDescendants() == it->GetFee()); + assert(it->GetModFeesWithDescendants() == it->GetModifiedFee()); } - assert(it->GetFeesWithDescendants() >= 0); if (fDependsWait) waitingOnDependants.push_back(&(*it)); @@ -788,6 +787,14 @@ void CTxMemPool::PrioritiseTransaction(const uint256 hash, const string strHash, txiter it = mapTx.find(hash); if (it != mapTx.end()) { mapTx.modify(it, update_fee_delta(deltas.second)); + // Now update all ancestors' modified fees with descendants + setEntries setAncestors; + uint64_t nNoLimit = std::numeric_limits<uint64_t>::max(); + std::string dummy; + CalculateMemPoolAncestors(*it, setAncestors, nNoLimit, nNoLimit, nNoLimit, nNoLimit, dummy, false); + BOOST_FOREACH(txiter ancestorIt, setAncestors) { + mapTx.modify(ancestorIt, update_descendant_state(0, nFeeDelta, 0)); + } } } LogPrintf("PrioritiseTransaction: %s priority += %f, fee += %d\n", strHash, dPriorityDelta, FormatMoney(nFeeDelta)); @@ -944,7 +951,7 @@ void CTxMemPool::trackPackageRemoved(const CFeeRate& rate) { } } -void CTxMemPool::TrimToSize(size_t sizelimit) { +void CTxMemPool::TrimToSize(size_t sizelimit, std::vector<uint256>* pvNoSpendsRemaining) { LOCK(cs); unsigned nTxnRemoved = 0; @@ -956,15 +963,33 @@ void CTxMemPool::TrimToSize(size_t sizelimit) { // "minimum reasonable fee rate" (ie some value under which we consider txn // to have 0 fee). This way, we don't allow txn to enter mempool with feerate // equal to txn which were removed with no block in between. - CFeeRate removed(it->GetFeesWithDescendants(), it->GetSizeWithDescendants()); + CFeeRate removed(it->GetModFeesWithDescendants(), it->GetSizeWithDescendants()); removed += minReasonableRelayFee; trackPackageRemoved(removed); maxFeeRateRemoved = std::max(maxFeeRateRemoved, removed); setEntries stage; CalculateDescendants(mapTx.project<0>(it), stage); - RemoveStaged(stage); nTxnRemoved += stage.size(); + + std::vector<CTransaction> txn; + if (pvNoSpendsRemaining) { + txn.reserve(stage.size()); + BOOST_FOREACH(txiter it, stage) + txn.push_back(it->GetTx()); + } + RemoveStaged(stage); + if (pvNoSpendsRemaining) { + BOOST_FOREACH(const CTransaction& tx, txn) { + BOOST_FOREACH(const CTxIn& txin, tx.vin) { + if (exists(txin.prevout.hash)) + continue; + std::map<COutPoint, CInPoint>::iterator it = mapNextTx.lower_bound(COutPoint(txin.prevout.hash, 0)); + if (it == mapNextTx.end() || it->first.hash != txin.prevout.hash) + pvNoSpendsRemaining->push_back(txin.prevout.hash); + } + } + } } if (maxFeeRateRemoved > CFeeRate(0)) diff --git a/src/txmempool.h b/src/txmempool.h index 5652969f4b..4b726cc902 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -44,12 +44,12 @@ class CTxMemPool; * ("descendant" transactions). * * When a new entry is added to the mempool, we update the descendant state - * (nCountWithDescendants, nSizeWithDescendants, and nFeesWithDescendants) for + * (nCountWithDescendants, nSizeWithDescendants, and nModFeesWithDescendants) for * all ancestors of the newly added transaction. * * If updating the descendant state is skipped, we can mark the entry as - * "dirty", and set nSizeWithDescendants/nFeesWithDescendants to equal nTxSize/ - * nTxFee. (This can potentially happen during a reorg, where we limit the + * "dirty", and set nSizeWithDescendants/nModFeesWithDescendants to equal nTxSize/ + * nFee+feeDelta. (This can potentially happen during a reorg, where we limit the * amount of work we're willing to do to avoid consuming too much CPU.) * */ @@ -74,11 +74,11 @@ private: // Information about descendants of this transaction that are in the // mempool; if we remove this transaction we must remove all of these // descendants as well. if nCountWithDescendants is 0, treat this entry as - // dirty, and nSizeWithDescendants and nFeesWithDescendants will not be + // dirty, and nSizeWithDescendants and nModFeesWithDescendants will not be // correct. uint64_t nCountWithDescendants; //! number of descendant transactions uint64_t nSizeWithDescendants; //! ... and size - CAmount nFeesWithDescendants; //! ... and total fees (all including us) + CAmount nModFeesWithDescendants; //! ... and total fees (all including us) public: CTxMemPoolEntry(const CTransaction& _tx, const CAmount& _nFee, @@ -104,7 +104,8 @@ public: // Adjusts the descendant state, if this entry is not dirty. void UpdateState(int64_t modifySize, CAmount modifyFee, int64_t modifyCount); - // Updates the fee delta used for mining priority score + // Updates the fee delta used for mining priority score, and the + // modified fees with descendants. void UpdateFeeDelta(int64_t feeDelta); /** We can set the entry to be dirty if doing the full calculation of in- @@ -116,7 +117,7 @@ public: uint64_t GetCountWithDescendants() const { return nCountWithDescendants; } uint64_t GetSizeWithDescendants() const { return nSizeWithDescendants; } - CAmount GetFeesWithDescendants() const { return nFeesWithDescendants; } + CAmount GetModFeesWithDescendants() const { return nModFeesWithDescendants; } bool GetSpendsCoinbase() const { return spendsCoinbase; } }; @@ -163,27 +164,27 @@ struct mempoolentry_txid } }; -/** \class CompareTxMemPoolEntryByFee +/** \class CompareTxMemPoolEntryByDescendantScore * - * Sort an entry by max(feerate of entry's tx, feerate with all descendants). + * Sort an entry by max(score/size of entry's tx, score/size with all descendants). */ -class CompareTxMemPoolEntryByFee +class CompareTxMemPoolEntryByDescendantScore { public: bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) { - bool fUseADescendants = UseDescendantFeeRate(a); - bool fUseBDescendants = UseDescendantFeeRate(b); + bool fUseADescendants = UseDescendantScore(a); + bool fUseBDescendants = UseDescendantScore(b); - double aFees = fUseADescendants ? a.GetFeesWithDescendants() : a.GetFee(); + double aModFee = fUseADescendants ? a.GetModFeesWithDescendants() : a.GetModifiedFee(); double aSize = fUseADescendants ? a.GetSizeWithDescendants() : a.GetTxSize(); - double bFees = fUseBDescendants ? b.GetFeesWithDescendants() : b.GetFee(); + double bModFee = fUseBDescendants ? b.GetModFeesWithDescendants() : b.GetModifiedFee(); double bSize = fUseBDescendants ? b.GetSizeWithDescendants() : b.GetTxSize(); // Avoid division by rewriting (a/b > c/d) as (a*d > c*b). - double f1 = aFees * bSize; - double f2 = aSize * bFees; + double f1 = aModFee * bSize; + double f2 = aSize * bModFee; if (f1 == f2) { return a.GetTime() >= b.GetTime(); @@ -191,11 +192,11 @@ public: return f1 < f2; } - // Calculate which feerate to use for an entry (avoiding division). - bool UseDescendantFeeRate(const CTxMemPoolEntry &a) + // Calculate which score to use for an entry (avoiding division). + bool UseDescendantScore(const CTxMemPoolEntry &a) { - double f1 = (double)a.GetFee() * a.GetSizeWithDescendants(); - double f2 = (double)a.GetFeesWithDescendants() * a.GetTxSize(); + double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants(); + double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize(); return f2 > f1; } }; @@ -350,7 +351,7 @@ public: // sorted by fee rate boost::multi_index::ordered_non_unique< boost::multi_index::identity<CTxMemPoolEntry>, - CompareTxMemPoolEntryByFee + CompareTxMemPoolEntryByDescendantScore >, // sorted by entry time boost::multi_index::ordered_non_unique< @@ -483,8 +484,11 @@ public: */ CFeeRate GetMinFee(size_t sizelimit) const; - /** Remove transactions from the mempool until its dynamic size is <= sizelimit. */ - void TrimToSize(size_t sizelimit); + /** Remove transactions from the mempool until its dynamic size is <= sizelimit. + * pvNoSpendsRemaining, if set, will be populated with the list of transactions + * which are not in mempool which no longer have any spends in this mempool. + */ + void TrimToSize(size_t sizelimit, std::vector<uint256>* pvNoSpendsRemaining=NULL); /** Expire all transaction (and their dependencies) in the mempool older than time. Return the number of removed transactions. */ int Expire(int64_t time); diff --git a/src/univalue/.gitignore b/src/univalue/.gitignore index a7a2ca9197..19e42f814a 100644 --- a/src/univalue/.gitignore +++ b/src/univalue/.gitignore @@ -18,6 +18,7 @@ univalue-config.h* test-driver libtool ltmain.sh +test-suite.log *.a *.la diff --git a/src/univalue/.travis.yml b/src/univalue/.travis.yml index af632c78d9..d318d9cc8f 100644 --- a/src/univalue/.travis.yml +++ b/src/univalue/.travis.yml @@ -36,7 +36,7 @@ script: - ./configure --cache-file=config.cache $UNIVALUE_CONFIG_ALL $UNIVALUE_CONFIG || ( cat config.log && false) - make -s $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL ; false ) - export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib - - if [ "$RUN_TESTS" = "true" ]; then make check; fi + - if [ "$RUN_TESTS" = "true" ]; then make $MAKEJOBS distcheck; fi matrix: fast_finish: true diff --git a/src/univalue/Makefile.am b/src/univalue/Makefile.am index df9e66229c..34fe9e3f13 100644 --- a/src/univalue/Makefile.am +++ b/src/univalue/Makefile.am @@ -70,6 +70,9 @@ TEST_FILES = \ $(TEST_DATA_DIR)/fail32.json \ $(TEST_DATA_DIR)/fail33.json \ $(TEST_DATA_DIR)/fail34.json \ + $(TEST_DATA_DIR)/fail35.json \ + $(TEST_DATA_DIR)/fail36.json \ + $(TEST_DATA_DIR)/fail37.json \ $(TEST_DATA_DIR)/fail3.json \ $(TEST_DATA_DIR)/fail4.json \ $(TEST_DATA_DIR)/fail5.json \ @@ -79,6 +82,7 @@ TEST_FILES = \ $(TEST_DATA_DIR)/fail9.json \ $(TEST_DATA_DIR)/pass1.json \ $(TEST_DATA_DIR)/pass2.json \ - $(TEST_DATA_DIR)/pass3.json + $(TEST_DATA_DIR)/pass3.json \ + $(TEST_DATA_DIR)/round1.json EXTRA_DIST=$(TEST_FILES) $(GEN_SRCS) diff --git a/src/univalue/configure.ac b/src/univalue/configure.ac index 6cd9516229..0515b632bd 100644 --- a/src/univalue/configure.ac +++ b/src/univalue/configure.ac @@ -14,7 +14,7 @@ m4_define([libunivalue_age], [m4_eval(libunivalue_binary_age - libunivalue_inter m4_define([libunivalue_version], [libunivalue_major_version().libunivalue_minor_version().libunivalue_micro_version()libunivalue_extraversion()]) -AC_INIT([univalue], [1.0.0], +AC_INIT([univalue], [1.0.1], [http://github.com/jgarzik/univalue/]) dnl make the compilation flags quiet unless V=1 is used diff --git a/src/univalue/gen/gen.cpp b/src/univalue/gen/gen.cpp index 5e5a4d4aed..17f361941d 100644 --- a/src/univalue/gen/gen.cpp +++ b/src/univalue/gen/gen.cpp @@ -8,7 +8,6 @@ // $ ./gen > univalue_escapes.h // -#include <ctype.h> #include <stdio.h> #include <string.h> #include "univalue.h" @@ -16,10 +15,17 @@ using namespace std; static bool initEscapes; -static const char *escapes[256]; +static std::string escapes[256]; static void initJsonEscape() { + // Escape all lower control characters (some get overridden with smaller sequences below) + for (int ch=0x00; ch<0x20; ++ch) { + char tmpbuf[20]; + snprintf(tmpbuf, sizeof(tmpbuf), "\\u%04x", ch); + escapes[ch] = std::string(tmpbuf); + } + escapes[(int)'"'] = "\\\""; escapes[(int)'\\'] = "\\\\"; escapes[(int)'\b'] = "\\b"; @@ -27,6 +33,7 @@ static void initJsonEscape() escapes[(int)'\n'] = "\\n"; escapes[(int)'\r'] = "\\r"; escapes[(int)'\t'] = "\\t"; + escapes[(int)'\x7f'] = "\\u007f"; // U+007F DELETE initEscapes = true; } @@ -39,13 +46,13 @@ static void outputEscape() "static const char *escapes[256] = {\n"); for (unsigned int i = 0; i < 256; i++) { - if (!escapes[i]) { + if (escapes[i].empty()) { printf("\tNULL,\n"); } else { printf("\t\""); unsigned int si; - for (si = 0; si < strlen(escapes[i]); si++) { + for (si = 0; si < escapes[i].size(); si++) { char ch = escapes[i][si]; switch (ch) { case '"': diff --git a/src/univalue/include/univalue.h b/src/univalue/include/univalue.h index ac05116011..8428b1c683 100644 --- a/src/univalue/include/univalue.h +++ b/src/univalue/include/univalue.h @@ -243,8 +243,41 @@ extern enum jtokentype getJsonToken(std::string& tokenVal, unsigned int& consumed, const char *raw); extern const char *uvTypeName(UniValue::VType t); +static inline bool jsonTokenIsValue(enum jtokentype jtt) +{ + switch (jtt) { + case JTOK_KW_NULL: + case JTOK_KW_TRUE: + case JTOK_KW_FALSE: + case JTOK_NUMBER: + case JTOK_STRING: + return true; + + default: + return false; + } + + // not reached +} + +static inline bool json_isspace(int ch) +{ + switch (ch) { + case 0x20: + case 0x09: + case 0x0a: + case 0x0d: + return true; + + default: + return false; + } + + // not reached +} + extern const UniValue NullUniValue; const UniValue& find_value( const UniValue& obj, const std::string& name); -#endif // __UNIVALUE_H__
\ No newline at end of file +#endif // __UNIVALUE_H__ diff --git a/src/univalue/lib/univalue.cpp b/src/univalue/lib/univalue.cpp index 883e8651fe..0076d6678e 100644 --- a/src/univalue/lib/univalue.cpp +++ b/src/univalue/lib/univalue.cpp @@ -4,7 +4,6 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include <stdint.h> -#include <ctype.h> #include <errno.h> #include <iomanip> #include <limits> @@ -21,7 +20,7 @@ static bool ParsePrechecks(const std::string& str) { if (str.empty()) // No empty string allowed return false; - if (str.size() >= 1 && (isspace(str[0]) || isspace(str[str.size()-1]))) // No padding allowed + if (str.size() >= 1 && (json_isspace(str[0]) || json_isspace(str[str.size()-1]))) // No padding allowed return false; if (str.size() != strlen(str.c_str())) // No embedded NUL characters allowed return false; @@ -210,7 +209,7 @@ bool UniValue::pushKVs(const UniValue& obj) for (unsigned int i = 0; i < obj.keys.size(); i++) { keys.push_back(obj.keys[i]); - values.push_back(obj.values[i]); + values.push_back(obj.values.at(i)); } return true; @@ -234,7 +233,7 @@ bool UniValue::checkObject(const std::map<std::string,UniValue::VType>& t) if (idx < 0) return false; - if (values[idx].getType() != it->second) + if (values.at(idx).getType() != it->second) return false; } @@ -250,7 +249,7 @@ const UniValue& UniValue::operator[](const std::string& key) const if (index < 0) return NullUniValue; - return values[index]; + return values.at(index); } const UniValue& UniValue::operator[](unsigned int index) const @@ -260,7 +259,7 @@ const UniValue& UniValue::operator[](unsigned int index) const if (index >= values.size()) return NullUniValue; - return values[index]; + return values.at(index); } const char *uvTypeName(UniValue::VType t) @@ -278,15 +277,11 @@ const char *uvTypeName(UniValue::VType t) return NULL; } -const UniValue& find_value( const UniValue& obj, const std::string& name) +const UniValue& find_value(const UniValue& obj, const std::string& name) { for (unsigned int i = 0; i < obj.keys.size(); i++) - { - if( obj.keys[i] == name ) - { - return obj.values[i]; - } - } + if (obj.keys[i] == name) + return obj.values.at(i); return NullUniValue; } diff --git a/src/univalue/lib/univalue_escapes.h b/src/univalue/lib/univalue_escapes.h index 4133b24ca1..74596aab6d 100644 --- a/src/univalue/lib/univalue_escapes.h +++ b/src/univalue/lib/univalue_escapes.h @@ -2,38 +2,38 @@ #ifndef BITCOIN_UNIVALUE_UNIVALUE_ESCAPES_H #define BITCOIN_UNIVALUE_UNIVALUE_ESCAPES_H static const char *escapes[256] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, + "\\u0000", + "\\u0001", + "\\u0002", + "\\u0003", + "\\u0004", + "\\u0005", + "\\u0006", + "\\u0007", "\\b", "\\t", "\\n", - NULL, + "\\u000b", "\\f", "\\r", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, + "\\u000e", + "\\u000f", + "\\u0010", + "\\u0011", + "\\u0012", + "\\u0013", + "\\u0014", + "\\u0015", + "\\u0016", + "\\u0017", + "\\u0018", + "\\u0019", + "\\u001a", + "\\u001b", + "\\u001c", + "\\u001d", + "\\u001e", + "\\u001f", NULL, NULL, "\\\"", @@ -129,7 +129,7 @@ static const char *escapes[256] = { NULL, NULL, NULL, - NULL, + "\\u007f", NULL, NULL, NULL, diff --git a/src/univalue/lib/univalue_read.cpp b/src/univalue/lib/univalue_read.cpp index 64591234cb..c7516b9628 100644 --- a/src/univalue/lib/univalue_read.cpp +++ b/src/univalue/lib/univalue_read.cpp @@ -9,6 +9,11 @@ using namespace std; +static bool json_isdigit(int ch) +{ + return ((ch >= '0') && (ch <= '9')); +} + // convert hexadecimal string to unsigned integer static const char *hatoui(const char *first, const char *last, unsigned int& out) @@ -17,7 +22,7 @@ static const char *hatoui(const char *first, const char *last, for (; first != last; ++first) { int digit; - if (isdigit(*first)) + if (json_isdigit(*first)) digit = *first - '0'; else if (*first >= 'a' && *first <= 'f') @@ -44,7 +49,7 @@ enum jtokentype getJsonToken(string& tokenVal, unsigned int& consumed, const char *rawStart = raw; - while ((*raw) && (isspace(*raw))) // skip whitespace + while ((*raw) && (json_isspace(*raw))) // skip whitespace raw++; switch (*raw) { @@ -113,18 +118,18 @@ enum jtokentype getJsonToken(string& tokenVal, unsigned int& consumed, const char *first = raw; const char *firstDigit = first; - if (!isdigit(*firstDigit)) + if (!json_isdigit(*firstDigit)) firstDigit++; - if ((*firstDigit == '0') && isdigit(firstDigit[1])) + if ((*firstDigit == '0') && json_isdigit(firstDigit[1])) return JTOK_ERR; numStr += *raw; // copy first char raw++; - if ((*first == '-') && (!isdigit(*raw))) + if ((*first == '-') && (!json_isdigit(*raw))) return JTOK_ERR; - while ((*raw) && isdigit(*raw)) { // copy digits + while ((*raw) && json_isdigit(*raw)) { // copy digits numStr += *raw; raw++; } @@ -134,9 +139,9 @@ enum jtokentype getJsonToken(string& tokenVal, unsigned int& consumed, numStr += *raw; // copy . raw++; - if (!isdigit(*raw)) + if (!json_isdigit(*raw)) return JTOK_ERR; - while ((*raw) && isdigit(*raw)) { // copy digits + while ((*raw) && json_isdigit(*raw)) { // copy digits numStr += *raw; raw++; } @@ -152,9 +157,9 @@ enum jtokentype getJsonToken(string& tokenVal, unsigned int& consumed, raw++; } - if (!isdigit(*raw)) + if (!json_isdigit(*raw)) return JTOK_ERR; - while ((*raw) && isdigit(*raw)) { // copy digits + while ((*raw) && json_isdigit(*raw)) { // copy digits numStr += *raw; raw++; } @@ -236,12 +241,23 @@ enum jtokentype getJsonToken(string& tokenVal, unsigned int& consumed, } } +enum expect_bits { + EXP_OBJ_NAME = (1U << 0), + EXP_COLON = (1U << 1), + EXP_ARR_VALUE = (1U << 2), + EXP_VALUE = (1U << 3), + EXP_NOT_VALUE = (1U << 4), +}; + +#define expect(bit) (expectMask & (EXP_##bit)) +#define setExpect(bit) (expectMask |= EXP_##bit) +#define clearExpect(bit) (expectMask &= ~EXP_##bit) + bool UniValue::read(const char *raw) { clear(); - bool expectName = false; - bool expectColon = false; + uint32_t expectMask = 0; vector<UniValue*> stack; string tokenVal; @@ -256,6 +272,41 @@ bool UniValue::read(const char *raw) return false; raw += consumed; + bool isValueOpen = jsonTokenIsValue(tok) || + tok == JTOK_OBJ_OPEN || tok == JTOK_ARR_OPEN; + + if (expect(VALUE)) { + if (!isValueOpen) + return false; + clearExpect(VALUE); + + } else if (expect(ARR_VALUE)) { + bool isArrValue = isValueOpen || (tok == JTOK_ARR_CLOSE); + if (!isArrValue) + return false; + + clearExpect(ARR_VALUE); + + } else if (expect(OBJ_NAME)) { + bool isObjName = (tok == JTOK_OBJ_CLOSE || tok == JTOK_STRING); + if (!isObjName) + return false; + + } else if (expect(COLON)) { + if (tok != JTOK_COLON) + return false; + clearExpect(COLON); + + } else if (!expect(COLON) && (tok == JTOK_COLON)) { + return false; + } + + if (expect(NOT_VALUE)) { + if (isValueOpen) + return false; + clearExpect(NOT_VALUE); + } + switch (tok) { case JTOK_OBJ_OPEN: @@ -277,13 +328,15 @@ bool UniValue::read(const char *raw) } if (utyp == VOBJ) - expectName = true; + setExpect(OBJ_NAME); + else + setExpect(ARR_VALUE); break; } case JTOK_OBJ_CLOSE: case JTOK_ARR_CLOSE: { - if (!stack.size() || expectColon || (last_tok == JTOK_COMMA)) + if (!stack.size() || (last_tok == JTOK_COMMA)) return false; VType utyp = (tok == JTOK_OBJ_CLOSE ? VOBJ : VARR); @@ -292,37 +345,40 @@ bool UniValue::read(const char *raw) return false; stack.pop_back(); - expectName = false; + clearExpect(OBJ_NAME); + setExpect(NOT_VALUE); break; } case JTOK_COLON: { - if (!stack.size() || expectName || !expectColon) + if (!stack.size()) return false; UniValue *top = stack.back(); if (top->getType() != VOBJ) return false; - expectColon = false; + setExpect(VALUE); break; } case JTOK_COMMA: { - if (!stack.size() || expectName || expectColon || + if (!stack.size() || (last_tok == JTOK_COMMA) || (last_tok == JTOK_ARR_OPEN)) return false; UniValue *top = stack.back(); if (top->getType() == VOBJ) - expectName = true; + setExpect(OBJ_NAME); + else + setExpect(ARR_VALUE); break; } case JTOK_KW_NULL: case JTOK_KW_TRUE: case JTOK_KW_FALSE: { - if (!stack.size() || expectName || expectColon) + if (!stack.size()) return false; UniValue tmpVal; @@ -342,17 +398,19 @@ bool UniValue::read(const char *raw) UniValue *top = stack.back(); top->values.push_back(tmpVal); + setExpect(NOT_VALUE); break; } case JTOK_NUMBER: { - if (!stack.size() || expectName || expectColon) + if (!stack.size()) return false; UniValue tmpVal(VNUM, tokenVal); UniValue *top = stack.back(); top->values.push_back(tmpVal); + setExpect(NOT_VALUE); break; } @@ -362,15 +420,16 @@ bool UniValue::read(const char *raw) UniValue *top = stack.back(); - if (expectName) { + if (expect(OBJ_NAME)) { top->keys.push_back(tokenVal); - expectName = false; - expectColon = true; + clearExpect(OBJ_NAME); + setExpect(COLON); } else { UniValue tmpVal(VSTR, tokenVal); top->values.push_back(tmpVal); } + setExpect(NOT_VALUE); break; } diff --git a/src/univalue/lib/univalue_write.cpp b/src/univalue/lib/univalue_write.cpp index bce3997af7..ceb4cc9166 100644 --- a/src/univalue/lib/univalue_write.cpp +++ b/src/univalue/lib/univalue_write.cpp @@ -2,7 +2,6 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include <ctype.h> #include <iomanip> #include <sstream> #include <stdio.h> @@ -25,10 +24,10 @@ static string json_escape(const string& inS) if (escStr) outS += escStr; - else if (isprint(ch)) + else if (ch < 0x80) outS += ch; - else { + else { // TODO handle UTF-8 properly char tmpesc[16]; sprintf(tmpesc, "\\u%04x", ch); outS += tmpesc; @@ -113,7 +112,7 @@ void UniValue::writeObject(unsigned int prettyIndent, unsigned int indentLevel, s += "\"" + json_escape(keys[i]) + "\":"; if (prettyIndent) s += " "; - s += values[i].write(prettyIndent, indentLevel + 1); + s += values.at(i).write(prettyIndent, indentLevel + 1); if (i != (values.size() - 1)) s += ","; if (prettyIndent) diff --git a/src/univalue/test/.gitignore b/src/univalue/test/.gitignore index 4afa094b10..3d9347fe7e 100644 --- a/src/univalue/test/.gitignore +++ b/src/univalue/test/.gitignore @@ -1 +1,4 @@ unitester + +*.trs +*.log diff --git a/src/univalue/test/fail35.json b/src/univalue/test/fail35.json new file mode 100644 index 0000000000..de30ca5c47 --- /dev/null +++ b/src/univalue/test/fail35.json @@ -0,0 +1 @@ +[ true true true [] [] [] ] diff --git a/src/univalue/test/fail36.json b/src/univalue/test/fail36.json new file mode 100644 index 0000000000..f82eb8e1f0 --- /dev/null +++ b/src/univalue/test/fail36.json @@ -0,0 +1 @@ +{"a":} diff --git a/src/univalue/test/fail37.json b/src/univalue/test/fail37.json new file mode 100644 index 0000000000..3294dc3a42 --- /dev/null +++ b/src/univalue/test/fail37.json @@ -0,0 +1 @@ +{"a":1 "b":2} diff --git a/src/univalue/test/round1.json b/src/univalue/test/round1.json new file mode 100644 index 0000000000..a711e7308b --- /dev/null +++ b/src/univalue/test/round1.json @@ -0,0 +1 @@ +["\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f"] diff --git a/src/univalue/test/unitester.cpp b/src/univalue/test/unitester.cpp index 835556e031..5a052fe92c 100644 --- a/src/univalue/test/unitester.cpp +++ b/src/univalue/test/unitester.cpp @@ -19,24 +19,37 @@ using namespace std; string srcdir(JSON_TEST_SRC); +static bool test_failed = false; -static void runtest(string filename, const string& jdata) +#define d_assert(expr) { if (!(expr)) { test_failed = true; fprintf(stderr, "%s failed\n", filename.c_str()); } } + +static std::string rtrim(std::string s) { - fprintf(stderr, "test %s\n", filename.c_str()); + s.erase(s.find_last_not_of(" \n\r\t")+1); + return s; +} +static void runtest(string filename, const string& jdata) +{ string prefix = filename.substr(0, 4); - bool wantPass = (prefix == "pass"); + bool wantPass = (prefix == "pass") || (prefix == "roun"); bool wantFail = (prefix == "fail"); + bool wantRoundTrip = (prefix == "roun"); assert(wantPass || wantFail); UniValue val; bool testResult = val.read(jdata); if (wantPass) { - assert(testResult == true); + d_assert(testResult == true); } else { - assert(testResult == false); + d_assert(testResult == false); + } + + if (wantRoundTrip) { + std::string odata = val.write(0, 0); + assert(odata == rtrim(jdata)); } } @@ -92,6 +105,9 @@ static const char *filenames[] = { "fail32.json", "fail33.json", "fail34.json", + "fail35.json", + "fail36.json", + "fail37.json", "fail3.json", "fail4.json", // extra comma "fail5.json", @@ -102,6 +118,7 @@ static const char *filenames[] = { "pass1.json", "pass2.json", "pass3.json", + "round1.json", // round-trip test }; int main (int argc, char *argv[]) @@ -110,6 +127,6 @@ int main (int argc, char *argv[]) runtest_file(filenames[fidx]); } - return 0; + return test_failed ? 1 : 0; } diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 8b9292bd14..5e8ccd90ab 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -328,4 +328,22 @@ BOOST_AUTO_TEST_CASE(coin_selection_tests) empty_wallet(); } +BOOST_AUTO_TEST_CASE(pruning_in_ApproximateBestSet) +{ + CoinSet setCoinsRet; + CAmount nValueRet; + + LOCK(wallet.cs_wallet); + + empty_wallet(); + for (int i = 0; i < 12; i++) + { + add_coin(10*CENT); + } + add_coin(100*CENT); + add_coin(100*CENT); + BOOST_CHECK(wallet.SelectCoinsMinConf(221*CENT, 1, 6, vCoins, setCoinsRet, nValueRet)); + BOOST_CHECK_EQUAL(nValueRet, 230*CENT); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 30b9869be0..2cbb89e5a8 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1034,7 +1034,8 @@ void CWalletTx::GetAmounts(list<COutputEntry>& listReceived, // In either case, we need to get the destination address CTxDestination address; - if (!ExtractDestination(txout.scriptPubKey, address)) + + if (!ExtractDestination(txout.scriptPubKey, address) && !txout.scriptPubKey.IsUnspendable()) { LogPrintf("CWalletTx::GetAmounts: Unknown transaction type found, txid %s\n", this->GetHash().ToString()); @@ -1359,6 +1360,15 @@ CAmount CWalletTx::GetChange() const return nChangeCached; } +bool CWalletTx::InMempool() const +{ + LOCK(mempool.cs); + if (mempool.exists(GetHash())) { + return true; + } + return false; +} + bool CWalletTx::IsTrusted() const { // Quick answer in most cases @@ -1373,12 +1383,8 @@ bool CWalletTx::IsTrusted() const return false; // Don't trust unconfirmed transactions from us unless they are in the mempool. - { - LOCK(mempool.cs); - if (!mempool.exists(GetHash())) { - return false; - } - } + if (!InMempool()) + return false; // Trusted if all inputs are from us and are in the mempool: BOOST_FOREACH(const CTxIn& txin, vin) @@ -1632,6 +1638,16 @@ static void ApproximateBestSubset(vector<pair<CAmount, pair<const CWalletTx*,uns } } } + + //Reduces the approximate best subset by removing any inputs that are smaller than the surplus of nTotal beyond nTargetValue. + for (unsigned int i = 0; i < vValue.size(); i++) + { + if (vfBest[i] && (nBest - vValue[i].first) >= nTargetValue ) + { + vfBest[i] = false; + nBest -= vValue[i].first; + } + } } bool CWallet::SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, vector<COutput> vCoins, @@ -1871,15 +1887,25 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend, CWalletTx& wt // Discourage fee sniping. // - // However because of a off-by-one-error in previous versions we need to - // neuter it by setting nLockTime to at least one less than nBestHeight. - // Secondly currently propagation of transactions created for block heights - // corresponding to blocks that were just mined may be iffy - transactions - // aren't re-accepted into the mempool - we additionally neuter the code by - // going ten blocks back. Doesn't yet do anything for sniping, but does act - // to shake out wallet bugs like not showing nLockTime'd transactions at - // all. - txNew.nLockTime = std::max(0, chainActive.Height() - 10); + // For a large miner the value of the transactions in the best block and + // the mempool can exceed the cost of deliberately attempting to mine two + // blocks to orphan the current best block. By setting nLockTime such that + // only the next block can include the transaction, we discourage this + // practice as the height restricted and limited blocksize gives miners + // considering fee sniping fewer options for pulling off this attack. + // + // A simple way to think about this is from the wallet's point of view we + // always want the blockchain to move forward. By setting nLockTime this + // way we're basically making the statement that we only want this + // transaction to appear in the next block; we don't want to potentially + // encourage reorgs by allowing transactions to appear at lower heights + // than the next block in forks of the best chain. + // + // Of course, the subsidy is high enough, and transaction volume low + // enough, that fee sniping isn't a problem yet, but by implementing a fix + // now we ensure code won't be written that makes assumptions about + // nLockTime that preclude a fix later. + txNew.nLockTime = chainActive.Height(); // Secondly occasionally randomly pick a nLockTime even further back, so // that transactions that are delayed after signing for whatever reason, diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 859788893c..7354ff19c7 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -384,6 +384,7 @@ public: // True if only scriptSigs are different bool IsEquivalentTo(const CWalletTx& tx) const; + bool InMempool() const; bool IsTrusted() const; bool WriteToDisk(CWalletDB *pwalletdb); |