aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--contrib/devtools/README.md61
-rwxr-xr-xcontrib/devtools/update-translations.py13
-rw-r--r--contrib/gitian-descriptors/gitian-linux.yml2
-rw-r--r--contrib/gitian-descriptors/gitian-osx.yml2
-rw-r--r--contrib/gitian-descriptors/gitian-win.yml2
-rwxr-xr-xcontrib/seeds/generate-seeds.py2
-rw-r--r--doc/Doxyfile2
-rw-r--r--doc/README.md2
-rw-r--r--doc/README_windows.txt2
-rw-r--r--doc/build-osx.md20
-rw-r--r--doc/build-unix.md2
-rw-r--r--doc/release-notes.md268
-rw-r--r--doc/release-notes/release-notes-0.6.3.md2
-rw-r--r--doc/translation_process.md6
-rw-r--r--qa/replace-by-fee/.gitignore1
-rw-r--r--qa/replace-by-fee/README.md13
-rwxr-xr-xqa/replace-by-fee/rbf-tests.py360
-rw-r--r--qa/rpc-tests/README.md5
-rwxr-xr-xqa/rpc-tests/maxblocksinflight.py1
-rwxr-xr-xqa/rpc-tests/maxuploadtarget.py1
-rwxr-xr-xqa/rpc-tests/p2p-acceptblock.py1
-rwxr-xr-xqa/rpc-tests/sendheaders.py3
-rwxr-xr-xqa/rpc-tests/test_framework/comptool.py1
-rwxr-xr-xqa/rpc-tests/test_framework/mininode.py24
-rw-r--r--qa/rpc-tests/test_framework/util.py1
-rw-r--r--src/Makefile.am1
-rw-r--r--src/Makefile.qt.include16
-rw-r--r--src/Makefile.test.include1
-rw-r--r--src/amount.h2
-rw-r--r--src/bitcoin-cli.cpp2
-rw-r--r--src/bloom.cpp77
-rw-r--r--src/bloom.h26
-rw-r--r--src/chainparamsbase.cpp26
-rw-r--r--src/chainparamsbase.h2
-rw-r--r--src/clientversion.h2
-rw-r--r--src/coins.cpp14
-rw-r--r--src/coins.h13
-rw-r--r--src/init.cpp2
-rw-r--r--src/main.cpp101
-rw-r--r--src/miner.cpp2
-rw-r--r--src/mruset.h65
-rw-r--r--src/net.cpp32
-rw-r--r--src/net.h38
-rw-r--r--src/prevector.h2
-rw-r--r--src/qt/bitcoin_locale.qrc16
-rw-r--r--src/qt/locale/bitcoin_ach.ts113
-rw-r--r--src/qt/locale/bitcoin_be_BY.ts4
-rw-r--r--src/qt/locale/bitcoin_bg.ts16
-rw-r--r--src/qt/locale/bitcoin_bg_BG.ts (renamed from src/qt/locale/bitcoin_cmn.ts)40
-rw-r--r--src/qt/locale/bitcoin_ca.ts28
-rw-r--r--src/qt/locale/bitcoin_ca@valencia.ts28
-rw-r--r--src/qt/locale/bitcoin_ca_ES.ts28
-rw-r--r--src/qt/locale/bitcoin_cs.ts28
-rw-r--r--src/qt/locale/bitcoin_cs_CZ.ts609
-rw-r--r--src/qt/locale/bitcoin_da.ts28
-rw-r--r--src/qt/locale/bitcoin_de.ts84
-rw-r--r--src/qt/locale/bitcoin_el.ts301
-rw-r--r--src/qt/locale/bitcoin_el_GR.ts24
-rw-r--r--src/qt/locale/bitcoin_en.ts37
-rw-r--r--src/qt/locale/bitcoin_en_GB.ts3667
-rw-r--r--src/qt/locale/bitcoin_eo.ts16
-rw-r--r--src/qt/locale/bitcoin_es.ts28
-rw-r--r--src/qt/locale/bitcoin_es_CL.ts5
-rw-r--r--src/qt/locale/bitcoin_es_DO.ts16
-rw-r--r--src/qt/locale/bitcoin_es_ES.ts469
-rw-r--r--src/qt/locale/bitcoin_es_MX.ts16
-rw-r--r--src/qt/locale/bitcoin_es_VE.ts1077
-rw-r--r--src/qt/locale/bitcoin_et.ts16
-rw-r--r--src/qt/locale/bitcoin_fa.ts20
-rw-r--r--src/qt/locale/bitcoin_fi.ts28
-rw-r--r--src/qt/locale/bitcoin_fr.ts28
-rw-r--r--src/qt/locale/bitcoin_fr_FR.ts877
-rw-r--r--src/qt/locale/bitcoin_gl.ts16
-rw-r--r--src/qt/locale/bitcoin_gu_IN.ts113
-rw-r--r--src/qt/locale/bitcoin_he.ts24
-rw-r--r--src/qt/locale/bitcoin_hr.ts4
-rw-r--r--src/qt/locale/bitcoin_hu.ts25
-rw-r--r--src/qt/locale/bitcoin_id_ID.ts16
-rw-r--r--src/qt/locale/bitcoin_it.ts28
-rw-r--r--src/qt/locale/bitcoin_ja.ts28
-rw-r--r--src/qt/locale/bitcoin_ka.ts16
-rw-r--r--src/qt/locale/bitcoin_ko_KR.ts24
-rw-r--r--src/qt/locale/bitcoin_la.ts12
-rw-r--r--src/qt/locale/bitcoin_lt.ts8
-rw-r--r--src/qt/locale/bitcoin_lv_LV.ts16
-rw-r--r--src/qt/locale/bitcoin_mk_MK.ts1027
-rw-r--r--src/qt/locale/bitcoin_nb.ts28
-rw-r--r--src/qt/locale/bitcoin_nl.ts90
-rw-r--r--src/qt/locale/bitcoin_pam.ts12
-rw-r--r--src/qt/locale/bitcoin_pl.ts28
-rw-r--r--src/qt/locale/bitcoin_pt_BR.ts28
-rw-r--r--src/qt/locale/bitcoin_pt_PT.ts24
-rw-r--r--src/qt/locale/bitcoin_ro_RO.ts24
-rw-r--r--src/qt/locale/bitcoin_ru.ts28
-rw-r--r--src/qt/locale/bitcoin_ru_RU.ts229
-rw-r--r--src/qt/locale/bitcoin_sah.ts113
-rw-r--r--src/qt/locale/bitcoin_sk.ts28
-rw-r--r--src/qt/locale/bitcoin_sl_SI.ts28
-rw-r--r--src/qt/locale/bitcoin_sv.ts28
-rw-r--r--src/qt/locale/bitcoin_tr.ts28
-rw-r--r--src/qt/locale/bitcoin_tr_TR.ts265
-rw-r--r--src/qt/locale/bitcoin_uk.ts28
-rw-r--r--src/qt/locale/bitcoin_uz@Cyrl.ts12
-rw-r--r--src/qt/locale/bitcoin_zh.ts217
-rw-r--r--src/qt/locale/bitcoin_zh_CN.ts29
-rw-r--r--src/qt/locale/bitcoin_zh_HK.ts113
-rw-r--r--src/qt/locale/bitcoin_zh_TW.ts28
-rw-r--r--src/qt/peertablemodel.cpp2
-rw-r--r--src/qt/utilitydialog.cpp14
-rw-r--r--src/rest.cpp2
-rw-r--r--src/rpcblockchain.cpp8
-rw-r--r--src/rpcnet.cpp22
-rw-r--r--src/test/mruset_tests.cpp81
-rw-r--r--src/test/scheduler_tests.cpp2
-rw-r--r--src/txmempool.cpp22
-rw-r--r--src/txmempool.h7
-rw-r--r--src/univalue/.gitignore1
-rw-r--r--src/univalue/.travis.yml2
-rw-r--r--src/univalue/Makefile.am6
-rw-r--r--src/univalue/configure.ac2
-rw-r--r--src/univalue/gen/gen.cpp15
-rw-r--r--src/univalue/include/univalue.h35
-rw-r--r--src/univalue/lib/univalue.cpp21
-rw-r--r--src/univalue/lib/univalue_escapes.h56
-rw-r--r--src/univalue/lib/univalue_read.cpp107
-rw-r--r--src/univalue/lib/univalue_write.cpp7
-rw-r--r--src/univalue/test/.gitignore3
-rw-r--r--src/univalue/test/fail35.json1
-rw-r--r--src/univalue/test/fail36.json1
-rw-r--r--src/univalue/test/fail37.json1
-rw-r--r--src/univalue/test/round1.json1
-rw-r--r--src/univalue/test/unitester.cpp29
-rw-r--r--src/wallet/test/wallet_tests.cpp18
-rw-r--r--src/wallet/wallet.cpp38
135 files changed, 9576 insertions, 2563 deletions
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/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..52b898b675 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"
diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml
index 9ac774c8a0..cdb266d75d 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"
diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml
index 6bb482d45f..51240b2ce0 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"
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/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..8bb842ddb8 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,6 @@ 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.
-
-The following items contain assembly representations of scriptSig signatures
-and are affected by this change:
-
-- RPC `getrawtransaction`
-- RPC `decoderawtransaction`
-- 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 +36,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/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/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 e714465db1..249663779c 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/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/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..9444424dcf 100755
--- a/qa/rpc-tests/test_framework/comptool.py
+++ b/qa/rpc-tests/test_framework/comptool.py
@@ -45,7 +45,6 @@ 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
diff --git a/qa/rpc-tests/test_framework/mininode.py b/qa/rpc-tests/test_framework/mininode.py
index 64985d58e2..9d0fb713a1 100755
--- a/qa/rpc-tests/test_framework/mininode.py
+++ b/qa/rpc-tests/test_framework/mininode.py
@@ -1015,32 +1015,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/util.py b/qa/rpc-tests/test_framework/util.py
index b7e90a8a8b..72df3ae685 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):
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/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/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 = &regTestParams;
+ 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..a0e996ae78 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -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,6 +789,17 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state)
return true;
}
+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);
+
+ std::vector<uint256> vNoSpendsRemaining;
+ pool.TrimToSize(limit, &vNoSpendsRemaining);
+ BOOST_FOREACH(const uint256& removed, vNoSpendsRemaining)
+ pcoinsTip->Uncache(removed);
+}
+
CAmount GetMinRelayFee(const CTransaction& tx, const CTxMemPool& pool, unsigned int nBytes, bool fAllowFree)
{
uint256 hash = tx.GetHash();
@@ -824,8 +835,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 +918,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;
@@ -1210,12 +1228,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 +1239,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)
{
@@ -1919,8 +1945,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 +2597,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 +2712,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 +3047,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:
@@ -4161,8 +4187,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("tx", block.vtx[pair.first]);
}
// else
// no response
@@ -4804,6 +4829,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
if (nDoS > 0)
Misbehaving(pfrom->GetId(), nDoS);
}
+ FlushStateToDisk(state, FLUSH_STATE_PERIODIC);
}
@@ -4955,6 +4981,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
else if (strCommand == "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,12 +4994,13 @@ 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);
vInv.clear();
@@ -5535,7 +5568,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
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,15 +5589,13 @@ 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("inv", vInv);
+ vInv.clear();
}
}
pto->vInventoryToSend = vInvWait;
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..159d44cba1 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -67,6 +67,16 @@ namespace {
};
}
+//immutable thread safe array of allowed commands for logging inbound traffic
+const static std::string logAllowIncomingMsgCmds[] = {
+ "version", "addr", "inv", "getdata", "merkleblock",
+ "getblocks", "getheaders", "tx", "headers", "block",
+ "getaddr", "mempool", "ping", "pong", "alert", "notfound",
+ "filterload", "filteradd", "filterclear", "reject",
+ "sendheaders", "verack"};
+
+const static std::string NET_MESSAGE_COMMAND_OTHER = "*other*";
+
//
// Global state variables
//
@@ -627,7 +637,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 +694,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();
}
@@ -2342,7 +2363,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,6 +2390,7 @@ CNode::CNode(SOCKET hSocketIn, const CAddress& addrIn, const std::string& addrNa
nSendOffset = 0;
hashContinue = uint256();
nStartingHeight = -1;
+ filterInventoryKnown.reset();
fGetAddr = false;
fRelayTxes = false;
pfilter = new CBloomFilter();
@@ -2377,6 +2399,9 @@ CNode::CNode(SOCKET hSocketIn, const CAddress& addrIn, const std::string& addrNa
nPingUsecTime = 0;
fPingQueued = false;
nMinPingUsecTime = std::numeric_limits<int64_t>::max();
+ for (unsigned int i = 0; i < sizeof(logAllowIncomingMsgCmds)/sizeof(logAllowIncomingMsgCmds[0]); i++)
+ mapRecvBytesPerMsgCmd[logAllowIncomingMsgCmds[i]] = 0;
+ mapRecvBytesPerMsgCmd[NET_MESSAGE_COMMAND_OTHER] = 0;
{
LOCK(cs_nLastNodeId);
@@ -2456,7 +2481,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 +2504,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;
diff --git a/src/net.h b/src/net.h
index a5a5c770d6..3ed438605e 100644
--- a/src/net.h
+++ b/src/net.h
@@ -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"
@@ -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
@@ -388,7 +393,7 @@ public:
std::set<uint256> setKnown;
// inventory based relay
- mruset<CInv> setInventoryKnown;
+ CRollingBloomFilter filterInventoryKnown;
std::vector<CInv> vInventoryToSend;
CCriticalSection cs_inventory;
std::set<uint256> setAskFor;
@@ -497,7 +502,7 @@ public:
{
{
LOCK(cs_inventory);
- setInventoryKnown.insert(inv);
+ filterInventoryKnown.insert(inv.hash);
}
}
@@ -505,8 +510,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 +531,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 +541,7 @@ public:
try
{
BeginMessage(pszCommand);
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -551,7 +557,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -567,7 +573,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -583,7 +589,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -599,7 +605,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -615,7 +621,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4 << a5;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -631,7 +637,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4 << a5 << a6;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -647,7 +653,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -663,7 +669,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7 << a8;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
@@ -679,7 +685,7 @@ public:
{
BeginMessage(pszCommand);
ssSend << a1 << a2 << a3 << a4 << a5 << a6 << a7 << a8 << a9;
- EndMessage();
+ EndMessage(pszCommand);
}
catch (...)
{
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/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/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_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts
index c1efc822ec..3343781b76 100644
--- a/src/qt/locale/bitcoin_be_BY.ts
+++ b/src/qt/locale/bitcoin_be_BY.ts
@@ -1444,10 +1444,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..be5aec371b 100644
--- a/src/qt/locale/bitcoin_bg.ts
+++ b/src/qt/locale/bitcoin_bg.ts
@@ -2362,10 +2362,6 @@
<translation>Сложете в бял списък пиъри,свързващи се от дадената интернет маска или айпи адрес.Може да бъде заложено неколкократно.</translation>
</message>
<message>
- <source>(default: 1)</source>
- <translation>(по подразбиране 1)</translation>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; може да бъде:</translation>
</message>
@@ -2410,10 +2406,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>
@@ -2438,14 +2430,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..d1157a8e44 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>&amp;New</source>
+ <translation>Нов</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>Копирай</translation>
+ </message>
+ <message>
+ <source>C&amp;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>&amp;About Bitcoin Core</source>
+ <translation>За Биткойн ядрото</translation>
+ </message>
</context>
<context>
<name>ClientModel</name>
@@ -32,9 +56,17 @@
</context>
<context>
<name>HelpMessageDialog</name>
+ <message>
+ <source>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 +115,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..5a0e36de9e 100644
--- a/src/qt/locale/bitcoin_ca.ts
+++ b/src/qt/locale/bitcoin_ca.ts
@@ -2840,10 +2840,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; pot ser:</translation>
</message>
@@ -3060,10 +3056,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 +3132,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 +3144,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 +3168,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..353e80ca18 100644
--- a/src/qt/locale/bitcoin_ca@valencia.ts
+++ b/src/qt/locale/bitcoin_ca@valencia.ts
@@ -2836,10 +2836,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; pot ser:</translation>
</message>
@@ -3056,10 +3052,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 +3128,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 +3140,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 +3164,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..bf4be89a03 100644
--- a/src/qt/locale/bitcoin_ca_ES.ts
+++ b/src/qt/locale/bitcoin_ca_ES.ts
@@ -2840,10 +2840,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; pot ser:</translation>
</message>
@@ -3060,10 +3056,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 +3132,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 +3144,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 +3168,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..d791d9d98d 100644
--- a/src/qt/locale/bitcoin_cs.ts
+++ b/src/qt/locale/bitcoin_cs.ts
@@ -2840,10 +2840,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; může být:</translation>
</message>
@@ -3060,10 +3056,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 +3132,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 +3144,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 +3168,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>
diff --git a/src/qt/locale/bitcoin_cs_CZ.ts b/src/qt/locale/bitcoin_cs_CZ.ts
new file mode 100644
index 0000000000..026247e7c6
--- /dev/null
+++ b/src/qt/locale/bitcoin_cs_CZ.ts
@@ -0,0 +1,609 @@
+<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>&amp;Delete</source>
+ <translation>&amp;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>&amp;Overview</source>
+ <translation>&amp;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>&amp;Transactions</source>
+ <translation>&amp;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>&amp;Options...</source>
+ <translation>&amp;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>&amp;File</source>
+ <translation>&amp;Soubor</translation>
+ </message>
+ <message>
+ <source>&amp;Settings</source>
+ <translation>&amp;Nastavení</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>Nápo&amp;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 &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Peněženka je &lt;b&gt;zašifrována&lt;/b&gt; a momentálně &lt;b&gt;odemčená&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Peněženka je &lt;b&gt;zašifrována&lt;/b&gt; a momentálně &lt;b&gt;uzamčená&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ClientModel</name>
+ </context>
+<context>
+ <name>CoinControlDialog</name>
+ <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>&amp;Label</source>
+ <translation>&amp;Popisek</translation>
+ </message>
+ <message>
+ <source>&amp;Address</source>
+ <translation>&amp;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 &amp;UPnP</source>
+ <translation>Mapovat port pomocí &amp;UPnP</translation>
+ </message>
+ <message>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimalizovat do systémové lišty (tray) namísto do hlavního panelu</translation>
+ </message>
+ <message>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;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>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>
+ </context>
+<context>
+ <name>RecentRequestsTableModel</name>
+ <message>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Popis</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>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>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>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_da.ts b/src/qt/locale/bitcoin_da.ts
index ac194e0520..edcd9b3b03 100644
--- a/src/qt/locale/bitcoin_da.ts
+++ b/src/qt/locale/bitcoin_da.ts
@@ -2996,10 +2996,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 +3268,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 +3356,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 +3368,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 +3400,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>
diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts
index 6b68b3c74a..04b4d23010 100644
--- a/src/qt/locale/bitcoin_de.ts
+++ b/src/qt/locale/bitcoin_de.ts
@@ -1092,6 +1092,10 @@
<translation>Tor</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>&amp;Window</source>
<translation>&amp;Programmfenster</translation>
</message>
@@ -1478,6 +1482,10 @@
<translation>&amp;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>
@@ -2053,6 +2061,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>
@@ -2904,10 +2916,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>
@@ -3008,6 +3016,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 +3144,12 @@
<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>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 +3168,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 +3224,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 +3236,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 +3248,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>
@@ -3260,14 +3272,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>
@@ -3320,6 +3332,18 @@
<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>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 +3360,10 @@
<translation>Debugginginformationen ausgeben (Standard: %u, &lt;category&gt; anzugeben ist optional)</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>
diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts
new file mode 100644
index 0000000000..f53a88082d
--- /dev/null
+++ b/src/qt/locale/bitcoin_el.ts
@@ -0,0 +1,301 @@
+<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>
+ </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>
+ </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>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>
+ </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..b62a4756e1 100644
--- a/src/qt/locale/bitcoin_el_GR.ts
+++ b/src/qt/locale/bitcoin_el_GR.ts
@@ -2543,10 +2543,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>
@@ -2631,10 +2627,6 @@
<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>
@@ -2675,22 +2667,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 +2679,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_en.ts b/src/qt/locale/bitcoin_en.ts
index 0c5529955f..e709f8515b 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 &quot;de_DE&quot; (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 changes made over 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..96cdecfe83
--- /dev/null
+++ b/src/qt/locale/bitcoin_en_GB.ts
@@ -0,0 +1,3667 @@
+<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>&amp;New</source>
+ <translation>&amp;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>&amp;Copy</source>
+ <translation>&amp;Copy</translation>
+ </message>
+ <message>
+ <source>C&amp;lose</source>
+ <translation>C&amp;lose</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;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>&amp;Export</source>
+ <translation>&amp;Export</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;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&amp;hoose</source>
+ <translation>C&amp;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 &amp;Label</source>
+ <translation>Copy &amp;Label</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;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 &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+ <translation>Warning: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</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.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</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 &amp;message...</source>
+ <translation>Sign &amp;message...</translation>
+ </message>
+ <message>
+ <source>Synchronizing with network...</source>
+ <translation>Synchronising with network...</translation>
+ </message>
+ <message>
+ <source>&amp;Overview</source>
+ <translation>&amp;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>&amp;Transactions</source>
+ <translation>&amp;Transactions</translation>
+ </message>
+ <message>
+ <source>Browse transaction history</source>
+ <translation>Browse transaction history</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>E&amp;xit</translation>
+ </message>
+ <message>
+ <source>Quit application</source>
+ <translation>Quit application</translation>
+ </message>
+ <message>
+ <source>About &amp;Qt</source>
+ <translation>About &amp;Qt</translation>
+ </message>
+ <message>
+ <source>Show information about Qt</source>
+ <translation>Show information about Qt</translation>
+ </message>
+ <message>
+ <source>&amp;Options...</source>
+ <translation>&amp;Options...</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation>&amp;Encrypt Wallet...</translation>
+ </message>
+ <message>
+ <source>&amp;Backup Wallet...</source>
+ <translation>&amp;Backup Wallet...</translation>
+ </message>
+ <message>
+ <source>&amp;Change Passphrase...</source>
+ <translation>&amp;Change Passphrase...</translation>
+ </message>
+ <message>
+ <source>&amp;Sending addresses...</source>
+ <translation>&amp;Sending addresses...</translation>
+ </message>
+ <message>
+ <source>&amp;Receiving addresses...</source>
+ <translation>&amp;Receiving addresses...</translation>
+ </message>
+ <message>
+ <source>Open &amp;URI...</source>
+ <translation>Open &amp;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>&amp;Debug window</source>
+ <translation>&amp;Debug window</translation>
+ </message>
+ <message>
+ <source>Open debugging and diagnostic console</source>
+ <translation>Open debugging and diagnostic console</translation>
+ </message>
+ <message>
+ <source>&amp;Verify message...</source>
+ <translation>&amp;Verify message...</translation>
+ </message>
+ <message>
+ <source>Bitcoin</source>
+ <translation>Bitcoin</translation>
+ </message>
+ <message>
+ <source>Wallet</source>
+ <translation>Wallet</translation>
+ </message>
+ <message>
+ <source>&amp;Send</source>
+ <translation>&amp;Send</translation>
+ </message>
+ <message>
+ <source>&amp;Receive</source>
+ <translation>&amp;Receive</translation>
+ </message>
+ <message>
+ <source>Show information about Bitcoin Core</source>
+ <translation>Show information about Bitcoin Core</translation>
+ </message>
+ <message>
+ <source>&amp;Show / Hide</source>
+ <translation>&amp;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>&amp;File</source>
+ <translation>&amp;File</translation>
+ </message>
+ <message>
+ <source>&amp;Settings</source>
+ <translation>&amp;Settings</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;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>&amp;About Bitcoin Core</source>
+ <translation>&amp;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>&amp;Command-line options</source>
+ <translation>&amp;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 &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</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>&amp;Label</source>
+ <translation>&amp;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>&amp;Address</source>
+ <translation>&amp;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>
+</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>&amp;Main</source>
+ <translation>&amp;Main</translation>
+ </message>
+ <message>
+ <source>Size of &amp;database cache</source>
+ <translation>Size of &amp;database cache</translation>
+ </message>
+ <message>
+ <source>MB</source>
+ <translation>MB</translation>
+ </message>
+ <message>
+ <source>Number of script &amp;verification threads</source>
+ <translation>Number of script &amp;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>&amp;Reset Options</source>
+ <translation>&amp;Reset Options</translation>
+ </message>
+ <message>
+ <source>&amp;Network</source>
+ <translation>&amp;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>&amp;Start Bitcoin Core on system login</source>
+ <translation>&amp;Start Bitcoin Core on system login</translation>
+ </message>
+ <message>
+ <source>(0 = auto, &lt;0 = leave that many cores free)</source>
+ <translation>(0 = auto, &lt;0 = leave that many cores free)</translation>
+ </message>
+ <message>
+ <source>W&amp;allet</source>
+ <translation>W&amp;allet</translation>
+ </message>
+ <message>
+ <source>Expert</source>
+ <translation>Expert</translation>
+ </message>
+ <message>
+ <source>Enable coin &amp;control features</source>
+ <translation>Enable coin &amp;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>&amp;Spend unconfirmed change</source>
+ <translation>&amp;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 &amp;UPnP</source>
+ <translation>Map port using &amp;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>&amp;Connect through SOCKS5 proxy (default proxy):</source>
+ <translation>&amp;Connect through SOCKS5 proxy (default proxy):</translation>
+ </message>
+ <message>
+ <source>Proxy &amp;IP:</source>
+ <translation>Proxy &amp;IP:</translation>
+ </message>
+ <message>
+ <source>&amp;Port:</source>
+ <translation>&amp;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>&amp;Window</source>
+ <translation>&amp;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>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimise to the tray instead of the task bar</translation>
+ </message>
+ <message>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimise on close</translation>
+ </message>
+ <message>
+ <source>&amp;Display</source>
+ <translation>&amp;Display</translation>
+ </message>
+ <message>
+ <source>User Interface &amp;language:</source>
+ <translation>User Interface &amp;language:</translation>
+ </message>
+ <message>
+ <source>&amp;Unit to show amounts in:</source>
+ <translation>&amp;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>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;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>&amp;Save Image...</source>
+ <translation>&amp;Save Image...</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Image</source>
+ <translation>&amp;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>&amp;Information</source>
+ <translation>&amp;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>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>&amp;Peers</source>
+ <translation>&amp;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>&amp;Open</source>
+ <translation>&amp;Open</translation>
+ </message>
+ <message>
+ <source>&amp;Console</source>
+ <translation>&amp;Console</translation>
+ </message>
+ <message>
+ <source>&amp;Network Traffic</source>
+ <translation>&amp;Network Traffic</translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation>&amp;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>&amp;Disconnect Node</source>
+ <translation>&amp;Disconnect Node</translation>
+ </message>
+ <message>
+ <source>Ban Node for</source>
+ <translation>Ban Node for</translation>
+ </message>
+ <message>
+ <source>1 &amp;hour</source>
+ <translation>1 &amp;hour</translation>
+ </message>
+ <message>
+ <source>1 &amp;day</source>
+ <translation>1 &amp;day</translation>
+ </message>
+ <message>
+ <source>1 &amp;week</source>
+ <translation>1 &amp;week</translation>
+ </message>
+ <message>
+ <source>1 &amp;year</source>
+ <translation>1 &amp;year</translation>
+ </message>
+ <message>
+ <source>&amp;Unban Node</source>
+ <translation>&amp;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 &lt;b&gt;Ctrl-L&lt;/b&gt; to clear screen.</source>
+ <translation>Use up and down arrows to navigate history, and &lt;b&gt;Ctrl-L&lt;/b&gt; to clear screen.</translation>
+ </message>
+ <message>
+ <source>Type &lt;b&gt;help&lt;/b&gt; for an overview of available commands.</source>
+ <translation>Type &lt;b&gt;help&lt;/b&gt; 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>&amp;Amount:</source>
+ <translation>&amp;Amount:</translation>
+ </message>
+ <message>
+ <source>&amp;Label:</source>
+ <translation>&amp;Label:</translation>
+ </message>
+ <message>
+ <source>&amp;Message:</source>
+ <translation>&amp;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&amp;euse an existing receiving address (not recommended)</source>
+ <translation>R&amp;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 &lt;b&gt;optional&lt;/b&gt;.</source>
+ <translation>Use this form to request payments. All fields are &lt;b&gt;optional&lt;/b&gt;.</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>&amp;Request payment</source>
+ <translation>&amp;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 &amp;URI</source>
+ <translation>Copy &amp;URI</translation>
+ </message>
+ <message>
+ <source>Copy &amp;Address</source>
+ <translation>Copy &amp;Address</translation>
+ </message>
+ <message>
+ <source>&amp;Save Image...</source>
+ <translation>&amp;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 &amp;Recipient</source>
+ <translation>Add &amp;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 &amp;All</source>
+ <translation>Clear &amp;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&amp;end</source>
+ <translation>S&amp;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&amp;mount:</source>
+ <translation>A&amp;mount:</translation>
+ </message>
+ <message>
+ <source>Pay &amp;To:</source>
+ <translation>Pay &amp;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>&amp;Label:</source>
+ <translation>&amp;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&amp;ubtract fee from amount</source>
+ <translation>S&amp;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>&amp;Sign Message</source>
+ <translation>&amp;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 &amp;Message</source>
+ <translation>Sign &amp;Message</translation>
+ </message>
+ <message>
+ <source>Reset all sign message fields</source>
+ <translation>Reset all sign message fields</translation>
+ </message>
+ <message>
+ <source>Clear &amp;All</source>
+ <translation>Clear &amp;All</translation>
+ </message>
+ <message>
+ <source>&amp;Verify Message</source>
+ <translation>&amp;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 &amp;Message</source>
+ <translation>Verify &amp;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>&amp;Export</source>
+ <translation>&amp;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 &lt;category&gt; is not supplied or if &lt;category&gt; = 1, output all debugging information.</source>
+ <translation>If &lt;category&gt; is not supplied or if &lt;category&gt; = 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, &gt;%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, &gt;%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 &lt;http://www.opensource.org/licenses/mit-license.php&gt;.</source>
+ <translation>Distributed under the MIT software license, see the accompanying file COPYING or &lt;http://www.opensource.org/licenses/mit-license.php&gt;.</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, &lt;0 = leave that many cores free, default: %d)</source>
+ <translation>Set the number of script verification threads (%u to %d, 0 = auto, &lt;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>&lt;category&gt; can be:</source>
+ <translation>&lt;category&gt; 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 &lt;address&gt;</source>
+ <translation>Enable publish hash block in &lt;address&gt;</translation>
+ </message>
+ <message>
+ <source>Enable publish hash transaction in &lt;address&gt;</source>
+ <translation>Enable publish hash transaction in &lt;address&gt;</translation>
+ </message>
+ <message>
+ <source>Enable publish raw block in &lt;address&gt;</source>
+ <translation>Enable publish raw block in &lt;address&gt;</translation>
+ </message>
+ <message>
+ <source>Enable publish raw transaction in &lt;address&gt;</source>
+ <translation>Enable publish raw transaction in &lt;address&gt;</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 &lt;n&gt; megabytes (default: %u)</source>
+ <translation>Keep the transaction memory pool below &lt;n&gt; 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 &lt;net&gt; (ipv4, ipv6 or onion)</source>
+ <translation>Only connect to nodes in network &lt;net&gt; (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 &lt;ip&gt; 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 &lt;ip&gt; 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=&lt;amount&gt;: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
+ <translation>Invalid amount for -maxtxfee=&lt;amount&gt;: '%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 &lt;https://www.openssl.org/&gt; 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 &lt;https://www.openssl.org/&gt; 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=&lt;amount&gt;: '%s'</source>
+ <translation>Invalid amount for -maxtxfee=&lt;amount&gt;: '%s'</translation>
+ </message>
+ <message>
+ <source>Invalid amount for -minrelaytxfee=&lt;amount&gt;: '%s'</source>
+ <translation>Invalid amount for -minrelaytxfee=&lt;amount&gt;: '%s'</translation>
+ </message>
+ <message>
+ <source>Invalid amount for -mintxfee=&lt;amount&gt;: '%s'</source>
+ <translation>Invalid amount for -mintxfee=&lt;amount&gt;: '%s'</translation>
+ </message>
+ <message>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;: '%s' (must be at least %s)</source>
+ <translation>Invalid amount for -paytxfee=&lt;amount&gt;: '%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 &lt;n&gt; unconnectable transactions in memory (default: %u)</source>
+ <translation>Keep at most &lt;n&gt; 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 &lt;n&gt; hours (default: %u)</source>
+ <translation>Do not keep transactions in the mempool longer than &lt;n&gt; 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>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 &lt;category&gt; is optional)</source>
+ <translation>Output debugging information (default: %u, supplying &lt;category&gt; is optional)</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>(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 &lt;port&gt; (default: %u or testnet: %u)</source>
+ <translation>Listen for JSON-RPC connections on &lt;port&gt; (default: %u or testnet: %u)</translation>
+ </message>
+ <message>
+ <source>Listen for connections on &lt;port&gt; (default: %u or testnet: %u)</source>
+ <translation>Listen for connections on &lt;port&gt; (default: %u or testnet: %u)</translation>
+ </message>
+ <message>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: %u)</source>
+ <translation>Maintain at most &lt;n&gt; 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, &lt;n&gt;*1000 bytes (default: %u)</source>
+ <translation>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: %u)</translation>
+ </message>
+ <message>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: %u)</source>
+ <translation>Maximum per-connection send buffer, &lt;n&gt;*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 &lt;n&gt; (default: %u)</source>
+ <translation>Set key pool size to &lt;n&gt; (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=&lt;amount&gt;: '%s'</source>
+ <translation>Invalid amount for -paytxfee=&lt;amount&gt;: '%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..c17e477654 100644
--- a/src/qt/locale/bitcoin_eo.ts
+++ b/src/qt/locale/bitcoin_eo.ts
@@ -2210,10 +2210,6 @@
<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>
- </message>
- <message>
<source>Information</source>
<translation>Informoj</translation>
</message>
@@ -2230,14 +2226,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 +2234,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..bb7fcb1095 100644
--- a/src/qt/locale/bitcoin_es.ts
+++ b/src/qt/locale/bitcoin_es.ts
@@ -2911,10 +2911,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>
@@ -3139,10 +3135,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 +3219,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 +3231,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 +3255,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..c303007b7a 100644
--- a/src/qt/locale/bitcoin_es_CL.ts
+++ b/src/qt/locale/bitcoin_es_CL.ts
@@ -1313,11 +1313,6 @@
<translation>Enviar informacion de seguimiento a la consola en vez del archivo debug.log</translation>
</message>
<message>
- <source>Start minimized</source>
- <translation>Arranca minimizado
-</translation>
- </message>
- <message>
<source>Username for JSON-RPC connections</source>
<translation>Usuario para las conexiones JSON-RPC
</translation>
diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts
index c67d642de7..60347070df 100644
--- a/src/qt/locale/bitcoin_es_DO.ts
+++ b/src/qt/locale/bitcoin_es_DO.ts
@@ -2221,10 +2221,6 @@
<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>
- </message>
- <message>
<source>Information</source>
<translation>Información</translation>
</message>
@@ -2245,18 +2241,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 +2253,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..b19387d9ed
--- /dev/null
+++ b/src/qt/locale/bitcoin_es_ES.ts
@@ -0,0 +1,469 @@
+<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>&amp;New</source>
+ <translation>&amp;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>&amp;Copy</source>
+ <translation>&amp;Copiar</translation>
+ </message>
+ <message>
+ <source>C&amp;lose</source>
+ <translation>C&amp;errar</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;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>&amp;Export</source>
+ <translation>&amp;Exportar</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;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&amp;hoose</source>
+ <translation>E&amp;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 &amp;Label</source>
+ <translation>Copiar &amp;Etiqueta</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;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 &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+ <translation>Advertencia: Si encriptas tu cartera y pierdes tu contraseña, &lt;b&gt;PERDERÁS TODOS TUS BITCOINS&lt;/B&gt;</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.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Introduzca la nueva contraseña de la cartera. &lt;br/&gt;Por favor utilice una contraseña de &lt;b&gt;diez o mas caracteres aleatorios&lt;/b&gt;, o &lt;b&gt;ocho o mas palabras&lt;/b&gt;.</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 &amp;message...</source>
+ <translation>Firmar &amp;mensaje...</translation>
+ </message>
+ <message>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronizando con la red...</translation>
+ </message>
+ <message>
+ <source>&amp;Overview</source>
+ <translation>&amp;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>&amp;Transactions</source>
+ <translation>&amp;Transacciones</translation>
+ </message>
+ <message>
+ <source>Browse transaction history</source>
+ <translation>Navegar historial de transacciones</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>S&amp;alir</translation>
+ </message>
+ <message>
+ <source>Quit application</source>
+ <translation>Salir de la aplicación</translation>
+ </message>
+ <message>
+ <source>About &amp;Qt</source>
+ <translation>Acerca de &amp;Qt</translation>
+ </message>
+ <message>
+ <source>Show information about Qt</source>
+ <translation>Muestra información acerca de Qt</translation>
+ </message>
+ <message>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opciones...</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation>&amp;Encriptar Cartera...</translation>
+ </message>
+ <message>
+ <source>&amp;Backup Wallet...</source>
+ <translation>&amp;Hacer copia de seguridad de la cartera...</translation>
+ </message>
+ <message>
+ <source>&amp;Change Passphrase...</source>
+ <translation>&amp;Cambiar contraseña...</translation>
+ </message>
+ <message>
+ <source>&amp;Sending addresses...</source>
+ <translation>&amp;Enviando direcciones...</translation>
+ </message>
+ <message>
+ <source>&amp;Receiving addresses...</source>
+ <translation>&amp;Recibiendo direcciones..</translation>
+ </message>
+ <message>
+ <source>Open &amp;URI...</source>
+ <translation>Abrir &amp;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>
+ </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>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>&amp;Export</source>
+ <translation>&amp;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..e9a80e2f5f 100644
--- a/src/qt/locale/bitcoin_es_MX.ts
+++ b/src/qt/locale/bitcoin_es_MX.ts
@@ -1062,22 +1062,6 @@
<translation>Opciones de cartera:</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>
- </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>
- </message>
- <message>
- <source>Show splash screen on startup (default: 1)</source>
- <translation>Mostrar pantalla de arraque al iniciar (por defecto: 1)</translation>
- </message>
- <message>
- <source>Start minimized</source>
- <translation>Iniciar minimizado</translation>
- </message>
- <message>
<source>Loading addresses...</source>
<translation>Cargando direcciones...</translation>
</message>
diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts
new file mode 100644
index 0000000000..f9db056553
--- /dev/null
+++ b/src/qt/locale/bitcoin_es_VE.ts
@@ -0,0 +1,1077 @@
+<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>&amp;New</source>
+ <translation>&amp;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>&amp;Copy</source>
+ <translation>&amp;Copiar</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;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>&amp;Export</source>
+ <translation>&amp;Exportar</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;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 &amp;Label</source>
+ <translation>Copiar &amp;Etiqueta</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;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>
+ </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 &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</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.&lt;br/&gt;Please use a passphrase of &lt;b&gt;ten or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</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 &amp;message...</source>
+ <translation>Firmar &amp;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>&amp;Transactions</source>
+ <translation>&amp;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>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>&amp;Send</source>
+ <translation>&amp;Enviar</translation>
+ </message>
+ <message>
+ <source>&amp;Receive</source>
+ <translation>&amp;Recibir</translation>
+ </message>
+ <message>
+ <source>Show information about Bitcoin Core</source>
+ <translation>Mostrar información acerca de Bitcoin Core</translation>
+ </message>
+ <message>
+ <source>&amp;Show / Hide</source>
+ <translation>&amp;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>&amp;File</source>
+ <translation>&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Settings</source>
+ <translation>&amp;Configuración</translation>
+ </message>
+ <message>
+ <source>Bitcoin Core</source>
+ <translation>Bitcoin Core</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 &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>La billetera está encriptada y desbloqueada recientemente</translation>
+ </message>
+ <message>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</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>&amp;Label</source>
+ <translation>&amp;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>&amp;Address</source>
+ <translation>&amp;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>&amp;Main</source>
+ <translation>&amp;Main</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>
+ </context>
+<context>
+ <name>ReceiveCoinsDialog</name>
+ <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>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>
+ </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>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>&amp;Export</source>
+ <translation>&amp;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>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 &lt;http://www.opensource.org/licenses/mit-license.php&gt;.</source>
+ <translation>Distribuido bajo la licensia de software MIT, ver el archivo adjunto COPYING o &lt;http://www.opensource.org/licenses/mit-license.php&gt;.</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, &lt;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, &lt;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..1d6d1b89e5 100644
--- a/src/qt/locale/bitcoin_et.ts
+++ b/src/qt/locale/bitcoin_et.ts
@@ -1744,14 +1744,6 @@
<translation>Saada jälitus/debug, debug.log faili asemel, konsooli</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>
- </message>
- <message>
- <source>Show splash screen on startup (default: 1)</source>
- <translation>Käivitamisel teabeakna kuvamine (vaikeväärtus: 1)</translation>
- </message>
- <message>
<source>Shrink debug.log file on client startup (default: 1 when no -debug)</source>
<translation>Kahanda programmi käivitamisel debug.log faili (vaikeväärtus: 1, kui ei ole -debug)</translation>
</message>
@@ -1760,10 +1752,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 +1764,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_fa.ts b/src/qt/locale/bitcoin_fa.ts
index fb4e25dfb8..3ef9766604 100644
--- a/src/qt/locale/bitcoin_fa.ts
+++ b/src/qt/locale/bitcoin_fa.ts
@@ -1926,10 +1926,6 @@
<translation>در حال بازبینی کیف پول...</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>انتخاب مسیر داده‌ها در ابتدای اجرای برنامه (پیش‌فرض: 0)</translation>
- </message>
- <message>
<source>Information</source>
<translation>اطلاعات</translation>
</message>
@@ -1938,26 +1934,10 @@
<translation>اطلاعات ردگیری/اشکال‌زدایی را به جای فایل لاگ اشکال‌زدایی به کنسول بفرستید</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 را در startup مشتری کوچک کن (پیش فرض:1 اگر اشکال زدایی روی نداد)</translation>
</message>
<message>
- <source>Start minimized</source>
- <translation>اجرای برنامه به صورت کوچک‌شده</translation>
- </message>
- <message>
- <source>UI Options:</source>
- <translation>گزینه‌های رابط کاربری:</translation>
- </message>
- <message>
<source>Username for JSON-RPC connections</source>
<translation>JSON-RPC شناسه برای ارتباطات</translation>
</message>
diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts
index 7026fff1f5..71ea96644b 100644
--- a/src/qt/locale/bitcoin_fi.ts
+++ b/src/qt/locale/bitcoin_fi.ts
@@ -2772,10 +2772,6 @@
<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>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; voi olla:</translation>
</message>
@@ -2928,10 +2924,6 @@
<translation>-whitebind -osoitetta '%s' ei voida jäsentää</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>Valitse data-hakemisto käynnistyksessä (oletus: 0)</translation>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Yhdistä SOCKS5 proxin kautta</translation>
</message>
@@ -2976,22 +2968,10 @@
<translation>Lähetä jäljitys/debug-tieto konsoliin, debug.log-tiedoston sijaan</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>
- </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,10 +2980,6 @@
<translation>Siirron vahvistus epäonnistui</translation>
</message>
<message>
- <source>Start minimized</source>
- <translation>Käynnistä pienennettynä</translation>
- </message>
- <message>
<source>This is experimental software.</source>
<translation>Tämä on ohjelmistoa kokeelliseen käyttöön.</translation>
</message>
@@ -3020,10 +2996,6 @@
<translation>Siirtosumma liian iso</translation>
</message>
<message>
- <source>UI Options:</source>
- <translation>Ulkoasun asetukset:</translation>
- </message>
- <message>
<source>Username for JSON-RPC connections</source>
<translation>Käyttäjätunnus JSON-RPC-yhteyksille</translation>
</message>
diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts
index 97dccdac06..d43e08cf9d 100644
--- a/src/qt/locale/bitcoin_fr.ts
+++ b/src/qt/locale/bitcoin_fr.ts
@@ -2836,10 +2836,6 @@
<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>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; peut être :</translation>
</message>
@@ -3056,10 +3052,6 @@
<translation>Impossible de résoudre l'adresse -whitebind : « %s »</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>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Se connecter par un mandataire SOCKS5</translation>
</message>
@@ -3136,22 +3128,10 @@
<translation>Envoyer si possible les transactions comme étant sans frais (par défaut : %u)</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>
- </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>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 +3140,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>
@@ -3188,10 +3164,6 @@
<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>
diff --git a/src/qt/locale/bitcoin_fr_FR.ts b/src/qt/locale/bitcoin_fr_FR.ts
new file mode 100644
index 0000000000..c55b08b646
--- /dev/null
+++ b/src/qt/locale/bitcoin_fr_FR.ts
@@ -0,0 +1,877 @@
+<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>&amp;Delete</source>
+ <translation>&amp;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>&amp;Overview</source>
+ <translation>&amp;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>&amp;Transactions</source>
+ <translation>&amp;Transactions</translation>
+ </message>
+ <message>
+ <source>Browse transaction history</source>
+ <translation>Permet de parcourir l'historique des transactions</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>Qui&amp;tter</translation>
+ </message>
+ <message>
+ <source>Quit application</source>
+ <translation>Quitter l'application</translation>
+ </message>
+ <message>
+ <source>About &amp;Qt</source>
+ <translation>À propos de &amp;Qt</translation>
+ </message>
+ <message>
+ <source>Show information about Qt</source>
+ <translation>Afficher des informations sur Qt</translation>
+ </message>
+ <message>
+ <source>&amp;Options...</source>
+ <translation>&amp;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>&amp;Send</source>
+ <translation>&amp;Envoyer</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>&amp;Settings</source>
+ <translation>&amp;Réglages</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;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 &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Le porte-monnaie est &lt;b&gt;chiffré&lt;/b&gt; et est actuellement &lt;b&gt;déverrouillé&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Le porte-monnaie est &lt;b&gt;chiffré&lt;/b&gt; et est actuellement &lt;b&gt;verrouillé&lt;/b&gt;</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>&amp;Label</source>
+ <translation>&amp;Étiquette</translation>
+ </message>
+ <message>
+ <source>&amp;Address</source>
+ <translation>&amp;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 &amp;UPnP</source>
+ <translation>Ouvrir le port avec l'&amp;UPnP</translation>
+ </message>
+ <message>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimiser dans la barre système au lieu de la barre des tâches</translation>
+ </message>
+ <message>
+ <source>M&amp;inimize on close</source>
+ <translation>Mi&amp;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>&amp;Label:</source>
+ <translation>&amp;Étiquette :</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>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&amp;mount:</source>
+ <translation>&amp;Montant :</translation>
+ </message>
+ <message>
+ <source>Pay &amp;To:</source>
+ <translation>Payer &amp;à :</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>&amp;Label:</source>
+ <translation>&amp;É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>
+ </context>
+<context>
+ <name>ShutdownWindow</name>
+ </context>
+<context>
+ <name>SignVerifyMessageDialog</name>
+ <message>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;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>
+ </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..0b0800e742 100644
--- a/src/qt/locale/bitcoin_gl.ts
+++ b/src/qt/locale/bitcoin_gl.ts
@@ -2042,10 +2042,6 @@
<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>
- </message>
- <message>
<source>Information</source>
<translation>Información</translation>
</message>
@@ -2062,14 +2058,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 +2066,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..7db2a9dd34 100644
--- a/src/qt/locale/bitcoin_he.ts
+++ b/src/qt/locale/bitcoin_he.ts
@@ -2518,10 +2518,6 @@
<translation>אזהרה: הקובץ wallet.dat הושחת, המידע חולץ! קובץ ה־wallet.dat המקורי נשמר בשם wallet.{timestamp}.bak במיקום %s; אם המאזן או ההעברות שגויים עליך לשחזר גיבוי.</translation>
</message>
<message>
- <source>(default: 1)</source>
- <translation>(בררת מחדל: 1)</translation>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;קטגוריה&gt; יכולה להיות:</translation>
</message>
@@ -2638,10 +2634,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>
@@ -2694,22 +2686,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 +2698,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_hr.ts b/src/qt/locale/bitcoin_hr.ts
index aa28ecf24f..624cbbbc23 100644
--- a/src/qt/locale/bitcoin_hr.ts
+++ b/src/qt/locale/bitcoin_hr.ts
@@ -1784,10 +1784,6 @@
<translation>Šalji trace/debug informacije na konzolu umjesto u debug.log datoteku</translation>
</message>
<message>
- <source>Start minimized</source>
- <translation>Pokreni minimiziran</translation>
- </message>
- <message>
<source>Username for JSON-RPC connections</source>
<translation>Korisničko ime za JSON-RPC veze</translation>
</message>
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 27cfedc728..9825a28543 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -2373,10 +2373,6 @@
<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>
- </message>
- <message>
<source>Copyright (C) 2009-%i The Bitcoin Core Developers</source>
<translation>Copyright (C) 2009-%i A Bitcoin Core Fejlesztői</translation>
</message>
@@ -2401,27 +2397,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 +2417,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..4124ef0951 100644
--- a/src/qt/locale/bitcoin_id_ID.ts
+++ b/src/qt/locale/bitcoin_id_ID.ts
@@ -2362,10 +2362,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>
@@ -2482,14 +2478,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 +2486,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..5ec6e480ba 100644
--- a/src/qt/locale/bitcoin_it.ts
+++ b/src/qt/locale/bitcoin_it.ts
@@ -2833,10 +2833,6 @@ 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>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>Valori possibili per &lt;category&gt;:</translation>
</message>
@@ -3053,10 +3049,6 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
<translation>Impossibile risolvere indirizzo -whitebind: '%s'</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>Seleziona la cartella dati all'avvio (predefinito: 0)</translation>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Connessione attraverso un proxy SOCKS5</translation>
</message>
@@ -3133,22 +3125,10 @@ Per specificare più URL separarli con una barra verticale "|".</translation>
<translation>Invia transazioni a zero commissioni se possibile (predefinito: %u)</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>
- </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>
- </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 +3137,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>
@@ -3185,10 +3161,6 @@ 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>
diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts
index a80874652b..37306da5a7 100644
--- a/src/qt/locale/bitcoin_ja.ts
+++ b/src/qt/locale/bitcoin_ja.ts
@@ -3000,10 +3000,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 +3273,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 +3361,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 +3373,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 +3405,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>
diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts
index e8f5286697..68666cfb25 100644
--- a/src/qt/locale/bitcoin_ka.ts
+++ b/src/qt/locale/bitcoin_ka.ts
@@ -2326,10 +2326,6 @@
<translation>მაღალპრიორიტეტული/დაბალსაკომისიოიანი ტრანსაქციების მაქსიმალური ზომა ბაიტებში (ნაგულისხმევი: %d)</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>მონაცემთა კატალოგის მითითება ყოველი გაშვებისას (ნაგულისხმევი: 0)</translation>
- </message>
- <message>
<source>Information</source>
<translation>ინფორმაცია</translation>
</message>
@@ -2346,14 +2342,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 +2350,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_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts
index 0213c09aa7..81677b4732 100644
--- a/src/qt/locale/bitcoin_ko_KR.ts
+++ b/src/qt/locale/bitcoin_ko_KR.ts
@@ -2360,10 +2360,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>
@@ -2472,10 +2468,6 @@
<translation>최대 크기를 최우선으로 설정 / 바이트당 최소 수수료로 거래(기본값: %d)</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>파일목록을 선택하여 시작하시오(기본값: 0)</translation>
- </message>
- <message>
<source>Information</source>
<translation>정보</translation>
</message>
@@ -2496,22 +2488,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 +2500,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_la.ts b/src/qt/locale/bitcoin_la.ts
index b297a35d4b..f775002050 100644
--- a/src/qt/locale/bitcoin_la.ts
+++ b/src/qt/locale/bitcoin_la.ts
@@ -1478,14 +1478,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 +1486,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..c125d1b72b 100644
--- a/src/qt/locale/bitcoin_lt.ts
+++ b/src/qt/locale/bitcoin_lt.ts
@@ -1634,14 +1634,6 @@
<translation>Siųsti atsekimo/derinimo info į konsolę vietoj debug.log failo</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>
- </message>
- <message>
- <source>Start minimized</source>
- <translation>Paleisti sumažintą</translation>
- </message>
- <message>
<source>Username for JSON-RPC connections</source>
<translation>Vartotojo vardas JSON-RPC jungimuisi</translation>
</message>
diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts
index fa7abdf2ab..2d3eab3394 100644
--- a/src/qt/locale/bitcoin_lv_LV.ts
+++ b/src/qt/locale/bitcoin_lv_LV.ts
@@ -2114,10 +2114,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; var būt:</translation>
</message>
@@ -2174,22 +2170,10 @@
<translation>Debug/trace informāciju izvadīt konsolē, nevis debug.log failā</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>
- </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>
- </message>
- <message>
<source>Signing transaction failed</source>
<translation>Transakcijas parakstīšana neizdevās</translation>
</message>
<message>
- <source>Start minimized</source>
- <translation>Sākt minimizētu</translation>
- </message>
- <message>
<source>Transaction amount too small</source>
<translation>Transakcijas summa ir pārāk maza</translation>
</message>
diff --git a/src/qt/locale/bitcoin_mk_MK.ts b/src/qt/locale/bitcoin_mk_MK.ts
new file mode 100644
index 0000000000..269b06f83a
--- /dev/null
+++ b/src/qt/locale/bitcoin_mk_MK.ts
@@ -0,0 +1,1027 @@
+<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>&amp;New</source>
+ <translation>&amp;Нова</translation>
+ </message>
+ <message>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Копирај ја избраната адреса на системскиот клипборд</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Копирај</translation>
+ </message>
+ <message>
+ <source>C&amp;lose</source>
+ <translation>З&amp;атвори</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;Копирај Адреса</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>&amp;Export</source>
+ <translation>&amp;Експорт</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Избриши</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&amp;hoose</source>
+ <translation>И&amp;збери</translation>
+ </message>
+ <message>
+ <source>Sending addresses</source>
+ <translation>Адреси за праќање</translation>
+ </message>
+ <message>
+ <source>Receiving addresses</source>
+ <translation>Адреси за примање</translation>
+ </message>
+ <message>
+ <source>Copy &amp;Label</source>
+ <translation>Копирај &amp;Етикета</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Уреди</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 &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!</source>
+ <translation>Предупредување: Ако го шифрирате вашиот паричник и ја изгубите вашата тајна фраза, ќе &lt;b&gt;ГИ ИЗГУБИТЕ СИТЕ ВАШИ БИТКОИНИ&lt;/b&gt;!</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 &amp;message...</source>
+ <translation>Потпиши &amp;порака...</translation>
+ </message>
+ <message>
+ <source>Synchronizing with network...</source>
+ <translation>Синхронизација со мрежата...</translation>
+ </message>
+ <message>
+ <source>&amp;Overview</source>
+ <translation>&amp;Преглед</translation>
+ </message>
+ <message>
+ <source>Node</source>
+ <translation>Јазол</translation>
+ </message>
+ <message>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Трансакции</translation>
+ </message>
+ <message>
+ <source>Browse transaction history</source>
+ <translation>Преглед на историјата на трансакции</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>И&amp;злез</translation>
+ </message>
+ <message>
+ <source>Quit application</source>
+ <translation>Напушти ја апликацијата</translation>
+ </message>
+ <message>
+ <source>About &amp;Qt</source>
+ <translation>За &amp;Qt</translation>
+ </message>
+ <message>
+ <source>Show information about Qt</source>
+ <translation>Прикажи информации за Qt</translation>
+ </message>
+ <message>
+ <source>&amp;Options...</source>
+ <translation>&amp;Опции...</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation>&amp;Криптирање на Паричник...</translation>
+ </message>
+ <message>
+ <source>&amp;Backup Wallet...</source>
+ <translation>&amp;Бекап на Паричник...</translation>
+ </message>
+ <message>
+ <source>&amp;Change Passphrase...</source>
+ <translation>&amp;Измени Тајна Фраза...</translation>
+ </message>
+ <message>
+ <source>&amp;Sending addresses...</source>
+ <translation>&amp;Адреси за Испраќање...</translation>
+ </message>
+ <message>
+ <source>&amp;Receiving addresses...</source>
+ <translation>&amp;Адреси за Примање...</translation>
+ </message>
+ <message>
+ <source>Open &amp;URI...</source>
+ <translation>Отвори &amp;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>&amp;Verify message...</source>
+ <translation>&amp;Потврди порака...</translation>
+ </message>
+ <message>
+ <source>Bitcoin</source>
+ <translation>Биткоин</translation>
+ </message>
+ <message>
+ <source>Wallet</source>
+ <translation>Паричник</translation>
+ </message>
+ <message>
+ <source>&amp;Send</source>
+ <translation>&amp;Испрати</translation>
+ </message>
+ <message>
+ <source>&amp;Receive</source>
+ <translation>&amp;Прими</translation>
+ </message>
+ <message>
+ <source>Show information about Bitcoin Core</source>
+ <translation>Прикажи информации за Биткоин Core</translation>
+ </message>
+ <message>
+ <source>&amp;Show / Hide</source>
+ <translation>&amp;Прикажи / Сокриј</translation>
+ </message>
+ <message>
+ <source>Encrypt the private keys that belong to your wallet</source>
+ <translation>Криптирај ги приватните клучеви кои припаѓаат на твојот паричник</translation>
+ </message>
+ <message>
+ <source>&amp;Settings</source>
+ <translation>&amp;Подесувања</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Помош</translation>
+ </message>
+ <message>
+ <source>Bitcoin Core</source>
+ <translation>Биткоин Core</translation>
+ </message>
+ <message>
+ <source>&amp;About Bitcoin Core</source>
+ <translation>&amp;За Биткоин 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>&amp;Label</source>
+ <translation>&amp;Етикета</translation>
+ </message>
+ <message>
+ <source>&amp;Address</source>
+ <translation>&amp;Адреса</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>&amp;Network</source>
+ <translation>&amp;Мрежа</translation>
+ </message>
+ <message>
+ <source>W&amp;allet</source>
+ <translation>П&amp;аричник</translation>
+ </message>
+ <message>
+ <source>&amp;Window</source>
+ <translation>&amp;Прозорец</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Откажи</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>&amp;Save Image...</source>
+ <translation>&amp;Сними Слика...</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>&amp;Console</source>
+ <translation>&amp;Конзола</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>&amp;Amount:</source>
+ <translation>&amp;Сума:</translation>
+ </message>
+ <message>
+ <source>&amp;Label:</source>
+ <translation>&amp;Етикета:</translation>
+ </message>
+ <message>
+ <source>&amp;Message:</source>
+ <translation>&amp;Порака:</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 &amp;URI</source>
+ <translation>Копирај &amp;URI</translation>
+ </message>
+ <message>
+ <source>Copy &amp;Address</source>
+ <translation>Копирај &amp;Адреса</translation>
+ </message>
+ <message>
+ <source>&amp;Save Image...</source>
+ <translation>&amp;Сними Слика...</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>&amp;Label:</source>
+ <translation>&amp;Етикета:</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>&amp;Export</source>
+ <translation>&amp;Експорт</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>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_nb.ts b/src/qt/locale/bitcoin_nb.ts
index c36e1af1d8..554ac21a02 100644
--- a/src/qt/locale/bitcoin_nb.ts
+++ b/src/qt/locale/bitcoin_nb.ts
@@ -2996,10 +2996,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 +3268,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 +3356,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 +3368,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 +3400,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>
diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts
index c307f0ab6a..be2ec9ac4f 100644
--- a/src/qt/locale/bitcoin_nl.ts
+++ b/src/qt/locale/bitcoin_nl.ts
@@ -222,7 +222,11 @@
</context>
<context>
<name>BanTableModel</name>
- </context>
+ <message>
+ <source>Banned Until</source>
+ <translation>Geband tot</translation>
+ </message>
+</context>
<context>
<name>BitcoinGUI</name>
<message>
@@ -1072,6 +1076,18 @@
<translation>Poort van de proxy (bijv. 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>&amp;Window</source>
<translation>&amp;Scherm</translation>
</message>
@@ -1317,6 +1333,10 @@
<translation>User Agent</translation>
</message>
<message>
+ <source>Node/Service</source>
+ <translation>Node/Service</translation>
+ </message>
+ <message>
<source>Ping Time</source>
<translation>Ping tijd</translation>
</message>
@@ -1466,6 +1486,14 @@
<translation>Versie</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>
@@ -1494,6 +1522,10 @@
<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>Last block time</source>
<translation>Tijd laatste blok</translation>
</message>
@@ -1538,6 +1570,22 @@
<translation>Maak console leeg</translation>
</message>
<message>
+ <source>1 &amp;hour</source>
+ <translation>1 &amp;uur</translation>
+ </message>
+ <message>
+ <source>1 &amp;day</source>
+ <translation>1 &amp;dag</translation>
+ </message>
+ <message>
+ <source>1 &amp;week</source>
+ <translation>1 &amp;week</translation>
+ </message>
+ <message>
+ <source>1 &amp;year</source>
+ <translation>1 &amp;jaar</translation>
+ </message>
+ <message>
<source>Welcome to the Bitcoin Core RPC console.</source>
<translation>Welkom op de Bitcoin Core RPC console.</translation>
</message>
@@ -1958,6 +2006,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>
@@ -2613,6 +2665,10 @@
<translation>Kopieer transactie-ID</translation>
</message>
<message>
+ <source>Copy raw transaction</source>
+ <translation>Kopieer </translation>
+ </message>
+ <message>
<source>Edit label</source>
<translation>Bewerk label</translation>
</message>
@@ -2760,6 +2816,10 @@
<translation>Aanvaard commandoregel- en JSON-RPC-commando's</translation>
</message>
<message>
+ <source>If &lt;category&gt; is not supplied or if &lt;category&gt; = 1, output all debugging information.</source>
+ <translation>Als er geen &lt;category&gt; is opgegeven of als de &lt;category&gt; 1 is, laat dan alle debugging informatie zien.</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>
@@ -2820,10 +2880,6 @@
<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>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; kan zijn:</translation>
</message>
@@ -3021,10 +3077,6 @@
<translation>Kan -whitebind adres niet herleiden: '%s'</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>Kies de gegevensmap tijdens het opstarten (standaard: 0)</translation>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Verbind door SOCKS5 proxy</translation>
</message>
@@ -3093,22 +3145,10 @@
<translation>Verstuur transacties zonder verzendkosten indien mogelijk (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>
- </message>
- <message>
- <source>Set language, for example "de_DE" (default: system locale)</source>
- <translation>Stel taal in, bijvoorbeeld ''de_DE" (standaard: systeeminstellingen)</translation>
- </message>
- <message>
<source>Show all debugging options (usage: --help -help-debug)</source>
<translation>Toon alle foutopsporingsopties (gebruik: --help -help-debug)</translation>
</message>
<message>
- <source>Show splash screen on startup (default: 1)</source>
- <translation>Laat laadscherm zien bij het opstarten. (standaard: 1)</translation>
- </message>
- <message>
<source>Shrink debug.log file on client startup (default: 1 when no -debug)</source>
<translation>Verklein debug.log-bestand bij het opstarten van de client (standaard: 1 als geen -debug)</translation>
</message>
@@ -3117,10 +3157,6 @@
<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>
</message>
@@ -3145,10 +3181,6 @@
<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>
diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts
index 893ae43c55..ec99a1f572 100644
--- a/src/qt/locale/bitcoin_pam.ts
+++ b/src/qt/locale/bitcoin_pam.ts
@@ -1374,18 +1374,6 @@
<translation>Magpadalang trace/debug info okeng console kesa keng debug.log file</translation>
</message>
<message>
- <source>Set language, for example "de_DE" (default: system locale)</source>
- <translation>Mamiling Amanu, alimbawa "de_DE"(default: system locale)</translation>
- </message>
- <message>
- <source>Show splash screen on startup (default: 1)</source>
- <translation>Ipalto ing splash screen keng umpisa (default: 1)</translation>
- </message>
- <message>
- <source>Start minimized</source>
- <translation>Umpisan ing pamaglati</translation>
- </message>
- <message>
<source>Transaction too large</source>
<translation>Maragul yang masiadu ing transaksion</translation>
</message>
diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts
index 52196f0372..a351552b63 100644
--- a/src/qt/locale/bitcoin_pl.ts
+++ b/src/qt/locale/bitcoin_pl.ts
@@ -2872,10 +2872,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; mogą być:</translation>
</message>
@@ -3084,10 +3080,6 @@
<translation>Nie można rozwiązać adresu -whitebind: '%s'</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>Wybierz folder danych przy starcie (domyślnie: 0)</translation>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Połącz przez SOCKS5 proxy</translation>
</message>
@@ -3160,22 +3152,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 +3164,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>
@@ -3212,10 +3188,6 @@
<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>
diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts
index e57c051aa1..bb6de064d4 100644
--- a/src/qt/locale/bitcoin_pt_BR.ts
+++ b/src/qt/locale/bitcoin_pt_BR.ts
@@ -2980,10 +2980,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>
@@ -3212,10 +3208,6 @@
<translation>Impossível resolver endereço -whitebind: '%s'</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>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Connecte-se através de um proxy SOCKS5</translation>
</message>
@@ -3280,22 +3272,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 +3284,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 +3308,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>
diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts
index 4549066363..b5ede206dd 100644
--- a/src/qt/locale/bitcoin_pt_PT.ts
+++ b/src/qt/locale/bitcoin_pt_PT.ts
@@ -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>&lt;category&gt; can be:</source>
<translation>&lt;categoria&gt; pode ser:</translation>
</message>
@@ -2921,10 +2917,6 @@
<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>
- </message>
- <message>
<source>Copyright (C) 2009-%i The Bitcoin Core Developers</source>
<translation>Copyright (C) 2009-%i Os Programadores do Bitcoin Core</translation>
</message>
@@ -2949,18 +2941,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 +2949,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>
diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts
index 72ab2c5bdb..c88908263a 100644
--- a/src/qt/locale/bitcoin_ro_RO.ts
+++ b/src/qt/locale/bitcoin_ro_RO.ts
@@ -2716,10 +2716,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; poate fi:</translation>
</message>
@@ -2856,10 +2852,6 @@
<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>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>Conectare prin proxy SOCKS5</translation>
</message>
@@ -2916,22 +2908,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 +2920,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..ea577694ac 100644
--- a/src/qt/locale/bitcoin_ru.ts
+++ b/src/qt/locale/bitcoin_ru.ts
@@ -2984,10 +2984,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 +3256,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 +3344,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 +3356,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 +3388,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>
diff --git a/src/qt/locale/bitcoin_ru_RU.ts b/src/qt/locale/bitcoin_ru_RU.ts
new file mode 100644
index 0000000000..fa42dfaaad
--- /dev/null
+++ b/src/qt/locale/bitcoin_ru_RU.ts
@@ -0,0 +1,229 @@
+<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>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>
+ </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>
+ </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..0451b1485e 100644
--- a/src/qt/locale/bitcoin_sk.ts
+++ b/src/qt/locale/bitcoin_sk.ts
@@ -2798,10 +2798,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; môže byť:</translation>
</message>
@@ -2986,10 +2982,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 +3050,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 +3062,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 +3082,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>
diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts
index ca65810396..f26e350545 100644
--- a/src/qt/locale/bitcoin_sl_SI.ts
+++ b/src/qt/locale/bitcoin_sl_SI.ts
@@ -2832,10 +2832,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>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; je lahko:</translation>
</message>
@@ -3012,10 +3008,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>
@@ -3036,18 +3028,6 @@
<translation>Pošilja sledilne/razhroščevalne informacije na konzolo namesto v datoteko debug.log</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>
- </message>
- <message>
- <source>Set language, for example "de_DE" (default: system locale)</source>
- <translation>Nastavi jezik, npr. "sl_SI" (privzeto: jezik sistema)</translation>
- </message>
- <message>
- <source>Show splash screen on startup (default: 1)</source>
- <translation>Ob zagonu prikaži uvodni zaslon (privzeto: 1)</translation>
- </message>
- <message>
<source>Shrink debug.log file on client startup (default: 1 when no -debug)</source>
<translation>Ob zagonu skrajšaj datoteko debug.log (privzeto: 1, če ni vklopljena opcija -debug)</translation>
</message>
@@ -3056,10 +3036,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 +3052,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_sv.ts b/src/qt/locale/bitcoin_sv.ts
index bb7fcf7075..18f096b841 100644
--- a/src/qt/locale/bitcoin_sv.ts
+++ b/src/qt/locale/bitcoin_sv.ts
@@ -2989,10 +2989,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>
@@ -3261,10 +3257,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 +3345,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 +3357,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 +3389,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>
diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts
index fa8392b3df..36ca1ab6fe 100644
--- a/src/qt/locale/bitcoin_tr.ts
+++ b/src/qt/locale/bitcoin_tr.ts
@@ -2836,10 +2836,6 @@
<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>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;kategori&gt; şunlar olabilir:</translation>
</message>
@@ -3056,10 +3052,6 @@
<translation>-whitebind adresi çözümlenemedi: '%s'</translation>
</message>
<message>
- <source>Choose data directory on startup (default: 0)</source>
- <translation>Başlangıçta veri klasörü seç (varsayılan: 0)</translation>
- </message>
- <message>
<source>Connect through SOCKS5 proxy</source>
<translation>SOCKS5 vekil sunucusu vasıtasıyla bağlan</translation>
</message>
@@ -3136,22 +3128,10 @@
<translation>Muameleleri mümkünse ücretsiz olarak gönder (varsayılan: %u)</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>Set language, for example "de_DE" (default: system locale)</source>
- <translation>Lisan belirt, mesela "de_De" (varsayılan: sistem dili)</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 +3140,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>
@@ -3188,10 +3164,6 @@
<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>
diff --git a/src/qt/locale/bitcoin_tr_TR.ts b/src/qt/locale/bitcoin_tr_TR.ts
new file mode 100644
index 0000000000..bca64ba05d
--- /dev/null
+++ b/src/qt/locale/bitcoin_tr_TR.ts
@@ -0,0 +1,265 @@
+<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>&amp;New</source>
+ <translation>&amp;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>&amp;Copy</source>
+ <translation>&amp;Kopyala</translation>
+ </message>
+ <message>
+ <source>C&amp;lose</source>
+ <translation>K&amp;apat</translation>
+ </message>
+ <message>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;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>&amp;Export</source>
+ <translation>&amp;Dışa Aktar</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;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&amp;hoose</source>
+ <translation>S&amp;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 &amp;Label</source>
+ <translation>Kopyala &amp;Etiketle</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;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>
+ </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>
+ </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>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>&amp;Export</source>
+ <translation>&amp;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..5e2a06c731 100644
--- a/src/qt/locale/bitcoin_uk.ts
+++ b/src/qt/locale/bitcoin_uk.ts
@@ -2980,10 +2980,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>
@@ -3224,10 +3220,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>
@@ -3308,22 +3300,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 +3312,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>
@@ -3360,10 +3336,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>
diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts
index 004857cf01..4350d0ac8a 100644
--- a/src/qt/locale/bitcoin_uz@Cyrl.ts
+++ b/src/qt/locale/bitcoin_uz@Cyrl.ts
@@ -2114,22 +2114,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>
diff --git a/src/qt/locale/bitcoin_zh.ts b/src/qt/locale/bitcoin_zh.ts
new file mode 100644
index 0000000000..288c1c5f25
--- /dev/null
+++ b/src/qt/locale/bitcoin_zh.ts
@@ -0,0 +1,217 @@
+<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>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..778462e681 100644
--- a/src/qt/locale/bitcoin_zh_CN.ts
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -2901,10 +2901,6 @@
<translation>节点白名单,网络掩码或IP址。可多次指定。</translation>
</message>
<message>
- <source>(default: 1)</source>
- <translation>(默认值: 1)</translation>
- </message>
- <message>
<source>&lt;category&gt; can be:</source>
<translation>&lt;category&gt; 可能是:</translation>
</message>
@@ -3121,10 +3117,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>
@@ -3197,22 +3189,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 +3201,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,10 +3225,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>
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..67fb692ea1 100644
--- a/src/qt/locale/bitcoin_zh_TW.ts
+++ b/src/qt/locale/bitcoin_zh_TW.ts
@@ -2997,10 +2997,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>
@@ -3269,10 +3265,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 +3353,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 +3365,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 +3397,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>
diff --git a/src/qt/peertablemodel.cpp b/src/qt/peertablemodel.cpp
index 770a860544..94837679d8 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
diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp
index f609289749..81b597e2eb 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 changes made over 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..ee04636ce8 100644
--- a/src/rpcblockchain.cpp
+++ b/src/rpcblockchain.cpp
@@ -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/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/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/txmempool.cpp b/src/txmempool.cpp
index 35be216287..fea5da8029 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -944,7 +944,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;
@@ -963,8 +963,26 @@ void CTxMemPool::TrimToSize(size_t sizelimit) {
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..9203171868 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -483,8 +483,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 f49950da6b..f3911f314a 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1637,6 +1637,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,
@@ -1876,15 +1886,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,